浏览代码

no message

xingzai 10 月之前
父节点
当前提交
01b6f77219
共有 3 个文件被更改,包括 383 次插入119 次删除
  1. 100 21
      models/company_interaction_num.go
  2. 49 31
      models/user_interaction_num.go
  3. 234 67
      services/wx_user.go

+ 100 - 21
models/company_interaction_num.go

@@ -6,25 +6,28 @@ import (
 )
 
 type CygxCompanyInteractionNum struct {
-	Id                  int       `orm:"column(id);pk"`
-	CompanyId           int       `description:"用户ID"`
-	ArticleHistoryNum   int       `description:"文章浏览数量"`
-	ArticleCountNum     int       `description:"文章收藏数量"`
-	ChartCountNum       int       `description:"图表收藏"`
-	IndustryFllowNum    int       `description:"产业关注数量"`
-	DepartmentFollowNum int       `description:"作者关注数量"`
-	KeyWordNum          int       `description:"关键词搜索次数"`
-	ActivityOnLineNum   int       `description:"线上活动报名次数"`
-	ActivityOfficeNum   int       `description:"线下活动报名次数"`
-	ActivityNum         int       `description:"活动报名次数"`
-	TripNum             int       `description:"专项产业调研数量"`
-	RoadshowVideoNum    int       `description:"产业视频播放量"`
-	ActivityVideoNum    int       `description:"活动视频播放量"`
-	ActivityVoiceNum    int       `description:"活动音频播放量"`
-	RoadshowNum         int       `description:"路演播放总数量"`
-	TagNum              int       `description:"标签点击次数"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"更新时间"`
+	Id                       int       `orm:"column(id);pk"`
+	CompanyId                int       `description:"用户ID"`
+	ArticleHistoryNum        int       `description:"文章浏览数量"`
+	ArticleCountNum          int       `description:"文章收藏数量"`
+	ChartCountNum            int       `description:"图表收藏"`
+	IndustryFllowNum         int       `description:"产业关注数量"`
+	DepartmentFollowNum      int       `description:"作者关注数量"`
+	KeyWordNum               int       `description:"关键词搜索次数"`
+	ActivityOnLineNum        int       `description:"线上活动报名次数"`
+	ActivityOfficeNum        int       `description:"线下活动报名次数"`
+	ActivityNum              int       `description:"活动报名次数"`
+	TripNum                  int       `description:"专项产业调研数量"`
+	RoadshowVideoNum         int       `description:"产业视频播放量"`
+	ActivityVideoNum         int       `description:"活动视频播放量"`
+	ActivityVoiceNum         int       `description:"活动音频播放量"`
+	RoadshowNum              int       `description:"路演播放总数量"`
+	TagNum                   int       `description:"标签点击次数"`
+	YanxuanSpecialNum        int       `description:"研选专栏阅读数量"`
+	YanxuanSpecialCollectNum int       `description:"研选专栏收藏数量"`
+	YanxuanSpecialFollowNum  int       `description:"研选专栏作者关注数量"`
+	CreateTime               time.Time `description:"创建时间"`
+	ModifyTime               time.Time `description:"更新时间"`
 }
 
 // 添加
@@ -68,9 +71,85 @@ func GetCygxCompanyInteractionNumList() (items []*CygxCompanyInteractionNum, err
 	return
 }
 
