shareOpen.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package activity
  2. import (
  3. "app.yhyue.com/moapp/jybase/go-logger/logger"
  4. "app.yhyue.com/moapp/jybase/redis"
  5. "app.yhyue.com/moapp/message/handler/award"
  6. "app.yhyue.com/moapp/message/model"
  7. "fmt"
  8. "github.com/gogf/gf/v2/os/gcfg"
  9. "github.com/gogf/gf/v2/os/gctx"
  10. "time"
  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. if len(msg.E_body) == 0 {
  24. return
  25. }
  26. openMax := gcfg.Instance().MustGet(gctx.New(), "shareOpenDetail.rewardTimesMax.points", nil).Int64()
  27. pointsNum := gcfg.Instance().MustGet(gctx.New(), "shareOpenDetail.openDetail.points", nil).Int64()
  28. key := fmt.Sprintf("jypoints_share_article_open_%s", msg.E_userId)
  29. if redis.Incr(RedisMain, key) <= openMax {
  30. now := time.Now()
  31. _ = redis.SetExpire(RedisMain, key, int(time.Date(now.Year(), now.Month(), now.Day()+1, 0, 0, 0, 0, time.Local).Unix()-now.Unix()))
  32. //积分奖励
  33. _ = award.GivenPoints(msg.E_userId, award.Points{
  34. Num: pointsNum,
  35. Type: 1005,
  36. ActivityCode: ShareOpenDetailActivityName,
  37. Date: msg.E_time,
  38. Desc: "用户分享信息",
  39. })
  40. } else {
  41. logger.Info(fmt.Sprintf("%+v", msg), "超过一天最大次数", openMax, "限制,不再增加积分")
  42. }
  43. }