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 }