record.go 1.9 KB

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