newUserAward.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package activity
  2. import (
  3. "app.yhyue.com/moapp/MessageCenter/rpc/type/message"
  4. "app.yhyue.com/moapp/jybase/go-logger/logger"
  5. . "app.yhyue.com/moapp/message/config"
  6. "app.yhyue.com/moapp/message/db"
  7. "app.yhyue.com/moapp/message/handler/award"
  8. "app.yhyue.com/moapp/message/model"
  9. "app.yhyue.com/moapp/message/rpc"
  10. . "bp.jydev.jianyu360.cn/BaseService/pushpkg/p"
  11. "fmt"
  12. "github.com/gogf/gf/v2/frame/g"
  13. "github.com/gogf/gf/v2/os/gcfg"
  14. "github.com/gogf/gf/v2/os/gctx"
  15. "github.com/gogf/gf/v2/os/gtime"
  16. "io/ioutil"
  17. "log"
  18. "net/http"
  19. "strconv"
  20. "strings"
  21. "time"
  22. )
  23. /*
  24. 新用户注册奖励
  25. 活动详情
  26. 非邀请注册新用户可获得500剑鱼币奖励
  27. */
  28. const (
  29. NewUserAwardActivityName = "newUserAward"
  30. )
  31. func NewUserActivity(msg *model.Message) {
  32. go func() {
  33. wxUrl := "/front/sess/" + Se.EncodeString(msg.E_userId+",_id,identityKeep,") + "__" + Se.EncodeString(PushConfig.Messages.NewUser.MobileUrl)
  34. appUrl := "/jyapp/free/sess/" + Se.EncodeString(msg.E_userId+",_id,"+strconv.Itoa(int(time.Now().Unix()))+",") + "__" + Se.EncodeString(PushConfig.Messages.NewUser.MobileUrl)
  35. err := rpc.SendMsg("新用户注册", &message.MultipleSaveMsgReq{
  36. UserIds: msg.E_userId,
  37. Title: PushConfig.Messages.NewUser.Title,
  38. Content: PushConfig.Messages.NewUser.Content,
  39. MsgType: PushConfig.Messages.NewUser.MsgType,
  40. Link: PushConfig.Messages.NewUser.PcUrl + "," + PushConfig.Messages.NewUser.MobileUrl + "," + PushConfig.Messages.NewUser.MobileUrl + "," + PushConfig.Messages.NewUser.MobileUrl,
  41. Appid: PushConfig.Messages.NewUser.Appid,
  42. AppPushUrl: appUrl,
  43. WxPushUrl: PushConfig.Webdomain + wxUrl,
  44. IosPushUrl: appUrl,
  45. })
  46. if err != nil {
  47. logger.Info("SendMsg Fail ", err)
  48. }
  49. }()
  50. _ = award.GivenPoints(msg.E_userId, award.Points{
  51. Num: gcfg.Instance().MustGet(gctx.New(), "newUserAward.points", nil).Int64(),
  52. Type: 1002,
  53. ActivityCode: NewUserAwardActivityName,
  54. Date: msg.E_time,
  55. Desc: "新用户注册奖励",
  56. })
  57. // 新注册用户赠送超级订阅
  58. //用户注册进行线索分配
  59. if msg.E_userId != "" {
  60. addClue(msg.E_userId)
  61. }
  62. startTime := gtime.NewFromStrLayout(gcfg.Instance().MustGet(gctx.New(), "newRegister.startTime").String(), "2006-01-02T15:04:05Z").Time
  63. entTime := gtime.NewFromStrLayout(gcfg.Instance().MustGet(gctx.New(), "newRegister.entTime").String(), "2006-01-02T15:04:05Z").Time
  64. now := time.Now()
  65. if now.After(startTime) && now.Before(entTime) {
  66. if msg.E_code != "jyapp_wx_register" {
  67. c := db.Mysql.CountBySql("SELECT count(1) FROM dataexport_order WHERE user_id = ? AND distribution_channel = 'x054'", msg.E_userId)
  68. if c <= 0 {
  69. _ = award.GivenSubVip(msg.E_userId, award.SubVip{
  70. Num: gcfg.Instance().MustGet(gctx.New(), "newRegister.supVip", nil).Int64(),
  71. ActivityCode: "newRegister",
  72. Date: msg.E_time,
  73. Desc: "2024年新用户注册赠送7天超级订阅",
  74. })
  75. err := rpc.SendMsg("新用户注册", &message.MultipleSaveMsgReq{
  76. UserIds: msg.E_userId,
  77. Title: gcfg.Instance().MustGet(gctx.New(), "newRegister.message.title", "").String(),
  78. Content: gcfg.Instance().MustGet(gctx.New(), "newRegister.message.content", "").String(),
  79. MsgType: gcfg.Instance().MustGet(gctx.New(), "newRegister.message.msgType").Int64(),
  80. Appid: gcfg.Instance().MustGet(gctx.New(), "newRegister.message.appid", "").String(),
  81. Link: gcfg.Instance().MustGet(gctx.New(), "newRegister.message.pcUrl", "").String() + "," +
  82. gcfg.Instance().MustGet(gctx.New(), "newRegister.message.mobileUrl", "").String() + "," +
  83. gcfg.Instance().MustGet(gctx.New(), "newRegister.message.mobileUrl", "").String() + "," +
  84. gcfg.Instance().MustGet(gctx.New(), "newRegister.message.mobileUrl", "").String(),
  85. AppPushUrl: gcfg.Instance().MustGet(gctx.New(), "newRegister.message.mobileUrl", "").String(),
  86. WxPushUrl: gcfg.Instance().MustGet(gctx.New(), "newRegister.message.wxUrl", "").String(),
  87. IosPushUrl: gcfg.Instance().MustGet(gctx.New(), "newRegister.message.mobileUrl", "").String(),
  88. })
  89. if err != nil {
  90. logger.Info("SendMsg Fail ", err)
  91. }
  92. } else {
  93. logger.Info("该用户活动时间内已经注册过", msg.E_userId)
  94. }
  95. } else {
  96. logger.Info("微信注册,活动不送", msg.E_userId)
  97. }
  98. }
  99. }
  100. func addClue(userId string) {
  101. log.Println("用户注册进线索", userId)
  102. client := &http.Client{}
  103. var data = strings.NewReader(fmt.Sprintf(`{ "position_Id":"%s", "action":"user", "source_desc":"" }`, userId))
  104. clueService := g.Cfg().MustGet(gctx.New(), "clueService").String()
  105. if clueService == "" {
  106. return
  107. }
  108. req, err := http.NewRequest("POST", clueService, data)
  109. if err != nil {
  110. log.Fatal(err)
  111. }
  112. req.Header.Set("Content-Type", "application/json")
  113. resp, err := client.Do(req)
  114. if err != nil {
  115. log.Fatal(err)
  116. }
  117. bodyText, err := ioutil.ReadAll(resp.Body)
  118. if err != nil {
  119. log.Fatal(err)
  120. }
  121. fmt.Printf(userId, "%s\n", bodyText)
  122. }