-// 批量添加用户互动信息
+// 批量添加企业互动信息
 func AddCygxCompanyInteractionNumList(items []*CygxCompanyInteractionNum) (lastId int64, err error) {
 	o := orm.NewOrm()
-	_, err = o.InsertMulti(1, items)
+	_, err = o.InsertMulti(len(items), items)
+	return
+}
+
+// UpdateActivitySignupDetailMulti 批量修改
+func UpdateCygxCompanyInteractionNumMulti(items []*CygxCompanyInteractionNum) (err error) {
+	o := orm.NewOrm()
+	p, err := o.Raw(` UPDATE cygx_company_interaction_num SET 
+							article_history_num = ?,
+							article_count_num = ?,
+							industry_fllow_num = ?,
+							department_follow_num = ?,
+							key_word_num = ?,
+							activity_num = ?,
+							chart_count_num = ?,
+							trip_num = ?,
+							roadshow_video_num = ?,
+							activity_video_num = ?,
+							activity_voice_num = ?,
+							roadshow_num = ?,
+							tag_num = ?
+							WHERE company_id = ? `).Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+	for _, v := range items {
+		_, err = p.Exec(
+			v.ArticleHistoryNum,
+			v.ArticleCountNum,
+			v.ChartCountNum,
+			v.IndustryFllowNum,
+			v.DepartmentFollowNum,
+			v.KeyWordNum,
+			v.ActivityNum,
+			v.TripNum,
+			v.RoadshowVideoNum,
+			v.ActivityVideoNum,
+			v.ActivityVoiceNum,
+			v.RoadshowNum,
+			v.TagNum,
+			v.CompanyId)
+		if err != nil {
+			return
+		}
+	}
+	return
+}
+
+// 企业互动量
+type CompanyInteractionNumReq struct {
+	CompanyId            int `description:"用户ID"`
+	InteractionNum       int `description:"互动总量"`
+	InteractionNumSeller int `description:"销售可以查看的互动总量"`
+}
+
+// UpdateCompanyInteractionNumMulti 批量修改客户互动量
+func UpdateCompanyInteractionNumMulti(items []*CompanyInteractionNumReq) (err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	p, err := o.Raw(` UPDATE company SET interaction_num = ? ,  interaction_num_seller = ?  WHERE company_id=? `).Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+	for _, v := range items {
+		_, err = p.Exec(
+			v.InteractionNum,
+			v.InteractionNumSeller,
+			v.CompanyId)
+		if err != nil {
+			return
+		}
+	}
 	return
 }

+ 49 - 31
models/user_interaction_num.go

