shareOpen.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package activity
  2. import (
  3. "fmt"
  4. "time"
  5. "app.yhyue.com/moapp/jybase/go-logger/logger"
  6. "app.yhyue.com/moapp/jybase/redis"
  7. "app.yhyue.com/moapp/message/handler/award"
  8. "app.yhyue.com/moapp/message/model"
  9. "github.com/gogf/gf/v2/os/gcfg"
  10. "github.com/gogf/gf/v2/os/gctx"
  11. )
  12. const (
  13. RedisMain = "main"
  14. ShareOpenDetailActivityName = "ShareOpenDetail"
  15. )
  16. /*
  17. 活动详情
  18. 用户分享标讯详情或文库详情,
  19. 可获得5剑鱼币,每天上限25个
  20. */
  21. // ShareOpenDetail 分享打开三级页
  22. func ShareOpenDetail(msg *model.Message) {
  23. openMax := gcfg.Instance().MustGet(gctx.New(), "shareOpenDetail.rewardTimesMax.points", nil).Int64()
  24. pointsNum := gcfg.Instance().MustGet(gctx.New(), "shareOpenDetail.openDetail.points", nil).Int64()
  25. key := fmt.Sprintf("jypoints_share_article_open_%s", msg.E_userId)
  26. if redis.Incr(RedisMain, key) <= openMax {
  27. now := time.Now()
  28. _ = redis.SetExpire(RedisMain, key, int(time.Date(now.Year(), now.Month(), now.Day()+1, 0, 0, 0, 0, time.Local).Unix()-now.Unix()))
  29. //积分奖励
  30. _ = award.GivenPoints(msg.E_userId, award.Points{
  31. Num: pointsNum,
  32. Type: 1005,
  33. ActivityCode: ShareOpenDetailActivityName,
  34. Date: msg.E_time,
  35. Desc: "用户分享信息",
  36. })
  37. } else {
  38. logger.Info(fmt.Sprintf("%+v", msg), "超过一天最大次数", openMax, "限制,不再增加积分")
  39. }
  40. }