package services import ( "fmt" "hongze/hongze_clpt/models" "hongze/hongze_clpt/utils" "time" ) //AddSearchKeyWord 记录用户搜索关键词 func AddSearchKeyWord(user *models.WxUserItem, keyWord string, source int) (err error) { cacheKey := fmt.Sprint("Search_uid:", user.UserId, "_KeyWord:", keyWord, "_Source:", source) isExist := utils.Rc.IsExist(cacheKey) if isExist { return err } defer func() { if err != nil { go utils.SendAlarmMsg(" 记录用户搜索关键词失败"+err.Error(), 2) go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "记录用户搜索关键词失败 ErrMsg:"+err.Error(), utils.EmailSendToUsers) } }() keyWordItem := new(models.CygxSearchKeyWord) keyWordItem.UserId = user.UserId keyWordItem.KeyWord = keyWord keyWordItem.CreateTime = time.Now() keyWordItem.Mobile = user.Mobile keyWordItem.Email = user.Email keyWordItem.CompanyId = user.CompanyId keyWordItem.CompanyName = user.CompanyName keyWordItem.RealName = user.RealName _, err = models.AddSearchKeyWord(keyWordItem) go AddUserSearchLog(user, keyWord, source) //一分钟之内的相同搜索词不重复记录 setNX := utils.Rc.SetNX(cacheKey, keyWord, time.Minute*1) if !setNX { go utils.SendAlarmMsg("记录用户搜索关键词失败,设置Redis Key 过期时间失败:key"+cacheKey, 3) } return } //AddUserSearchLog 记录用户搜索关键词的日志 func AddUserSearchLog(user *models.WxUserItem, keyWord string, source int) (err error) { defer func() { if err != nil { fmt.Println(err) go utils.SendAlarmMsg(" 记录用户搜索关键词的日志"+err.Error(), 2) } }() item := new(models.CygxSearchKeyWordLog) item.UserId = user.UserId item.KeyWord = keyWord item.CreateTime = time.Now() item.Mobile = user.Mobile item.Email = user.Email item.CompanyId = user.CompanyId item.CompanyName = user.CompanyName item.RealName = user.RealName item.Source = source _, err = models.AddSearchKeyWordLog(item) return }