@@ -90,12 +90,12 @@ func GetCygxArticleHistoryRecordInteractionNum(condition string) (items []*CygxU
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
-			cygx_article_history_record_all AS h
-			INNER JOIN cygx_article AS art ON art.article_id = h.article_id
-			INNER JOIN %s.wx_user AS w ON w.user_id = h.user_id  WHERE 1=1  ` + condition + ` GROUP BY w.user_id `
+			cygx_article_and_yanxuan_record AS h
+			INNER JOIN cygx_article AS art ON art.article_id = h.source_id 
+			INNER JOIN %s.wx_user AS w ON w.user_id = h.user_id  WHERE 1=1 AND h.source = 'article'   ` + condition + ` GROUP BY w.user_id `
 	databaseName := utils.GetWeeklyDatabase()
 	sql = fmt.Sprintf(sql, databaseName)
 	_, err = o.Raw(sql).QueryRows(&items)
@@ -108,8 +108,8 @@ func GetCygxArticleCollectInteractionNum(condition string) (items []*CygxUserInt
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_article_collect AS h
 			INNER JOIN cygx_article AS art ON art.article_id = h.article_id
@@ -126,8 +126,8 @@ func GetCygxChartCollectInteractionNum(condition string) (items []*CygxUserInter
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_chart_collect AS h
 			INNER JOIN cygx_chart_all AS art ON art.chart_id = h.chart_id
@@ -144,8 +144,8 @@ func GetCygxIndustryFllowInteractionNum(condition string) (items []*CygxUserInte
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_industry_fllow AS h
 			INNER JOIN cygx_industrial_management AS art ON art.industrial_management_id = h.industrial_management_id
@@ -162,8 +162,8 @@ func GetCygxSearchKeyWordInteractionNum(condition string) (items []*CygxUserInte
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_search_key_word AS h
 			INNER JOIN %s.wx_user AS w ON w.user_id = h.user_id  WHERE 1=1  ` + condition + ` GROUP BY w.user_id `
@@ -179,8 +179,8 @@ func GetCygxActivitySignupInteractionNum(condition string) (items []*CygxUserInt
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_activity_signup_detail AS h
 			INNER JOIN cygx_activity AS art ON art.activity_id = h.activity_id
@@ -197,8 +197,8 @@ func GetCygxActivitySpecialSignupInteractionNum(condition string) (items []*Cygx
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_activity_special_meeting_detail AS h
 			INNER JOIN cygx_activity_special AS art ON art.activity_id = h.activity_id
@@ -215,8 +215,8 @@ func GetCygxMicroRoadshowVideoHistoryInteractionNum(condition string) (items []*
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_micro_roadshow_video_history AS h
 			INNER JOIN cygx_micro_roadshow_video AS art ON art.video_id = h.video_id
@@ -233,8 +233,8 @@ func GetCygxActivityVideoHistoryInteractionNum(condition string) (items []*CygxU
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_activity_video_history AS h
 			INNER JOIN cygx_activity_video AS art ON art.activity_id = h.activity_id
@@ -251,8 +251,8 @@ func GetCygxActivityVoiceHistoryInteractionNum(condition string) (items []*CygxU
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_activity_voice_history AS h
 			INNER JOIN cygx_activity_voice AS art ON art.activity_id = h.activity_id
@@ -269,8 +269,8 @@ func GetCygxTagHistoryInteractionNum(condition string) (items []*CygxUserInterac
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_tag_history AS h
 			INNER JOIN cygx_tag AS art ON art.tag_id = h.tag_id
@@ -287,8 +287,8 @@ func GetCygxArticleDepartmentFollowInteractionNum(condition string) (items []*Cy
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_article_department_follow AS h
 			INNER JOIN %s.wx_user AS w ON w.user_id = h.user_id  WHERE 1=1  ` + condition + ` GROUP BY w.user_id `
@@ -298,14 +298,32 @@ func GetCygxArticleDepartmentFollowInteractionNum(condition string) (items []*Cy
 	return
 }
 
+// 用户收藏研选专栏数量统计
+func GetCygxYanxuanSpecialCollectInteractionNum(condition string) (items []*CygxUserInteractionNumResp, err error) {
+	o := orm.NewOrm()
+	var sql string
+	sql += ` SELECT
+			COUNT( 1 ) AS interaction_num,
+			h.user_id,
+			h.company_id 
+		FROM
+			cygx_yanxuan_special_collect AS h
+			INNER JOIN cygx_yanxuan_special AS art ON art.id = h.yanxuan_special_id
+			INNER JOIN %s.wx_user AS w ON w.user_id = h.user_id  WHERE 1=1  ` + condition + ` GROUP BY w.user_id `
+	databaseName := utils.GetWeeklyDatabase()
+	sql = fmt.Sprintf(sql, databaseName)
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // 用户关注研选专栏作者数量统计
 func GetCygxYanxuanSpecialFollowInteractionNum(condition string) (items []*CygxUserInteractionNumResp, err error) {
 	o := orm.NewOrm()
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_yanxuan_special_follow AS h
 			INNER JOIN %s.wx_user AS w ON w.user_id = h.user_id  WHERE 1=1  ` + condition + ` GROUP BY w.user_id `
@@ -321,8 +339,8 @@ func GetCygxYanxuanSpecialRecordInteractionNum(condition string) (items []*CygxU
 	var sql string
 	sql += ` SELECT
 			COUNT( 1 ) AS interaction_num,
-			w.user_id,
-			w.company_id 
+			h.user_id,
+			h.company_id 
 		FROM
 			cygx_yanxuan_special_record AS h
 			INNER JOIN cygx_yanxuan_special AS art ON art.id = h.yanxuan_special_id

+ 234 - 67
services/wx_user.go

@@ -11,7 +11,7 @@ import (
 	"time"
 )
 
-func UpdateWxUserLabel(cont context.Context) (err error) {
+func UpdateWxUserLabelOLd(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
 			go utils.SendAlarmMsg("更新用户标签失败;Err:"+err.Error(), 2)
@@ -1059,12 +1059,12 @@ func init123123() {
 	}
 }
 
-func init() {
-	UpdateWxUserLabelNew()
-}
+//func init() {
+//	UpdateWxUserLabelNew()
+//}
 
-// func UpdateWxUserLabelNew(cont context.Context) (err error) {
-func UpdateWxUserLabelNew() (err error) {
+func UpdateWxUserLabel(cont context.Context) (err error) {
+	//func UpdateWxUserLabelNew() (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -1072,50 +1072,70 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 	}()
 
-	mapComapnyInteractionNum := make(map[int]int)
+	mapComapnyInteractionNum := make(map[int]int)                                   // 机构互动数量
+	mapComapnyInteractionNumSeller := make(map[int]int)                             // 销售可查看的机构互动数量
+	mapComapnyInteractionSeller := make(map[int]bool)                               // 跟销售建立绑定关系的用户
+	mapComapnyInteractionNumItem := make(map[int]*models.CygxCompanyInteractionNum) // 跟销售建立绑定关系的用户
+	var comapnyInteractionNumItemAdd []*models.CygxCompanyInteractionNum            // 跟销售建立绑定关系的用户
+	var comapnyInteractionNumItemUpdate []*models.CygxCompanyInteractionNum         // 跟销售建立绑定关系的用户
+
+	//获取跟销售建立绑定关系的用户并记录切片
+	listUserSeller, e := models.GetUserSellerRelationUserList()
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetUserSellerRelationUserList, Err: " + e.Error())
+		return
+	}
+	for _, v := range listUserSeller {
+		mapComapnyInteractionSeller[v.UserId] = true
+	}
 
 	var condition string
-	condition = ` AND h.create_time < '%s' `
+	//condition = ` AND h.create_time < '%s'  AND h.company_id IN ( 398,17773)  `
+	condition = ` AND h.create_time < '%s'  `
 	condition = fmt.Sprintf(condition, time.Now().Format(utils.FormatDate)) // 截止昨天的所有数据
 
 	//fmt.Println(condition)
-	//报告阅读记录
-	//{
-	//	listArticleHistoryRecord, e := models.GetCygxArticleHistoryRecordInteractionNum(condition)
-	//	if e != nil {
-	//		err = errors.New("GetCygxArticleHistoryRecordInteractionNum, Err: " + e.Error())
-	//		return
-	//	}
-	//	for _, v := range listArticleHistoryRecord {
-	//		mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
-	//	}
-	//}
-
-	//报告收藏记录
+	//报告阅读记录1
 	{
-		listArticleCollect, e := models.GetCygxArticleCollectInteractionNum(condition)
+		listArticleHistoryRecord, e := models.GetCygxArticleHistoryRecordInteractionNum(condition)
 		if e != nil {
-			err = errors.New("GetCygxArticleCollectInteractionNum, Err: " + e.Error())
+			err = errors.New("GetCygxArticleHistoryRecordInteractionNum, Err: " + e.Error())
 			return
 		}
-		for _, v := range listArticleCollect {
+		for _, v := range listArticleHistoryRecord {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].ArticleHistoryNum += v.InteractionNum
 		}
+
 	}
 
-	//图表收藏记录
+	//报告收藏记录2
 	{
-		listChartCollect, e := models.GetCygxChartCollectInteractionNum(condition)
+		listArticleCollect, e := models.GetCygxArticleCollectInteractionNum(condition)
 		if e != nil {
-			err = errors.New("GetCygxChartCollectInteractionNum, Err: " + e.Error())
+			err = errors.New("GetCygxArticleCollectInteractionNum, Err: " + e.Error())
 			return
 		}
-		for _, v := range listChartCollect {
+		for _, v := range listArticleCollect {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].ArticleCountNum += v.InteractionNum
 		}
 	}
 
-	//图表收藏记录
+	//图表收藏记录3
 	{
 		listChartCollect, e := models.GetCygxChartCollectInteractionNum(condition)
 		if e != nil {
@@ -1124,10 +1144,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listChartCollect {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].ChartCountNum += v.InteractionNum
 		}
 	}
 
-	//用户关注产业数量
+	//用户关注产业数量4
 	{
 		listIndustryFllow, e := models.GetCygxIndustryFllowInteractionNum(condition)
 		if e != nil {
@@ -1136,10 +1163,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listIndustryFllow {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].IndustryFllowNum += v.InteractionNum
 		}
 	}
 
-	//用户搜索关键词数量
+	//用户搜索关键词数量5
 	{
 		listSearchKeyWord, e := models.GetCygxSearchKeyWordInteractionNum(condition)
 		if e != nil {
@@ -1148,10 +1182,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listSearchKeyWord {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].KeyWordNum += v.InteractionNum
 		}
 	}
 
-	//用户活动报名参会数量
+	//用户活动报名参会数量6
 	{
 		listActivitySignup, e := models.GetCygxActivitySignupInteractionNum(condition)
 		if e != nil {
@@ -1160,22 +1201,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listActivitySignup {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].ActivityNum += v.InteractionNum
 		}
 	}
 
-	//用户专项调研活动报名参会数量
-	{
-		listActivitySpecialSignup, e := models.GetCygxActivitySpecialSignupInteractionNum(condition)
-		if e != nil {
-			err = errors.New("GetCygxActivitySpecialSignupInteractionNum, Err: " + e.Error())
-			return
-		}
-		for _, v := range listActivitySpecialSignup {
-			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
-		}
-	}
-
-	//用户专项调研活动报名参会数量
+	//用户专项调研活动报名参会数量7
 	{
 		listActivitySpecialSignup, e := models.GetCygxActivitySpecialSignupInteractionNum(condition)
 		if e != nil {
@@ -1184,10 +1220,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listActivitySpecialSignup {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].TripNum += v.InteractionNum
 		}
 	}
 
-	//用户路演精华播放数量
+	//用户路演精华播放数量8
 	{
 		listMicroRoadshowVideoHistory, e := models.GetCygxMicroRoadshowVideoHistoryInteractionNum(condition)
 		if e != nil {
@@ -1196,10 +1239,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listMicroRoadshowVideoHistory {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].RoadshowNum += v.InteractionNum
 		}
 	}
 
-	//用户活动视频播放数量
+	//用户活动视频播放数量9
 	{
 		listActivityVideoHistory, e := models.GetCygxActivityVideoHistoryInteractionNum(condition)
 		if e != nil {
@@ -1208,10 +1258,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listActivityVideoHistory {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].ActivityVideoNum += v.InteractionNum
 		}
 	}
 
-	//用户活动音频播放数量
+	//用户活动音频播放数量10
 	{
 		listActivityVoiceHistory, e := models.GetCygxActivityVoiceHistoryInteractionNum(condition)
 		if e != nil {
@@ -1220,10 +1277,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listActivityVoiceHistory {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].ActivityVoiceNum += v.InteractionNum
 		}
 	}
 
-	//用户首页标签点击量数量
+	//用户首页标签点击量数量11
 	{
 		listTagHistory, e := models.GetCygxTagHistoryInteractionNum(condition)
 		if e != nil {
@@ -1232,10 +1296,17 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listTagHistory {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].TagNum += v.InteractionNum
 		}
 	}
 
-	//用户关注研选作者数量
+	//用户关注文章作者数量12
 	{
 		listArticleDepartmentFollow, e := models.GetCygxArticleDepartmentFollowInteractionNum(condition)
 		if e != nil {
@@ -1244,45 +1315,141 @@ func UpdateWxUserLabelNew() (err error) {
 		}
 		for _, v := range listArticleDepartmentFollow {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].DepartmentFollowNum += v.InteractionNum
 		}
 	}
 
-	//用户关注研选专栏作者数量
+	//用户收藏研选专栏数量13
+	//{
+	//	listYanxuanSpecialCollect, e := models.GetCygxYanxuanSpecialCollectInteractionNum(condition)
+	//	if e != nil {
+	//		err = errors.New("GetCygxYanxuanSpecialCollectInteractionNum, Err: " + e.Error())
+	//		return
+	//	}
+	//	for _, v := range listYanxuanSpecialCollect {
+	//		mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+	//		if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+	//			mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+	//		}
+	//
+	//		if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+	//			mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+	//		}
+	//		mapComapnyInteractionNumItem[v.CompanyId].YanxuanSpecialCollectNum += v.InteractionNum
+	//	}
+	//}
+
+	//用户关注研选专栏作者数量统计14
+	//{
+	//	listYanxuanSpecialFollow, e := models.GetCygxYanxuanSpecialFollowInteractionNum(condition)
+	//	if e != nil {
+	//		err = errors.New("GetCygxYanxuanSpecialFollowInteractionNum, Err: " + e.Error())
+	//		return
+	//	}
+	//	for _, v := range listYanxuanSpecialFollow {
+	//		mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+	//		if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+	//			mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+	//		}
+	//		if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+	//			mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+	//		}
+	//		mapComapnyInteractionNumItem[v.CompanyId].YanxuanSpecialFollowNum += v.InteractionNum
+	//	}
+	//}
+
+	//用户研选专栏阅读数量数量15
 	{
-		listYanxuanSpecialFollow, e := models.GetCygxYanxuanSpecialFollowInteractionNum(condition)
+		listYanxuanSpecialFollow, e := models.GetCygxYanxuanSpecialRecordInteractionNum(condition)
 		if e != nil {
-			err = errors.New("GetCygxYanxuanSpecialFollowInteractionNum, Err: " + e.Error())
+			err = errors.New("GetCygxYanxuanSpecialRecordInteractionNum, Err: " + e.Error())
 			return
 		}
 		for _, v := range listYanxuanSpecialFollow {
 			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+			if mapComapnyInteractionSeller[v.UserId] { //如果用户跟销售建立绑定关系,就对互动量进行累加
+				mapComapnyInteractionNumSeller[v.CompanyId] += v.InteractionNum
+			}
+
+			if mapComapnyInteractionNumItem[v.CompanyId] == nil {
+				mapComapnyInteractionNumItem[v.CompanyId] = new(models.CygxCompanyInteractionNum)
+			}
+			mapComapnyInteractionNumItem[v.CompanyId].YanxuanSpecialNum += v.InteractionNum
 		}
 	}
 
-	//用户关注研选专栏作者数量
-	{
-		listYanxuanSpecialFollow, e := models.GetCygxYanxuanSpecialFollowInteractionNum(condition)
+	mapCompanyInteraction := make(map[int]bool)
+	listCompanyInteractionNum, err := models.GetCygxCompanyInteractionNumList()
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxCompanyInteractionNumList, Err: " + e.Error())
+		return
+	}
+
+	for _, v := range listCompanyInteractionNum {
+		mapCompanyInteraction[v.CompanyId] = true
+	}
+
+	var itemsCompanyInteractionNums []*models.CompanyInteractionNumReq // 公司总的互动量结构体
+	for k, v := range mapComapnyInteractionNumItem {
+		v.CompanyId = k
+		if mapCompanyInteraction[k] {
+			comapnyInteractionNumItemUpdate = append(comapnyInteractionNumItemUpdate, v)
+		} else {
+			v.CreateTime = time.Now()
+			v.ModifyTime = time.Now()
+			comapnyInteractionNumItemAdd = append(comapnyInteractionNumItemAdd, v)
+		}
+		itemCompanyInteractionNums := new(models.CompanyInteractionNumReq)
+		itemCompanyInteractionNums.CompanyId = k
+		itemCompanyInteractionNums.InteractionNum = mapComapnyInteractionNum[v.CompanyId]
+		itemCompanyInteractionNums.InteractionNumSeller = mapComapnyInteractionNumSeller[v.CompanyId]
+		itemsCompanyInteractionNums = append(itemsCompanyInteractionNums, itemCompanyInteractionNums)
+	}
+
+	for _, v := range comapnyInteractionNumItemUpdate {
+		fmt.Println(v)
+	}
+
+	//return
+
+	//批量插入公司互动详情
+	if len(comapnyInteractionNumItemAdd) > 0 {
+		_, e = models.AddCygxCompanyInteractionNumList(comapnyInteractionNumItemAdd)
 		if e != nil {
-			err = errors.New("GetCygxYanxuanSpecialFollowInteractionNum, Err: " + e.Error())
+			err = errors.New("AddCygxCompanyInteractionNumList, Err: " + e.Error())
 			return
 		}
-		for _, v := range listYanxuanSpecialFollow {
-			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
-		}
 	}
 
-	//用户研选专栏阅读数量数量
-	{
-		listYanxuanSpecialFollow, e := models.GetCygxYanxuanSpecialRecordInteractionNum(condition)
+	// 批量修改公司互动详情
+	if len(comapnyInteractionNumItemUpdate) > 0 {
+		e = models.UpdateCygxCompanyInteractionNumMulti(comapnyInteractionNumItemUpdate)
 		if e != nil {
-			err = errors.New("GetCygxYanxuanSpecialRecordInteractionNum, Err: " + e.Error())
+			err = errors.New("UpdateCygxCompanyInteractionNumMulti, Err: " + e.Error())
 			return
 		}
-		for _, v := range listYanxuanSpecialFollow {
-			mapComapnyInteractionNum[v.CompanyId] += v.InteractionNum
+	}
+
+	// 批量修改公司互动总量
+	if len(itemsCompanyInteractionNums) > 0 {
+		e = models.UpdateCompanyInteractionNumMulti(itemsCompanyInteractionNums)
+		if e != nil {
+			err = errors.New("UpdateCompanyInteractionNumMulti, Err: " + e.Error())
+			return
 		}
 	}
 
-	fmt.Println(mapComapnyInteractionNum)
+	//CompanyInteractionNumReq
+	//fmt.Println("add", len(comapnyInteractionNumItemAdd))
+	//fmt.Println("edit", len(comapnyInteractionNumItemUpdate))
+	//fmt.Println("Update", len(itemsCompanyInteractionNums))
+
+	//fmt.Println(mapComapnyInteractionNum)
 	return
 }