|
@@ -0,0 +1,105 @@
|
|
|
+package services
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_cygx/models"
|
|
|
+ "hongze/hongze_cygx/utils"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+// 添加用户搜索标签到Redis
|
|
|
+func KeyWordsWxUserRaiLabelRedisAdd(sourceId, uid int, label string) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
|
|
|
+ go utils.SendAlarmMsg("用户关注产业更新相关标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 1, Label: label, CreateTime: time.Now(), RegisterPlatform: utils.REGISTER_PLATFORM}
|
|
|
+ if utils.Re == nil {
|
|
|
+ err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("WxUserRaiLabelRedis LPush Err:" + err.Error())
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func UpdateWxUserRaiLabelRedis() (err error) {
|
|
|
+ for {
|
|
|
+ //SourceType int `description:"1:文章阅读、 2产业关注、3:活动到会、4系列关注、5专项调研活动到会。"`
|
|
|
+ utils.Rc.Brpop(utils.WX_USER_RAI_LABEL_KEY, func(b []byte) {
|
|
|
+ var log models.WxUserRaiLabelRedis
|
|
|
+ if err := json.Unmarshal(b, &log); err != nil {
|
|
|
+ fmt.Println("json unmarshal wrong!")
|
|
|
+ go utils.SendAlarmMsg("用户更新相关标签处理Redis队列消息失败:"+err.Error()+string(b), 2)
|
|
|
+ }
|
|
|
+ switch log.SourceType {
|
|
|
+ case 1:
|
|
|
+ go KeyWordsWxUserRaiLabelRedisAddReduce(log)
|
|
|
+ fmt.Println("文章阅读")
|
|
|
+ break
|
|
|
+ //case 2:
|
|
|
+ // go IndustryFllowUserLabelLogReduce(log)
|
|
|
+ // fmt.Println("2产业关注")
|
|
|
+ // break
|
|
|
+ //case 3:
|
|
|
+ // go ActivityUserLabelLogReduce(log)
|
|
|
+ // fmt.Println("活动到会")
|
|
|
+ // break
|
|
|
+ //case 4:
|
|
|
+ // go CategoryFllowUserLabelLogReduce(log)
|
|
|
+ // fmt.Println("4系列关注")
|
|
|
+ // break
|
|
|
+ //case 5:
|
|
|
+ // go ActivitySpecialUserLabelLogReduce(log)
|
|
|
+ // fmt.Println("5专项调研活动到会")
|
|
|
+ // break
|
|
|
+ default:
|
|
|
+ fmt.Println(string(b))
|
|
|
+ go utils.SendAlarmMsg("用户更新相关标签处理Redis队列消息失败:"+string(b), 2)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 1:搜索关键词
|
|
|
+func KeyWordsWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("用户文章阅读更新相关标签,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("articleId", log.SourceId, "userId", log.UserId), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ userId := log.UserId
|
|
|
+ label := log.Label
|
|
|
+ if userId == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ wxUser, e := models.GetWxUserItemByUserId(userId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxUserItemByUserId" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := new(models.WxUserRaiLabel)
|
|
|
+ item.UserId = wxUser.UserId
|
|
|
+ item.RealName = wxUser.RealName
|
|
|
+ item.Mobile = wxUser.Mobile
|
|
|
+ item.Email = wxUser.Email
|
|
|
+ item.CompanyId = wxUser.CompanyId
|
|
|
+ item.CompanyName = wxUser.CompanyName
|
|
|
+ item.Label = label
|
|
|
+ item.SourceType = log.SourceType
|
|
|
+ item.CreateTime = log.CreateTime
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ item.RegisterPlatform = log.RegisterPlatform
|
|
|
+ err = models.AddWxUserRaiLabel(item)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddWxUserRaiLabel" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|