Browse Source

6.4.1 模板消息推送

xingzai 2 years ago
parent
commit
0089a7ddb9
8 changed files with 681 additions and 414 deletions
  1. 14 0
      controllers/activity.go
  2. 18 3
      controllers/article.go
  3. 7 0
      models/wx_user.go
  4. 128 0
      services/activity.go
  5. 3 4
      services/task.go
  6. 105 0
      services/wx_template_msg.go
  7. 388 394
      services/wx_user.go
  8. 18 13
      utils/config.go

+ 14 - 0
controllers/activity.go

@@ -1214,6 +1214,13 @@ func (this *ActivityCoAntroller) SignupAdd() {
 					return
 				}
 				resp.HaqveJurisdiction = true
+				//1:预约外呼 、2:设置会议提醒 、 3:预约纪要 、4:活动报名
+				if signupType == 1 {
+					go services.ActivityUserRemind(user, activityInfo, 1)
+				} else {
+					go services.ActivityUserRemind(user, activityInfo, 4)
+				}
+
 			}
 		} else {
 			if companyItem.ProductId == 2 {
@@ -1698,6 +1705,8 @@ func (this *ActivityCoAntroller) MeetingReminderAdd() {
 				return
 			}
 			resp.HaqveJurisdiction = true
+			//1:预约外呼 、2:设置会议提醒 、 3:预约纪要 、4:活动报名
+			go services.ActivityUserRemind(user, activityInfo, 2)
 		} else {
 			if companyItem.ProductId == 2 {
 				hasPermission = 2
@@ -4143,6 +4152,8 @@ func (this *ActivityCoAntroller) SpecialSignupAdd() {
 					}
 				}
 			}
+			//用户专项调研操作行为,模板消息推送
+			go services.SpecialActivityUserRemind(user, activityInfo, 1)
 		} else {
 			err = models.DeleteCygxActivitySpecialSignup(user.UserId, activityId)
 			if err != nil {
@@ -4651,6 +4662,9 @@ func (this *ActivityCoAntroller) ActivityAppointmentAdd() {
 				return
 			}
 			resp.HaqveJurisdiction = true
+			//1:预约外呼 、2:设置会议提醒 、 3:预约纪要 、4:活动报名
+			go services.ActivityUserRemind(user, activityInfo, 3)
+
 		} else {
 			if companyItem.ProductId == 2 {
 				hasPermission = 2

+ 18 - 3
controllers/article.go

@@ -190,6 +190,12 @@ func (this *ArticleController) Detail() {
 						go models.AddCygxArticleHistoryRecord(historyRecord)
 					}
 				}
+				//30分钟之内阅读同一篇文章不错二次推送
+				key := "CYGX_ARTICLE_READ" + strconv.Itoa(articleId) + "_" + strconv.Itoa(uid)
+				if !utils.Rc.IsExist(key) {
+					go services.ArticleUserRemind(user, detail, 1)
+					utils.Rc.Put(key, 1, 30*time.Second)
+				}
 			} else { //无该行业权限
 				companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
 				if err == nil && companyDetail.ProductId == 1 {
@@ -370,7 +376,14 @@ func (this *ArticleController) ArticleCollect() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	count, err := models.GetArticleCollectCount(uid, req.ArticleId)
+	articleId := req.ArticleId
+	detail, err := models.GetArticleDetailById(articleId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取信息失败,Err:" + err.Error()
+		return
+	}
+	count, err := models.GetArticleCollectCount(uid, articleId)
 	if err != nil {
 		br.Msg = "获取数据失败!"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
@@ -395,8 +408,10 @@ func (this *ArticleController) ArticleCollect() {
 		}
 		br.Msg = "收藏成功"
 		resp.Status = 1
+		// 文章收藏消息发送
+		go services.ArticleUserRemind(user, detail, 2)
 	} else {
-		err = models.RemoveArticleCollect(uid, req.ArticleId)
+		err = models.RemoveArticleCollect(uid, articleId)
 		if err != nil {
 			br.Msg = "取消收藏失败"
 			br.ErrMsg = "取消收藏失败,Err:" + err.Error()
@@ -405,7 +420,7 @@ func (this *ArticleController) ArticleCollect() {
 		br.Msg = "已取消收藏"
 		resp.Status = 2
 	}
-	collectTotal, err := models.GetArticleCollectUsersCount(req.ArticleId)
+	collectTotal, err := models.GetArticleCollectUsersCount(articleId)
 	if err != nil {
 		br.Msg = "获取数据失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()

+ 7 - 0
models/wx_user.go

@@ -261,6 +261,13 @@ func GetUserCountByName(companyId int, name string) (count int, err error) {
 	return
 }
 
+//判断这个用户是否被设置消息提醒
+func GetUserRemind(uid int) (count int, err error) {
+	sql := `SELECT  COUNT(1) AS count FROM cygx_user_remind WHERE user_id = ? `
+	err = orm.NewOrm().Raw(sql, uid).QueryRow(&count)
+	return
+}
+
 //判断公司下用户名称是否存在
 func GetUserCountByThirdName(companyId int, name string) (count int, err error) {
 	sql := `SELECT  COUNT(1) AS count FROM wx_user WHERE company_id = ? AND tripartite_code = ?`

+ 128 - 0
services/activity.go

@@ -979,3 +979,131 @@ func IsShowAppointment(activityTypeId int, chartPermissionName string) (isShowAp
 	}
 	return
 }
+
+//用户报告操作行为,模板消息推送 (先放在活动模块下,避免代码冲突)
+func ArticleUserRemind(user *models.WxUserItem, articleDetail *models.ArticleDetail, source int) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("同步策略平台阅读数据失败", 2)
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetCeLueArticlePv ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+	countUser, err := models.GetUserRemind(user.UserId)
+	if err != nil {
+		return err
+	}
+	if countUser == 0 {
+		return err
+	}
+	var sourceMsg string
+	if source == 1 {
+		sourceMsg = "阅读报告"
+	} else {
+		sourceMsg = "收藏报告"
+	}
+
+	//获取销售手机号
+	sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	if sellerItemQy != nil {
+		openIdList, err := models.GetUserRecordListByMobile(4, sellerItemQy.Mobile)
+		if err != nil {
+			fmt.Println(err)
+			return err
+		}
+		var keyword1 string
+		var keyword2 string
+
+		keyword1 = fmt.Sprint(user.RealName, "--", user.CompanyName, "有新的互动:", sourceMsg)
+		keyword2 = articleDetail.Title
+		SendWxMsgWithArticleUserRemind(keyword1, keyword2, openIdList, articleDetail.ArticleId)
+	}
+	return
+}
+
+//用户活动操作行为,模板消息推送
+func ActivityUserRemind(user *models.WxUserItem, activityDetail *models.ActivityDetail, source int) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("同步策略平台阅读数据失败", 2)
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetCeLueArticlePv ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+	countUser, err := models.GetUserRemind(user.UserId)
+	if err != nil {
+		return err
+	}
+	if countUser == 0 {
+		return err
+	}
+	var sourceMsg string
+	if source == 1 {
+		sourceMsg = "预约外呼"
+	} else if source == 2 {
+		sourceMsg = "设置会议提醒"
+	} else if source == 3 {
+		sourceMsg = "预约纪要"
+	} else if source == 4 {
+		sourceMsg = "活动报名"
+	}
+
+	//获取销售手机号
+	sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	if sellerItemQy != nil {
+		openIdList, err := models.GetUserRecordListByMobile(4, sellerItemQy.Mobile)
+		if err != nil {
+			fmt.Println(err)
+			return err
+		}
+		var keyword1 string
+		var keyword2 string
+		keyword1 = fmt.Sprint(user.RealName, "--", user.CompanyName, "有新的互动:", sourceMsg)
+		keyword2 = activityDetail.ActivityName
+		SendWxMsgWithActivityUserRemind(keyword1, keyword2, openIdList, activityDetail.ActivityId)
+	}
+	return
+}
+
+//用户专项调研操作行为,模板消息推送
+func SpecialActivityUserRemind(user *models.WxUserItem, activityDetail *models.CygxActivitySpecialDetail, source int) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("同步策略平台阅读数据失败", 2)
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "GetCeLueArticlePv ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+		}
+	}()
+	countUser, err := models.GetUserRemind(user.UserId)
+	if err != nil {
+		return err
+	}
+	if countUser == 0 {
+		return err
+	}
+	var sourceMsg string
+	if source == 1 {
+		sourceMsg = "预报名调研"
+	}
+	//获取销售手机号
+	sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	if sellerItemQy != nil {
+		openIdList, err := models.GetUserRecordListByMobile(4, sellerItemQy.Mobile)
+		if err != nil {
+			fmt.Println(err)
+			return err
+		}
+		var keyword1 string
+		var keyword2 string
+		keyword1 = fmt.Sprint(user.RealName, "--", user.CompanyName, "有新的互动:", sourceMsg)
+		keyword2 = activityDetail.ResearchTheme
+		SendWxMsgWithSpecialActivityUserRemind(keyword1, keyword2, openIdList, activityDetail.ActivityId)
+	}
+	return
+}

+ 3 - 4
services/task.go

@@ -66,8 +66,8 @@ func Task() {
 		sendEmailFileForAskMsg := task.NewTask("sendEmailFileForAskMsg", "0 */5 8-22 * * *", SendEmailFileForAskMsg) //非研选系列专家电话会,根据主持人姓名,会前15分钟将问题列表发送给至该主持人对应邮箱
 		task.AddTask("sendEmailFileForAskMsg", sendEmailFileForAskMsg)
 
-		//updateWxUserLabel := task.NewTask("updateWxUserLabel", "0 01 0 * * *", UpdateWxUserLabel) //更新用户的标签
-		//task.AddTask("updateWxUserLabel", updateWxUserLabel)
+		updateWxUserLabel := task.NewTask("updateWxUserLabel", "0 01 0 * * *", UpdateWxUserLabel) //更新用户的标签
+		task.AddTask("updateWxUserLabel", updateWxUserLabel)
 
 		getCeLueArticlePv := task.NewTask("getCeLueArticlePv", "0 */10 * * * *", GetCeLueArticlePv) //通过三方接口获取策略平台上的阅读记录
 		task.AddTask("getCeLueArticlePv", getCeLueArticlePv)
@@ -76,14 +76,13 @@ func Task() {
 		getArticleListByApi := task.NewTask("getArticleListByApi", "0 */60 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章
 		task.AddTask("getArticleListByApi", getArticleListByApi)
 	}
-	UpdateWxUserLabel()
 	//DoCompany()
 	//ActivityAttendanceDetail()
 	//SynchronizationArthistory()//同步原有的阅读记录
 	//GetAddpArticle() //同步日度点评数据
 	//SendEmailAllUserWithRAI()     //发送当前所有权益用户到沈大爷的邮箱
 	//SendEmailAllUserWithCompany() //发送这些公司下的用户到沈大爷的邮箱
-	//task.StartTask()
+	task.StartTask()
 	//StatisticalReport()//导出报表
 	fmt.Println("end")
 }

+ 105 - 0
services/wx_template_msg.go

@@ -181,6 +181,111 @@ func SendWxMsgWithArticleClassToAdmin(keyWord1, keyWord2, keyWord3, keyWord4 str
 	return
 }
 
+//发送用户阅读报告消息提醒
+func SendWxMsgWithArticleUserRemind(keyWord1, keyWord2 string, openIdList []*models.OpenIdList, articleId int) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendAlarmMsg(fmt.Sprint("发送报告提问消息提醒模版消息失败,文章ID:", articleId), 2)
+			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+		}
+	}()
+	accessToken, err := models.GetWxAccessTokenByXzs()
+	if err != nil {
+		msg = "GetWxAccessToken Err:" + err.Error()
+		return
+	}
+	if accessToken == "" {
+		msg = "accessToken is empty"
+		return
+	}
+	var first string
+	first = keyWord1
+	keyword1 := keyWord2
+	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+	templateId := utils.WxMsgTemplateIdArticleUserRemind
+	sendMap := make(map[string]interface{})
+	sendData := make(map[string]interface{})
+	sendMap["template_id"] = templateId
+	sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": "pageMy/reportDetail/reportDetail?id=" + strconv.Itoa(articleId)}
+	sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
+	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": "#173177"}
+	sendMap["data"] = sendData
+	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(articleId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
+	return
+}
+
+//发送用户操作活动消息提醒
+func SendWxMsgWithActivityUserRemind(keyWord1, keyWord2 string, openIdList []*models.OpenIdList, activityId int) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,文章ID:", activityId), 2)
+			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+		}
+	}()
+	accessToken, err := models.GetWxAccessTokenByXzs()
+	if err != nil {
+		msg = "GetWxAccessToken Err:" + err.Error()
+		return
+	}
+	if accessToken == "" {
+		msg = "accessToken is empty"
+		return
+	}
+	var first string
+	first = keyWord1
+	keyword1 := keyWord2
+	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+	templateId := utils.WxMsgTemplateIdArticleUserRemind
+	sendMap := make(map[string]interface{})
+	sendData := make(map[string]interface{})
+	sendMap["template_id"] = templateId
+	sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": "activityPages/activityDetail/activityDetail?id=" + strconv.Itoa(activityId)}
+	sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
+	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": "#173177"}
+	sendMap["data"] = sendData
+	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(activityId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
+	return
+}
+
+//发送用户操作专项调研活动消息提醒
+func SendWxMsgWithSpecialActivityUserRemind(keyWord1, keyWord2 string, openIdList []*models.OpenIdList, activityId int) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			go utils.SendEmail("发送模版消息失败"+"【"+utils.APPNAME+"】"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendAlarmMsg(fmt.Sprint("发送用户操作活动消息提醒,文章ID:", activityId), 2)
+			utils.FileLog.Info("发送模版消息失败,Err:%s", err.Error())
+		}
+	}()
+	accessToken, err := models.GetWxAccessTokenByXzs()
+	if err != nil {
+		msg = "GetWxAccessToken Err:" + err.Error()
+		return
+	}
+	if accessToken == "" {
+		msg = "accessToken is empty"
+		return
+	}
+	var first string
+	first = keyWord1
+	keyword1 := keyWord2
+	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+	templateId := utils.WxMsgTemplateIdArticleUserRemind
+	sendMap := make(map[string]interface{})
+	sendData := make(map[string]interface{})
+	sendMap["template_id"] = templateId
+	sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": "activityPages/specialDetail/specialDetail?id=" + strconv.Itoa(activityId)}
+	sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
+	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": "#173177"}
+	sendMap["data"] = sendData
+	WxSendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(activityId), utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD)
+	return
+}
+
 //活动带问提醒
 func SendActivityAskApplyTemplateMsg(applyName, applyTime, askContent, activityName string, activityId int, itemOpenid *models.OpenIdList) (err error) {
 	var msg string

+ 388 - 394
services/wx_user.go

@@ -1,16 +1,17 @@
 package services
 
 import (
+	"context"
 	"fmt"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
+	"sort"
 	"strconv"
 	"strings"
 	"time"
 )
 
-//func UpdateWxUserLabel(cont context.Context) (err error) {
-func UpdateWxUserLabel() (err error) {
+func UpdateWxUserLabel(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
 			go utils.SendAlarmMsg("更新用户标签失败;Err:"+err.Error(), 2)
@@ -41,393 +42,394 @@ func UpdateWxUserLabel() (err error) {
 
 	//拉取策略平台用户同步的图表信息
 
-	//{
-	//	var chartMobile string
-	//	var chartItems []*models.CygxChartCollect
-	//
-	//	if utils.RunMode == "release" {
-	//		for k, vUser := range listUser {
-	//			if vUser.Mobile != "" {
-	//				mobile := vUser.Mobile
-	//				fmt.Println(vUser.Mobile, "_", k)
-	//				chartMobile += mobile + ","
-	//				listChart, _, _ := GetChartCollectionByApi(mobile, 9999, 0)
-	//				if len(listChart) > 0 {
-	//					for _, vChart := range listChart {
-	//						if mapChartCollect[fmt.Sprint("m:", mobile, "u:", vChart.ChartId)] == 0 {
-	//							item := new(models.CygxChartCollect)
-	//							item.ChartId = vChart.ChartId
-	//							t1, _ := time.Parse("2006-01-02T15:04:05Z", vChart.CreateDate)
-	//							item.CreateTime = t1
-	//							item.Mobile = mobile
-	//							chartItems = append(chartItems, item)
-	//						}
-	//					}
-	//				}
-	//			}
-	//		}
-	//	}
-	//	//如果有数据就添加
-	//	if len(chartItems) > 0 {
-	//		_, err = models.AddCygxChartCollectList(chartItems)
-	//		if err != nil {
-	//			fmt.Println(" RemoveChartCollectByMobile Err", err)
-	//		}
-	//	}
-	//
-	//	//处理图表关注后的用户
-	//	{
-	//
-	//		listChartCollect, err := models.GetCygxChartCollectByMobileList()
-	//		if err != nil {
-	//			fmt.Println("GetCygxChartCollectByMobileList ,Err" + err.Error())
-	//		}
-	//		for k, v := range listChartCollect {
-	//			if v.Mobile != "" {
-	//				user, err := models.GetWxUserItemByMobile(v.Mobile)
-	//				if err != nil && err.Error() != utils.ErrNoRow() {
-	//					fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
-	//				}
-	//				if user != nil {
-	//					fmt.Println(user.RealName, k)
-	//					err = models.UpdateCygxChartCollect(user)
-	//					if err != nil {
-	//						fmt.Println("UpdateCygxChartCollect ,Err" + err.Error())
-	//					}
-	//				}
-	//			}
-	//		}
-	//	}
-	//}
+	{
+		var chartMobile string
+		var chartItems []*models.CygxChartCollect
+
+		if utils.RunMode == "release" {
+			for k, vUser := range listUser {
+				if vUser.Mobile != "" {
+					mobile := vUser.Mobile
+					fmt.Println(vUser.Mobile, "_", k)
+					chartMobile += mobile + ","
+					listChart, _, _ := GetChartCollectionByApi(mobile, 9999, 0)
+					if len(listChart) > 0 {
+						for _, vChart := range listChart {
+							if mapChartCollect[fmt.Sprint("m:", mobile, "u:", vChart.ChartId)] == 0 {
+								item := new(models.CygxChartCollect)
+								item.ChartId = vChart.ChartId
+								t1, _ := time.Parse("2006-01-02T15:04:05Z", vChart.CreateDate)
+								item.CreateTime = t1
+								item.Mobile = mobile
+								chartItems = append(chartItems, item)
+							}
+						}
+					}
+				}
+			}
+		}
+		//如果有数据就添加
+		if len(chartItems) > 0 {
+			_, err = models.AddCygxChartCollectList(chartItems)
+			if err != nil {
+				fmt.Println(" RemoveChartCollectByMobile Err", err)
+			}
+		}
+
+		//处理图表关注后的用户
+		{
+
+			listChartCollect, err := models.GetCygxChartCollectByMobileList()
+			if err != nil {
+				fmt.Println("GetCygxChartCollectByMobileList ,Err" + err.Error())
+			}
+			for k, v := range listChartCollect {
+				if v.Mobile != "" {
+					user, err := models.GetWxUserItemByMobile(v.Mobile)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
+					}
+					if user != nil {
+						fmt.Println(user.RealName, k)
+						err = models.UpdateCygxChartCollect(user)
+						if err != nil {
+							fmt.Println("UpdateCygxChartCollect ,Err" + err.Error())
+						}
+					}
+				}
+			}
+		}
+	}
 
 	//处理 前一天移动之后的用户的公司记录信息
-	//{
-	//	updateTime := time.Now().Add(-time.Hour * 25).Format("2006-01-02 15:04:05")
-	//	listUpdateUser, err := models.GetWxUserOpLogList(updateTime)
-	//	if err != nil && err.Error() != utils.ErrNoRow() {
-	//		return err
-	//	}
-	//	var userIds string
-	//	var mobiles string
-	//	if len(listUpdateUser) > 0 {
-	//		for _, v := range listUpdateUser {
-	//			userIds += strconv.Itoa(v.UserId) + ","
-	//			mobiles += "'" + v.Mobile + "',"
-	//		}
-	//	}
-	//	userIds = strings.TrimRight(userIds, ",")
-	//	mobiles = strings.TrimRight(mobiles, ",")
-	//
-	//	//如果用户ID不为空那么就处理这些用户的记录信息
-	//	if userIds != "" {
-	//		var condition string
-	//		condition = ` AND user_id IN (` + userIds + `)`
-	//
-	//		//处理用户的文章收藏
-	//		listCollect, err := models.GetCygxArticleCollectList(condition)
-	//		if err != nil && err.Error() != utils.ErrNoRow() {
-	//			fmt.Println("GetAddCygxArticleCollectList ,Err" + err.Error())
-	//		}
-	//		if len(listCollect) > 0 {
-	//			for _, v := range listCollect {
-	//				user, err := models.GetWxUserItemByUserId(v.UserId)
-	//				if err != nil && err.Error() != utils.ErrNoRow() {
-	//					fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
-	//				}
-	//				if user != nil {
-	//					fmt.Println(user.RealName)
-	//					err = models.UpdateCygxArticleCollect(user)
-	//					if err != nil {
-	//						fmt.Println("UpdateCygxArticleCollect ,Err" + err.Error())
-	//					}
-	//				}
-	//			}
-	//		}
-	//		//处理用户的文章收藏 end
-	//
-	//		//修改用户关注的产业
-	//		listIndustryFllow, err := models.GetCygxIndustryFllowList(condition)
-	//		if err != nil {
-	//			fmt.Println("GetCygxIndustryFllowList ,Err" + err.Error())
-	//		}
-	//		for k, v := range listIndustryFllow {
-	//			if v.Mobile != "" {
-	//				user, err := models.GetWxUserItemByUserId(v.UserId)
-	//				if err != nil && err.Error() != utils.ErrNoRow() {
-	//					fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
-	//				}
-	//				if user != nil {
-	//					fmt.Println(user.RealName, k)
-	//					err = models.UpdateCygxIndustryFllow(user)
-	//					if err != nil {
-	//						fmt.Println("UpdateCygxIndustryFllow ,Err" + err.Error())
-	//					}
-	//				}
-	//			}
-	//		}
-	//
-	//		//修改用户产业关注的产业end
-	//
-	//		//修改用户的阅读记录
-	//		listArticlePv, err := models.GetArticleHistoryRecordAllByMobileList(condition)
-	//		if err != nil {
-	//			fmt.Println("GetArticleHistoryRecordAllByMobileList ,Err" + err.Error())
-	//		}
-	//		for k, v := range listArticlePv {
-	//			if v.Mobile != "" {
-	//				user, err := models.GetWxUserItemByMobile(v.Mobile)
-	//				if err != nil && err.Error() != utils.ErrNoRow() {
-	//					fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
-	//				}
-	//				if user != nil {
-	//					fmt.Println(user.RealName, k)
-	//					err = models.UpdateCygxArticleHistoryRecordAll(user)
-	//					if err != nil {
-	//						fmt.Println("UpdateCygxArticleCollect ,Err" + err.Error())
-	//					}
-	//				}
-	//			}
-	//		}
-	//		//修改用户的阅读记录end
-	//
-	//		//处理用户的搜索记录
-	//		listSearch, err := models.GetCygxSearchKeyWordList(condition)
-	//		if err != nil {
-	//			fmt.Println("GetArticleHistoryRecordAllByMobileList ,Err" + err.Error())
-	//		}
-	//
-	//		for k, v := range listSearch {
-	//			if v.Mobile != "" {
-	//				user, err := models.GetWxUserItemByUserId(v.UserId)
-	//				if err != nil && err.Error() != utils.ErrNoRow() {
-	//					fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
-	//				}
-	//				if user != nil {
-	//					fmt.Println(user.RealName, k)
-	//					err = models.UpdateCygxSearchKeyWord(user)
-	//					if err != nil {
-	//						fmt.Println("UpdateCygxSearchKeyWord ,Err" + err.Error())
-	//					}
-	//				}
-	//			}
-	//		}
-	//
-	//		// 处理用户的作者关注
-	//		lisDepartmentF, err := models.GetArticleDepartmentFollowByMobileList(condition)
-	//		if err != nil {
-	//			fmt.Println("GetArticleDepartmentFollowByMobileList ,Err" + err.Error())
-	//			return err
-	//		}
-	//		for k, v := range lisDepartmentF {
-	//			if v.Mobile != "" {
-	//				user, err := models.GetWxUserItemByUserId(v.UserId)
-	//				if err != nil && err.Error() != utils.ErrNoRow() {
-	//					fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
-	//				}
-	//				if user != nil {
-	//					fmt.Println(user.RealName, k)
-	//					err = models.UpdateCygxArticleDepartmentFollow(user)
-	//					if err != nil {
-	//						fmt.Println("UpdateCygxArticleDepartmentFollow ,Err" + err.Error())
-	//					}
-	//				}
-	//			}
-	//		}
-	//		// 处理用户的作者关注end
-	//
-	//		//如果手机号不为空,则更新用户的报名信息
-	//		if mobiles != "" {
-	//			condition = ` AND mobile IN (` + mobiles + `)`
-	//			listSingUp, err := models.GetCygxActivitySignupByMobileList(condition)
-	//			if err != nil {
-	//				fmt.Println("GetCygxChartCollectByMobileList ,Err" + err.Error())
-	//			}
-	//			//fmt.Println("更新用户的报名信息长度", len(listSingUp))
-	//			for _, v := range listSingUp {
-	//				if v.Mobile != "" {
-	//					user, err := models.GetWxUserItemByMobile(v.Mobile)
-	//					if err != nil && err.Error() != utils.ErrNoRow() {
-	//						fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
-	//					}
-	//					if user != nil {
-	//						err = models.UpdateCygxActivitySignup(user)
-	//						if err != nil {
-	//							fmt.Println("UpdateCygxActivitySignup ,Err" + err.Error())
-	//							//return err
-	//						}
-	//					}
-	//				}
-	//			}
-	//		}
-	//
-	//	}
-	//}
+
+	{
+		updateTime := time.Now().Add(-time.Hour * 25).Format("2006-01-02 15:04:05")
+		listUpdateUser, err := models.GetWxUserOpLogList(updateTime)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			return err
+		}
+		var userIds string
+		var mobiles string
+		if len(listUpdateUser) > 0 {
+			for _, v := range listUpdateUser {
+				userIds += strconv.Itoa(v.UserId) + ","
+				mobiles += "'" + v.Mobile + "',"
+			}
+		}
+		userIds = strings.TrimRight(userIds, ",")
+		mobiles = strings.TrimRight(mobiles, ",")
+
+		//如果用户ID不为空那么就处理这些用户的记录信息
+		if userIds != "" {
+			var condition string
+			condition = ` AND user_id IN (` + userIds + `)`
+
+			//处理用户的文章收藏
+			listCollect, err := models.GetCygxArticleCollectList(condition)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				fmt.Println("GetAddCygxArticleCollectList ,Err" + err.Error())
+			}
+			if len(listCollect) > 0 {
+				for _, v := range listCollect {
+					user, err := models.GetWxUserItemByUserId(v.UserId)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
+					}
+					if user != nil {
+						fmt.Println(user.RealName)
+						err = models.UpdateCygxArticleCollect(user)
+						if err != nil {
+							fmt.Println("UpdateCygxArticleCollect ,Err" + err.Error())
+						}
+					}
+				}
+			}
+			//处理用户的文章收藏 end
+
+			//修改用户关注的产业
+			listIndustryFllow, err := models.GetCygxIndustryFllowList(condition)
+			if err != nil {
+				fmt.Println("GetCygxIndustryFllowList ,Err" + err.Error())
+			}
+			for k, v := range listIndustryFllow {
+				if v.Mobile != "" {
+					user, err := models.GetWxUserItemByUserId(v.UserId)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
+					}
+					if user != nil {
+						fmt.Println(user.RealName, k)
+						err = models.UpdateCygxIndustryFllow(user)
+						if err != nil {
+							fmt.Println("UpdateCygxIndustryFllow ,Err" + err.Error())
+						}
+					}
+				}
+			}
+
+			//修改用户产业关注的产业end
+
+			//修改用户的阅读记录
+			listArticlePv, err := models.GetArticleHistoryRecordAllByMobileList(condition)
+			if err != nil {
+				fmt.Println("GetArticleHistoryRecordAllByMobileList ,Err" + err.Error())
+			}
+			for k, v := range listArticlePv {
+				if v.Mobile != "" {
+					user, err := models.GetWxUserItemByMobile(v.Mobile)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
+					}
+					if user != nil {
+						fmt.Println(user.RealName, k)
+						err = models.UpdateCygxArticleHistoryRecordAll(user)
+						if err != nil {
+							fmt.Println("UpdateCygxArticleCollect ,Err" + err.Error())
+						}
+					}
+				}
+			}
+			//修改用户的阅读记录end
+
+			//处理用户的搜索记录
+			listSearch, err := models.GetCygxSearchKeyWordList(condition)
+			if err != nil {
+				fmt.Println("GetArticleHistoryRecordAllByMobileList ,Err" + err.Error())
+			}
+
+			for k, v := range listSearch {
+				if v.Mobile != "" {
+					user, err := models.GetWxUserItemByUserId(v.UserId)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
+					}
+					if user != nil {
+						fmt.Println(user.RealName, k)
+						err = models.UpdateCygxSearchKeyWord(user)
+						if err != nil {
+							fmt.Println("UpdateCygxSearchKeyWord ,Err" + err.Error())
+						}
+					}
+				}
+			}
+
+			// 处理用户的作者关注
+			lisDepartmentF, err := models.GetArticleDepartmentFollowByMobileList(condition)
+			if err != nil {
+				fmt.Println("GetArticleDepartmentFollowByMobileList ,Err" + err.Error())
+				return err
+			}
+			for k, v := range lisDepartmentF {
+				if v.Mobile != "" {
+					user, err := models.GetWxUserItemByUserId(v.UserId)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
+					}
+					if user != nil {
+						fmt.Println(user.RealName, k)
+						err = models.UpdateCygxArticleDepartmentFollow(user)
+						if err != nil {
+							fmt.Println("UpdateCygxArticleDepartmentFollow ,Err" + err.Error())
+						}
+					}
+				}
+			}
+			// 处理用户的作者关注end
+
+			//如果手机号不为空,则更新用户的报名信息
+			if mobiles != "" {
+				condition = ` AND mobile IN (` + mobiles + `)`
+				listSingUp, err := models.GetCygxActivitySignupByMobileList(condition)
+				if err != nil {
+					fmt.Println("GetCygxChartCollectByMobileList ,Err" + err.Error())
+				}
+				//fmt.Println("更新用户的报名信息长度", len(listSingUp))
+				for _, v := range listSingUp {
+					if v.Mobile != "" {
+						user, err := models.GetWxUserItemByMobile(v.Mobile)
+						if err != nil && err.Error() != utils.ErrNoRow() {
+							fmt.Println("GetWxUserItemByUserId ,Err" + err.Error())
+						}
+						if user != nil {
+							err = models.UpdateCygxActivitySignup(user)
+							if err != nil {
+								fmt.Println("UpdateCygxActivitySignup ,Err" + err.Error())
+								//return err
+							}
+						}
+					}
+				}
+			}
+
+		}
+	}
 
 	//处理用户标签
