record.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package award
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/message/config"
  5. "app.yhyue.com/moapp/message/db"
  6. )
  7. type AwardRecord struct {
  8. UserId string `json:"userId"` //用户
  9. Award string `json:"award"` //奖品 subvip(超级订阅,单位天)、points(积分,单位个)
  10. Num int `json:"num"` //数量
  11. GetWay string `json:"getWay"` //获取方式
  12. ActivityCode string `json:"activity_code"` //活动
  13. Detail string `json:"detail"` //详情
  14. Date int64 `json:"date"` //领取时间
  15. }
  16. //AddAwardRecord 增加领取记录
  17. func AddAwardRecord(record AwardRecord) {
  18. db.Mgo.Save("activity_award", map[string]interface{}{
  19. "activity_code": record.ActivityCode,
  20. "detail": record.Detail,
  21. "userid": record.UserId,
  22. "award": record.Award,
  23. "num": record.Num,
  24. "getway": record.GetWay,
  25. "date": record.Date,
  26. })
  27. }
  28. // GetActivityAwardDesc 查询奖励详情
  29. // times 奖励次数
  30. // total 总量
  31. func GetActivityAwardDesc(userId, activityCode, award string) (times, total int64) {
  32. q := map[string]interface{}{}
  33. q["userid"] = userId
  34. q["activity_code"] = activityCode
  35. q["award"] = award
  36. data, _ := db.Mgo.Find("activity_award", q, "", `{"num":1}`, false, -1, -1)
  37. times = int64(len(*data))
  38. for _, v := range *data {
  39. total += common.Int64All(v["num"])
  40. }
  41. return times, total
  42. }
  43. func GetActivityAwardList(userId, activityCode, award string, pageSize, pageNum int) (res []map[string]interface{}, total int, hasNext bool) {
  44. q := map[string]interface{}{}
  45. q["userid"] = userId
  46. q["activity_code"] = activityCode
  47. if award != "" {
  48. q["award"] = award
  49. }
  50. data, _ := db.Mgo.Find("activity_award", q, `{"date":-1}`, "", false, pageNum*pageSize, pageSize)
  51. total = db.Mgo.Count("activity_award", q)
  52. if pageSize != -1 {
  53. hasNext = (pageNum+1)*pageSize < total
  54. } else {
  55. hasNext = false
  56. }
  57. for _, v := range *data {
  58. if v["award"] == "subvip" {
  59. v["award"] = common.InterfaceToStr(v["num"]) + config.PushConfig.Subvip
  60. } else if v["award"] == "points" {
  61. v["award"] = common.InterfaceToStr(v["num"]) + config.PushConfig.Points
  62. } else if v["award"] == "lottery-fullReduce" {
  63. v["award"] = common.InterfaceToStr(v["num"]) + config.PushConfig.FullReduce
  64. }
  65. }
  66. return *data, total, hasNext
  67. }