Преглед на файлове

Merge branch 'cygx_9.3' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai преди 2 години
родител
ревизия
9782e74c49
променени са 5 файла, в които са добавени 123 реда и са изтрити 2 реда
  1. 10 0
      models/company_interaction_num.go
  2. 10 0
      models/user_interaction_num.go
  3. 8 0
      models/wx_user.go
  4. 62 0
      services/keyword.go
  5. 33 2
      services/wx_user.go

+ 10 - 0
models/company_interaction_num.go

@@ -17,6 +17,11 @@ type CygxCompanyInteractionNum struct {
 	ActivityOnLineNum   int       `description:"线上活动报名次数"`
 	ActivityOfficeNum   int       `description:"线下活动报名次数"`
 	ActivityNum         int       `description:"活动报名次数"`
+	TripNum             int       `description:"专项产业调研数量"`
+	RoadshowVideoNum    int       `description:"产业视频播放量"`
+	ActivityVideoNum    int       `description:"活动视频播放量"`
+	ActivityVoiceNum    int       `description:"活动音频播放量"`
+	RoadshowNum         int       `description:"路演播放总数量"`
 	CreateTime          time.Time `description:"创建时间"`
 	ModifyTime          time.Time `description:"更新时间"`
 }
@@ -41,6 +46,11 @@ func UpdateCygxCompanyInteractionNum(item *CygxCompanyInteractionNum) (err error
 	updateParams["ActivityOnLineNum"] = item.ActivityOnLineNum
 	updateParams["ActivityOfficeNum"] = item.ActivityOfficeNum
 	updateParams["ActivityNum"] = item.ActivityNum
+	updateParams["TripNum"] = item.TripNum
+	updateParams["RoadshowVideoNum"] = item.RoadshowVideoNum
+	updateParams["ActivityVideoNum"] = item.ActivityVideoNum
+	updateParams["ActivityVoiceNum"] = item.ActivityVoiceNum
+	updateParams["RoadshowNum"] = item.RoadshowNum
 	updateParams["CreateTime"] = time.Now()
 	updateParams["ModifyTime"] = time.Now()
 	whereParam := map[string]interface{}{"company_id": item.CompanyId}

+ 10 - 0
models/user_interaction_num.go

@@ -17,6 +17,11 @@ type CygxUserInteractionNum struct {
 	ActivityOnLineNum   int       `description:"线上活动报名次数"`
 	ActivityOfficeNum   int       `description:"线下活动报名次数"`
 	ActivityNum         int       `description:"活动报名次数"`
+	TripNum             int       `description:"专项产业调研数量"`
+	RoadshowVideoNum    int       `description:"产业视频播放量"`
+	ActivityVideoNum    int       `description:"活动视频播放量"`
+	ActivityVoiceNum    int       `description:"活动音频播放量"`
+	RoadshowNum         int       `description:"路演播放总数量"`
 	CreateTime          time.Time `description:"创建时间"`
 	ModifyTime          time.Time `description:"更新时间"`
 }
@@ -41,6 +46,11 @@ func UpdateCygxUserInteractionNum(item *CygxUserInteractionNum) (err error) {
 	updateParams["ActivityOnLineNum"] = item.ActivityOnLineNum
 	updateParams["ActivityOfficeNum"] = item.ActivityOfficeNum
 	updateParams["ActivityNum"] = item.ActivityNum
+	updateParams["TripNum"] = item.TripNum
+	updateParams["RoadshowVideoNum"] = item.RoadshowVideoNum
+	updateParams["ActivityVideoNum"] = item.ActivityVideoNum
+	updateParams["ActivityVoiceNum"] = item.ActivityVoiceNum
+	updateParams["RoadshowNum"] = item.RoadshowNum
 	updateParams["CreateTime"] = time.Now()
 	updateParams["ModifyTime"] = time.Now()
 	whereParam := map[string]interface{}{"user_id": item.UserId}

+ 8 - 0
models/wx_user.go

@@ -512,6 +512,10 @@ type CygxUserInteractionNumDetail struct {
 	KeyWordNum          int    `description:"搜索关键词"`
 	OnLineNum           int    `description:"线上互动活动"`
 	OfficeNum           int    `description:"线下互动活动"`
+	TripNum             int    `description:"专项产业调研数量"`
+	RoadshowVideoNum    int    `description:"产业视频播放量"`
+	ActivityVideoNum    int    `description:"活动视频播放量"`
+	ActivityVoiceNum    int    `description:"活动音频播放量"`
 	PackageType         int    `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
 	TryStage            int    `description:"试用客户子标签:0全部、1未分类、2 推进、3 跟踪、4 预备"`
 }
@@ -532,6 +536,10 @@ func GetCygxCompanyUserUserInteraction(userIds string) (items []*CygxUserInterac
 					 AND t.activity_type = 1  AND h.do_fail_type = 0 ) AS on_line_num,
 			( SELECT COUNT( 1 ) FROM cygx_activity_signup AS h INNER JOIN cygx_activity as a ON a.activity_id = h.activity_id  INNER JOIN cygx_activity_type as t ON t.activity_type_id = a.activity_type_id   WHERE h.mobile = u.mobile  
 					  AND t.activity_type = 0 AND h.do_fail_type = 0 ) AS office_num,
+			( SELECT COUNT( 1 ) FROM cygx_activity_special_trip AS h INNER JOIN cygx_activity_special AS a ON a.activity_id = h.activity_id WHERE h.mobile = u.mobile  AND h.is_cancel = 0 ) AS trip_num,
+						( SELECT COUNT( 1 ) FROM cygx_micro_roadshow_video_history AS h  INNER JOIN cygx_micro_roadshow_video as v ON v.video_id = h.video_id WHERE  h.mobile = u.mobile  ) AS roadshow_video_num,
+						( SELECT COUNT( 1 ) FROM cygx_activity_video_history AS h  INNER JOIN cygx_activity_video as v ON v.video_id = h.video_id WHERE  h.mobile = u.mobile  ) AS activity_video_num,
+						( SELECT COUNT( 1 ) FROM cygx_activity_voice_history AS h  INNER JOIN cygx_activity_voice as v ON v.activity_voice_id = h.activity_voice_id WHERE  h.mobile = u.mobile  ) AS activity_voice_num,
 			(
 			SELECT
 				GROUP_CONCAT( DISTINCT man.industry_name SEPARATOR ',' ) 

+ 62 - 0
services/keyword.go

@@ -1,6 +1,7 @@
 package services
 
 import (
+	"errors"
 	"fmt"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
@@ -59,5 +60,66 @@ func AddUserSearchLog(user *models.WxUserItem, keyWord string, source int) (err
 	item.RealName = user.RealName
 	item.Source = source
 	_, err = models.AddSearchKeyWordLog(item)
+	go SearchKeywordUserRmind(user, keyWord)
+	return
+}
+
+//用户搜索操作操作行为,模板消息推送
+func SearchKeywordUserRmind(user *models.WxUserItem, keyWord string) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("用户搜索操作操作行为,模板消息推送失败"+err.Error(), 2)
+		}
+	}()
+	countUser, err := models.GetUserRemind(user.UserId)
+	if err != nil {
+		return err
+	}
+	if countUser == 0 {
+		return err
+	}
+	var first string
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var remark string
+	//获取销售手机号
+	sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	if sellerItemQy != nil {
+		openIdList, e := models.GetWxOpenIdByMobileList(sellerItemQy.Mobile)
+		if e != nil {
+			err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+			return
+		}
+		first = fmt.Sprint(user.RealName, "--", user.CompanyName, ",有新的互动:搜索")
+		keyword1 = "搜索关键词:" + keyWord
+		openIdArr := make([]string, 0)
+		for _, v := range openIdList {
+			openIdArr = append(openIdArr, v.OpenId)
+		}
+		redirectUrl := ""
+		sendInfo := new(SendWxTemplate)
+		sendInfo.First = first
+		sendInfo.Keyword1 = keyword1
+		sendInfo.Keyword2 = keyword2
+		sendInfo.Keyword3 = keyword3
+		sendInfo.Keyword4 = keyword4
+		sendInfo.Remark = remark
+		sendInfo.TemplateId = utils.WxMsgTemplateIdArticleUserRemind
+		sendInfo.RedirectUrl = redirectUrl
+		sendInfo.RedirectTarget = 3
+		sendInfo.Resource = "0"
+		sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+		sendInfo.OpenIdArr = openIdArr
+		err = PublicSendTemplateMsg(sendInfo)
+		if err != nil {
+			return
+		}
+	}
 	return
 }

+ 33 - 2
services/wx_user.go

@@ -472,7 +472,7 @@ func UpdateWxUserLabel(cont context.Context) (err error) {
 				//处理用户的互动量
 				if len(userUserInteractionList) > 0 {
 					for _, vsplit := range userUserInteractionList {
-						interactionNum = vsplit.HistoryNum + vsplit.CountNum + vsplit.IndustryFllowNum + vsplit.DepartmentFollowNum + vsplit.KeyWordNum + vsplit.OnLineNum + vsplit.OfficeNum + vsplit.ChartCountNum
+						interactionNum = vsplit.HistoryNum + vsplit.CountNum + vsplit.IndustryFllowNum + vsplit.DepartmentFollowNum + vsplit.KeyWordNum + vsplit.OnLineNum + vsplit.OfficeNum + vsplit.ChartCountNum + vsplit.TripNum + vsplit.RoadshowVideoNum + vsplit.ActivityVideoNum + vsplit.ActivityVoiceNum
 						if interactionNum > 0 {
 							//更改用户的互动量
 							err = models.UpdateUserInteractionNum(interactionNum, int(vsplit.UserId))
@@ -493,6 +493,11 @@ func UpdateWxUserLabel(cont context.Context) (err error) {
 							itemInteraction.ActivityOnLineNum = vsplit.OnLineNum
 							itemInteraction.ActivityOfficeNum = vsplit.OfficeNum
 							itemInteraction.ActivityNum = vsplit.OnLineNum + vsplit.OfficeNum
+							itemInteraction.TripNum = vsplit.TripNum
+							itemInteraction.RoadshowVideoNum = vsplit.RoadshowVideoNum
+							itemInteraction.ActivityVideoNum = vsplit.ActivityVideoNum
+							itemInteraction.ActivityVoiceNum = vsplit.ActivityVoiceNum
+							itemInteraction.RoadshowNum = vsplit.RoadshowVideoNum + vsplit.ActivityVideoNum + vsplit.ActivityVoiceNum
 							itemInteraction.CreateTime = time.Now()
 							itemInteraction.ModifyTime = time.Now()
 
@@ -509,6 +514,11 @@ func UpdateWxUserLabel(cont context.Context) (err error) {
 								itemCompanyInteraction.ActivityOnLineNum = vsplit.OnLineNum
 								itemCompanyInteraction.ActivityOfficeNum = vsplit.OfficeNum
 								itemCompanyInteraction.ActivityNum = vsplit.OnLineNum + vsplit.OfficeNum
+								itemCompanyInteraction.TripNum = vsplit.TripNum
+								itemCompanyInteraction.RoadshowVideoNum = vsplit.RoadshowVideoNum
+								itemCompanyInteraction.ActivityVideoNum = vsplit.ActivityVideoNum
+								itemCompanyInteraction.ActivityVoiceNum = vsplit.ActivityVoiceNum
+								itemCompanyInteraction.RoadshowNum = vsplit.RoadshowVideoNum + vsplit.ActivityVideoNum + vsplit.ActivityVoiceNum
 								mapCompanyInteractionItem[vsplit.CompanyId] = itemCompanyInteraction
 								mapCompanyInteractionItem[vsplit.CompanyId].CreateTime = time.Now()
 								mapCompanyInteractionItem[vsplit.CompanyId].ModifyTime = time.Now()
@@ -524,6 +534,12 @@ func UpdateWxUserLabel(cont context.Context) (err error) {
 								mapCompanyInteractionItem[vsplit.CompanyId].ActivityOnLineNum += vsplit.OnLineNum
 								mapCompanyInteractionItem[vsplit.CompanyId].ActivityOfficeNum += vsplit.OfficeNum
 								mapCompanyInteractionItem[vsplit.CompanyId].ActivityNum += vsplit.OnLineNum + vsplit.OfficeNum
+								mapCompanyInteractionItem[vsplit.CompanyId].TripNum += vsplit.TripNum
+								mapCompanyInteractionItem[vsplit.CompanyId].RoadshowVideoNum += vsplit.RoadshowVideoNum
+								mapCompanyInteractionItem[vsplit.CompanyId].ActivityVideoNum += vsplit.ActivityVideoNum
+								mapCompanyInteractionItem[vsplit.CompanyId].ActivityVoiceNum += vsplit.ActivityVoiceNum
+								mapCompanyInteractionItem[vsplit.CompanyId].RoadshowNum += vsplit.RoadshowVideoNum + vsplit.ActivityVideoNum + vsplit.ActivityVoiceNum
+
 							}
 
 							//如果存在就修改不存在就新增
@@ -555,7 +571,7 @@ func UpdateWxUserLabel(cont context.Context) (err error) {
 			//处理用户的互动量
 			if len(userUserInteractionList) > 0 {
 				for _, vsplit := range userUserInteractionList {
-					interactionNum = vsplit.HistoryNum + vsplit.CountNum + vsplit.IndustryFllowNum + vsplit.DepartmentFollowNum + vsplit.KeyWordNum + vsplit.OnLineNum + vsplit.OfficeNum + vsplit.ChartCountNum
+					interactionNum = vsplit.HistoryNum + vsplit.CountNum + vsplit.IndustryFllowNum + vsplit.DepartmentFollowNum + vsplit.KeyWordNum + vsplit.OnLineNum + vsplit.OfficeNum + vsplit.ChartCountNum + vsplit.TripNum + vsplit.RoadshowVideoNum + vsplit.ActivityVideoNum + vsplit.ActivityVoiceNum
 					if interactionNum > 0 {
 						err = models.UpdateUserInteractionNum(interactionNum, int(vsplit.UserId))
 						if err != nil {
@@ -575,6 +591,11 @@ func UpdateWxUserLabel(cont context.Context) (err error) {
 						itemInteraction.ActivityOnLineNum = vsplit.OnLineNum
 						itemInteraction.ActivityOfficeNum = vsplit.OfficeNum
 						itemInteraction.ActivityNum = vsplit.OnLineNum + vsplit.OfficeNum
+						itemInteraction.TripNum = vsplit.TripNum
+						itemInteraction.RoadshowVideoNum = vsplit.RoadshowVideoNum
+						itemInteraction.ActivityVideoNum = vsplit.ActivityVideoNum
+						itemInteraction.ActivityVoiceNum = vsplit.ActivityVoiceNum
+						itemInteraction.RoadshowNum = vsplit.RoadshowVideoNum + vsplit.ActivityVideoNum + vsplit.ActivityVoiceNum
 
 						//如果这个切片下的结构体没有值就给他初始值,如果有就跟后面的相加
 						if mapCompanyInteractionItem[vsplit.CompanyId] == nil {
@@ -589,6 +610,11 @@ func UpdateWxUserLabel(cont context.Context) (err error) {
 							itemCompanyInteraction.ActivityOnLineNum = vsplit.OnLineNum
 							itemCompanyInteraction.ActivityOfficeNum = vsplit.OfficeNum
 							itemCompanyInteraction.ActivityNum = vsplit.OnLineNum + vsplit.OfficeNum
+							itemCompanyInteraction.TripNum = vsplit.TripNum
+							itemCompanyInteraction.RoadshowVideoNum = vsplit.RoadshowVideoNum
+							itemCompanyInteraction.ActivityVideoNum = vsplit.ActivityVideoNum
+							itemCompanyInteraction.ActivityVoiceNum = vsplit.ActivityVoiceNum
+							itemCompanyInteraction.RoadshowNum = vsplit.RoadshowVideoNum + vsplit.ActivityVideoNum + vsplit.ActivityVoiceNum
 							mapCompanyInteractionItem[vsplit.CompanyId] = itemCompanyInteraction
 							mapCompanyInteractionItem[vsplit.CompanyId].CreateTime = time.Now()
 							mapCompanyInteractionItem[vsplit.CompanyId].ModifyTime = time.Now()
@@ -603,6 +629,11 @@ func UpdateWxUserLabel(cont context.Context) (err error) {
 							mapCompanyInteractionItem[vsplit.CompanyId].ActivityOnLineNum += vsplit.OnLineNum
 							mapCompanyInteractionItem[vsplit.CompanyId].ActivityOfficeNum += vsplit.OfficeNum
 							mapCompanyInteractionItem[vsplit.CompanyId].ActivityNum += vsplit.OnLineNum + vsplit.OfficeNum
+							mapCompanyInteractionItem[vsplit.CompanyId].TripNum += vsplit.TripNum
+							mapCompanyInteractionItem[vsplit.CompanyId].RoadshowVideoNum += vsplit.RoadshowVideoNum
+							mapCompanyInteractionItem[vsplit.CompanyId].ActivityVideoNum += vsplit.ActivityVideoNum
+							mapCompanyInteractionItem[vsplit.CompanyId].ActivityVoiceNum += vsplit.ActivityVoiceNum
+							mapCompanyInteractionItem[vsplit.CompanyId].RoadshowNum += vsplit.RoadshowVideoNum + vsplit.ActivityVideoNum + vsplit.ActivityVoiceNum
 						}
 
 						//如果存在就修改不存在就新增