-	//for _, vUser := range listUser {
-	//	labels, err := models.GetCygxCompanyUserListSplit(strconv.Itoa(vUser.UserId))
-	//	if err != nil {
-	//		fmt.Println("GetCygxCompanyUserListSplit Err", err)
-	//		return err
-	//	}
-	//	mapLabels := make(map[string]string)
-	//	var labelsListStr []*models.UserLabel
-	//	mapActivityLabels := make(map[string]string)
-	//	labelsList := strings.Split(labels, ",")
-	//	for _, vL := range labelsList {
-	//		if mapLabels[vL] == "" && vL != "" {
-	//			mapLabels[vL] = vL
-	//			item := new(models.UserLabel)
-	//			item.Label = vL
-	//			labelsListStr = append(labelsListStr, item)
-	//		}
-	//	}
-	//	dateTime := time.Now().AddDate(0, -3, 0).Format(utils.FormatDate)
-	//	listArticlePv, err := models.GetArticlePvCount(vUser.Mobile, vUser.Email, dateTime)
-	//	if err != nil && err.Error() != utils.ErrNoRow() {
-	//		fmt.Println("GetArticlePvCount Err", err)
-	//		return err
-	//	}
-	//	var articleIds string
-	//	mapArticleIdLabelTotal := make(map[string]int)
-	//	mapArticleIdPv := make(map[int]int)
-	//	if len(listArticlePv) > 0 {
-	//		for _, v := range listArticlePv {
-	//			articleIds += strconv.Itoa(v.ArticleId) + ","
-	//			mapArticleIdPv[v.ArticleId] = v.Pv
-	//		}
-	//		articleIds = strings.TrimRight(articleIds, ",")
-	//		//产业、标的标签
-	//		listLabelName, err := models.GetArticleGroupyIndustryName(articleIds)
-	//		if err != nil && err.Error() != utils.ErrNoRow() {
-	//			fmt.Println("GetArticleGroupyIndustryName Err", err)
-	//			return err
-	//		}
-	//		if len(listLabelName) > 0 {
-	//			for _, v := range listLabelName {
-	//				labelsIndustryList := strings.Split(v.IndustryName, "/")
-	//				labelsSubjectList := strings.Split(v.SubjectName, "/")
-	//				//添加产业统计
-	//				if len(labelsIndustryList) > 0 {
-	//					for _, vIn := range labelsIndustryList {
-	//						if mapActivityLabels[vIn] != "" {
-	//							mapArticleIdLabelTotal[vIn] += mapArticleIdPv[v.ArticleId]
-	//						} else {
-	//							mapArticleIdLabelTotal[vIn] = mapArticleIdPv[v.ArticleId]
-	//							mapActivityLabels[vIn] = vIn
-	//						}
-	//					}
-	//				}
-	//				if len(labelsSubjectList) > 0 {
-	//					//添加标的统计
-	//					for _, vIn := range labelsSubjectList {
-	//						if mapActivityLabels[vIn] != "" {
-	//							mapArticleIdLabelTotal[vIn] += mapArticleIdPv[v.ArticleId]
-	//						} else {
-	//							mapArticleIdLabelTotal[vIn] = mapArticleIdPv[v.ArticleId]
-	//							mapActivityLabels[vIn] = vIn
-	//						}
-	//					}
-	//				}
-	//			}
-	//		}
-	//	}
-	//	articleIds, err = models.GetCygxArticleCollectId(vUser.UserId, dateTime)
-	//	if err != nil && err.Error() != utils.ErrNoRow() {
-	//		fmt.Println("GetCygxArticleCollectId Err", err)
-	//		return err
-	//	}
-	//	if articleIds != "" {
-	//		//产业、标的标签
-	//		listLabelName, err := models.GetArticleGroupyIndustryName(articleIds)
-	//		if err != nil && err.Error() != utils.ErrNoRow() {
-	//			fmt.Println("GetArticleGroupyIndustryName Err", err)
-	//			return err
-	//		}
-	//		if len(listLabelName) > 0 {
-	//			for _, v := range listLabelName {
-	//				labelsIndustryList := strings.Split(v.IndustryName, "/")
-	//				labelsSubjectList := strings.Split(v.SubjectName, "/")
-	//				//添加产业统计
-	//				if len(labelsIndustryList) > 0 {
-	//					for _, vIn := range labelsIndustryList {
-	//						if mapActivityLabels[vIn] != "" {
-	//							mapArticleIdLabelTotal[vIn] += 1
-	//						} else {
-	//							mapArticleIdLabelTotal[vIn] = 1
-	//							mapActivityLabels[vIn] = vIn
-	//						}
-	//					}
-	//				}
-	//				if len(labelsSubjectList) > 0 {
-	//					//添加标的统计
-	//					for _, vIn := range labelsSubjectList {
-	//						if mapActivityLabels[vIn] != "" {
-	//							mapArticleIdLabelTotal[vIn] += 1
-	//						} else {
-	//							mapArticleIdLabelTotal[vIn] = 1
-	//							mapActivityLabels[vIn] = vIn
-	//						}
-	//					}
-	//				}
-	//			}
-	//		}
-	//	}
-	//	//活动标签计算
-	//	listActivityPv, err := models.GetActivitySignCount(vUser.Mobile, dateTime)
-	//	if err != nil && err.Error() != utils.ErrNoRow() {
-	//		fmt.Println("GetActivitySignCount Err", err)
-	//		return err
-	//	}
-	//	if len(listActivityPv) > 0 {
-	//		for _, v := range listActivityPv {
-	//			labelsList := strings.Split(v.Label, "-")
-	//			for _, v2 := range labelsList {
-	//				labelsListSon := strings.Split(v2, "/")
-	//				for _, v3 := range labelsListSon {
-	//					if mapActivityLabels[v3] != "" {
-	//						mapArticleIdLabelTotal[v3] += 1
-	//					} else {
-	//						mapArticleIdLabelTotal[v3] = 1
-	//						mapActivityLabels[v3] = v3
-	//					}
-	//				}
-	//			}
-	//		}
-	//	}
-	//	//对标签数量进行排序
-	//	type KvPair struct {
-	//		Key string
-	//		Val int
-	//	}
-	//	tmpList := make([]KvPair, 0)
-	//	for k, v := range mapArticleIdLabelTotal {
-	//		tmpList = append(tmpList, KvPair{Key: k, Val: v})
-	//	}
-	//	sort.Slice(tmpList, func(i, j int) bool {
-	//		return tmpList[i].Val > tmpList[j].Val // 降序
-	//	})
-	//	for _, v := range tmpList {
-	//		if v.Key != "" {
-	//			mapLabels[v.Key] = v.Key
-	//			item := new(models.UserLabel)
-	//			item.Label = v.Key
-	//			labelsListStr = append(labelsListStr, item)
-	//		}
-	//	}
-	//	var labelNew string
-	//	for _, v := range labelsListStr {
-	//		labelNew += v.Label + ","
-	//	}
-	//	labelNew = strings.TrimRight(labelNew, ",")
-	//	if labelNew != "" {
-	//		err = models.UpdateUserLabel(labelNew, vUser.UserId)
-	//		if err != nil {
-	//			fmt.Println("UpdateUserLabel Err", err)
-	//			return err
-	//		}
-	//	}
-	//}
+	for _, vUser := range listUser {
+		labels, err := models.GetCygxCompanyUserListSplit(strconv.Itoa(vUser.UserId))
+		if err != nil {
+			fmt.Println("GetCygxCompanyUserListSplit Err", err)
+			return err
+		}
+		mapLabels := make(map[string]string)
+		var labelsListStr []*models.UserLabel
+		mapActivityLabels := make(map[string]string)
+		labelsList := strings.Split(labels, ",")
+		for _, vL := range labelsList {
+			if mapLabels[vL] == "" && vL != "" {
+				mapLabels[vL] = vL
+				item := new(models.UserLabel)
+				item.Label = vL
+				labelsListStr = append(labelsListStr, item)
+			}
+		}
+		dateTime := time.Now().AddDate(0, -3, 0).Format(utils.FormatDate)
+		listArticlePv, err := models.GetArticlePvCount(vUser.Mobile, vUser.Email, dateTime)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			fmt.Println("GetArticlePvCount Err", err)
+			return err
+		}
+		var articleIds string
+		mapArticleIdLabelTotal := make(map[string]int)
+		mapArticleIdPv := make(map[int]int)
+		if len(listArticlePv) > 0 {
+			for _, v := range listArticlePv {
+				articleIds += strconv.Itoa(v.ArticleId) + ","
+				mapArticleIdPv[v.ArticleId] = v.Pv
+			}
+			articleIds = strings.TrimRight(articleIds, ",")
+			//产业、标的标签
+			listLabelName, err := models.GetArticleGroupyIndustryName(articleIds)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				fmt.Println("GetArticleGroupyIndustryName Err", err)
+				return err
+			}
+			if len(listLabelName) > 0 {
+				for _, v := range listLabelName {
+					labelsIndustryList := strings.Split(v.IndustryName, "/")
+					labelsSubjectList := strings.Split(v.SubjectName, "/")
+					//添加产业统计
+					if len(labelsIndustryList) > 0 {
+						for _, vIn := range labelsIndustryList {
+							if mapActivityLabels[vIn] != "" {
+								mapArticleIdLabelTotal[vIn] += mapArticleIdPv[v.ArticleId]
+							} else {
+								mapArticleIdLabelTotal[vIn] = mapArticleIdPv[v.ArticleId]
+								mapActivityLabels[vIn] = vIn
+							}
+						}
+					}
+					if len(labelsSubjectList) > 0 {
+						//添加标的统计
+						for _, vIn := range labelsSubjectList {
+							if mapActivityLabels[vIn] != "" {
+								mapArticleIdLabelTotal[vIn] += mapArticleIdPv[v.ArticleId]
+							} else {
+								mapArticleIdLabelTotal[vIn] = mapArticleIdPv[v.ArticleId]
+								mapActivityLabels[vIn] = vIn
+							}
+						}
+					}
+				}
+			}
+		}
+		articleIds, err = models.GetCygxArticleCollectId(vUser.UserId, dateTime)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			fmt.Println("GetCygxArticleCollectId Err", err)
+			return err
+		}
+		if articleIds != "" {
+			//产业、标的标签
+			listLabelName, err := models.GetArticleGroupyIndustryName(articleIds)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				fmt.Println("GetArticleGroupyIndustryName Err", err)
+				return err
+			}
+			if len(listLabelName) > 0 {
+				for _, v := range listLabelName {
+					labelsIndustryList := strings.Split(v.IndustryName, "/")
+					labelsSubjectList := strings.Split(v.SubjectName, "/")
+					//添加产业统计
+					if len(labelsIndustryList) > 0 {
+						for _, vIn := range labelsIndustryList {
+							if mapActivityLabels[vIn] != "" {
+								mapArticleIdLabelTotal[vIn] += 1
+							} else {
+								mapArticleIdLabelTotal[vIn] = 1
+								mapActivityLabels[vIn] = vIn
+							}
+						}
+					}
+					if len(labelsSubjectList) > 0 {
+						//添加标的统计
+						for _, vIn := range labelsSubjectList {
+							if mapActivityLabels[vIn] != "" {
+								mapArticleIdLabelTotal[vIn] += 1
+							} else {
+								mapArticleIdLabelTotal[vIn] = 1
+								mapActivityLabels[vIn] = vIn
+							}
+						}
+					}
+				}
+			}
+		}
+		//活动标签计算
+		listActivityPv, err := models.GetActivitySignCount(vUser.Mobile, dateTime)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			fmt.Println("GetActivitySignCount Err", err)
+			return err
+		}
+		if len(listActivityPv) > 0 {
+			for _, v := range listActivityPv {
+				labelsList := strings.Split(v.Label, "-")
+				for _, v2 := range labelsList {
+					labelsListSon := strings.Split(v2, "/")
+					for _, v3 := range labelsListSon {
+						if mapActivityLabels[v3] != "" {
+							mapArticleIdLabelTotal[v3] += 1
+						} else {
+							mapArticleIdLabelTotal[v3] = 1
+							mapActivityLabels[v3] = v3
+						}
+					}
+				}
+			}
+		}
+		//对标签数量进行排序
+		type KvPair struct {
+			Key string
+			Val int
+		}
+		tmpList := make([]KvPair, 0)
+		for k, v := range mapArticleIdLabelTotal {
+			tmpList = append(tmpList, KvPair{Key: k, Val: v})
+		}
+		sort.Slice(tmpList, func(i, j int) bool {
+			return tmpList[i].Val > tmpList[j].Val // 降序
+		})
+		for _, v := range tmpList {
+			if v.Key != "" {
+				mapLabels[v.Key] = v.Key
+				item := new(models.UserLabel)
+				item.Label = v.Key
+				labelsListStr = append(labelsListStr, item)
+			}
+		}
+		var labelNew string
+		for _, v := range labelsListStr {
+			labelNew += v.Label + ","
+		}
+		labelNew = strings.TrimRight(labelNew, ",")
+		if labelNew != "" {
+			err = models.UpdateUserLabel(labelNew, vUser.UserId)
+			if err != nil {
+				fmt.Println("UpdateUserLabel Err", err)
+				return err
+			}
+		}
+	}
 
 	//处理用户、机构互动量数据
 	{
@@ -506,8 +508,6 @@ func UpdateWxUserLabel() (err error) {
 								itemCompanyInteraction.ActivityOnLineNum = vsplit.OnLineNum
 								itemCompanyInteraction.ActivityOfficeNum = vsplit.OfficeNum
 								itemCompanyInteraction.ActivityNum = vsplit.OnLineNum + vsplit.OfficeNum
-								itemCompanyInteraction.CreateTime = time.Now()
-								itemCompanyInteraction.ModifyTime = time.Now()
 								mapCompanyInteractionItem[vsplit.CompanyId] = itemCompanyInteraction
 							} else {
 								fmt.Println("公司ID", vsplit.CompanyId)
@@ -572,8 +572,6 @@ func UpdateWxUserLabel() (err error) {
 						itemInteraction.ActivityOnLineNum = vsplit.OnLineNum
 						itemInteraction.ActivityOfficeNum = vsplit.OfficeNum
 						itemInteraction.ActivityNum = vsplit.OnLineNum + vsplit.OfficeNum
-						itemInteraction.CreateTime = time.Now()
-						itemInteraction.ModifyTime = time.Now()
 
 						//如果这个切片下的结构体没有值就给他初始值,如果有就跟后面的相加
 						if mapCompanyInteractionItem[vsplit.CompanyId] == nil {
@@ -588,8 +586,6 @@ func UpdateWxUserLabel() (err error) {
 							itemCompanyInteraction.ActivityOnLineNum = vsplit.OnLineNum
 							itemCompanyInteraction.ActivityOfficeNum = vsplit.OfficeNum
 							itemCompanyInteraction.ActivityNum = vsplit.OnLineNum + vsplit.OfficeNum
-							itemCompanyInteraction.CreateTime = time.Now()
-							itemCompanyInteraction.ModifyTime = time.Now()
 							mapCompanyInteractionItem[vsplit.CompanyId] = itemCompanyInteraction
 						} else {
 							mapCompanyInteractionItem[vsplit.CompanyId].CompanyId = vsplit.CompanyId
@@ -644,7 +640,7 @@ func UpdateWxUserLabel() (err error) {
 					v.ModifyTime = time.Now()
 					err = models.UpdateCygxCompanyInteractionNum(v)
 					if err != nil {
-						fmt.Println(" AddCygxCompanyInteractionNum Err", err)
+						fmt.Println(" UpdateCygxCompanyInteractionNum Err", err)
 					}
 				} else {
 					_, err = models.AddCygxCompanyInteractionNum(v)
@@ -653,9 +649,7 @@ func UpdateWxUserLabel() (err error) {
 					}
 				}
 			}
-
 		}
-
 	}
 	return
 }

+ 18 - 13
utils/config.go

@@ -27,19 +27,21 @@ var (
 	WxPublicIdXzs     string //查研观向小助手公众号
 	WxPublicSecretXzs string //查研观向小助手公众号
 
-	WxMsgTemplateIdApply            string //申请待处理
-	WxMsgTemplateIdApplyXzs         string //申请待处理(小助手)
-	WxMsgTemplateIdApplyCancel      string //预约取消提醒
-	WxMsgTemplateIdApplyCancelXzs   string //预约取消提醒(小助手)
-	WxMsgTemplateIdPermissionApply  string //预约取消提醒
-	WxMsgTemplateIdActivityApply    string //活动预约消息提醒
-	WxMsgTemplateIdActivityApplyXzs string //活动预约消息提醒(小助手)
-	WxMsgTemplateIdActivityChange   string //活动预约变更提醒
-	WxMsgTemplateIdAskMsg           string //手机号用户【XXX】发送模板消息模板ID
-	WxMsgTemplateIdAskMsgXzs        string //手机号用户【XXX】发送模板消息模板ID(小助手)
-	WxMsgTemplateIdAskMsgMobile     string //手机号用户【XXX】发送模板消息
-	WxMsgTemplateIdAskMsgMobileAll  string //手机号用户【XXX】发送模板消rm -
-	TemplateIdByProductXzs          string //产品运行报告通知-模板ID(小助手)
+	WxMsgTemplateIdApply                string //申请待处理
+	WxMsgTemplateIdApplyXzs             string //申请待处理(小助手)
+	WxMsgTemplateIdApplyCancel          string //预约取消提醒
+	WxMsgTemplateIdApplyCancelXzs       string //预约取消提醒(小助手)
+	WxMsgTemplateIdPermissionApply      string //预约取消提醒
+	WxMsgTemplateIdActivityApply        string //活动预约消息提醒
+	WxMsgTemplateIdActivityApplyXzs     string //活动预约消息提醒(小助手)
+	WxMsgTemplateIdActivityChange       string //活动预约变更提醒
+	WxMsgTemplateIdAskMsg               string //手机号用户【XXX】发送模板消息模板ID
+	WxMsgTemplateIdAskMsgXzs            string //手机号用户【XXX】发送模板消息模板ID(小助手)
+	WxMsgTemplateIdAskMsgMobile         string //手机号用户【XXX】发送模板消息
+	WxMsgTemplateIdAskMsgMobileAll      string //手机号用户【XXX】发送模板消rm -
+	TemplateIdByProductXzs              string //产品运行报告通知-模板ID(小助手)
+	WxMsgTemplateIdArticleUserRemind    string //用户阅读报告通知-模板ID
+	WxMsgTemplateIdArticleUserRemindXzs string //用户阅读报告通知-模板ID(小助手)
 )
 
 //微信公众号配置信息
@@ -142,6 +144,7 @@ func init() {
 		EmailExpert = "experts@hzinsights.com;tshen@hzinsights.com;cxzhang@hzinsights.com;jhwang@hzinsights.com"                         //研选行业专家邮箱
 		EmaiWhiteUserList = "tshen@hzinsights.com;cxzhang@hzinsights.com;yyli@hzinsights.com"                                            //白名单邮箱
 		WxMsgTemplateIdAskMsg = "PaoDanHGlt1kFw5q-4_ipJSwO3FyZpxSSNg4rwB7YCk"
+		WxMsgTemplateIdArticleUserRemind = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM"
 		WxMsgTemplateIdAskMsgMobile = ""
 		ActSendMsgMobile = "15618524605"
 		ArticleTaskClassMobile = "15557270714,18767183922,15216736473,15000123056,18701809782,17706316791,18652179672"
@@ -157,6 +160,8 @@ func init() {
 		WxMsgTemplateIdActivityApply = "Y59n_AHg-RLCKaz293geW76KDHpGL1qOnE7eF_lxelY"
 
 		WxMsgTemplateIdActivityChange = "qfNuops-CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM"
+		WxMsgTemplateIdArticleUserRemind = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM"
+
 		WxPublicAppId = "wx9b5d7291e581233a"
 		WxPublicAppSecret = "f4d52e34021eee262dce9682b31f8861"
 		WxPublicId = "gh_5dc508325c6f"