浏览代码

no message

zhangchuanxing 2 月之前
父节点
当前提交
15d75bec70

+ 9 - 0
models/activity.go

@@ -1422,3 +1422,12 @@ func GetActivityIdListNoEnd() (items []*CygxActivity, err error) {
 	_, err = o.Raw(sql).QueryRows(&items)
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 	return
 }
 }
+
+// 获取活动详情
+func GetAddActivityDetailByActivityIdinitCrm16_5(ActivityId []int) (items []*ActivityDetail, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT a.*,t.activity_type FROM cygx_activity AS a 
+			INNER JOIN cygx_activity_type  as t ON t.activity_type_id = a.activity_type_id  WHERE activity_id IN (` + utils.GetOrmInReplace(len(ActivityId)) + `) `
+	_, err = o.Raw(sql, ActivityId).QueryRows(&items)
+	return
+}

+ 1 - 0
models/db.go

@@ -195,6 +195,7 @@ func init() {
 		new(CygxActivitySpecialPermissionPoints),
 		new(CygxActivitySpecialPermissionPoints),
 		new(time_line.CygxGushouTimeLineHistory),
 		new(time_line.CygxGushouTimeLineHistory),
 		new(WxUserRaiLabel),
 		new(WxUserRaiLabel),
+		new(WxUserRaiLabelLog),
 	)
 	)
 
 
 	initOrder()      // 订单模块
 	initOrder()      // 订单模块

+ 15 - 0
models/industrial_activity_group_management.go

@@ -2,6 +2,7 @@ package models
 
 
 import (
 import (
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_cygx/utils"
 	"time"
 	"time"
 )
 )
 
 
@@ -107,3 +108,17 @@ func GetIndustrialActivityGroupManagementListByArticleId(activityId int) (items
 	_, err = o.Raw(sql, activityId).QueryRows(&items)
 	_, err = o.Raw(sql, activityId).QueryRows(&items)
 	return
 	return
 }
 }
+
+// 列表
+func GetIndustrialActivityGroupManagementListByArticleIds(activityId []int) (items []*IndustrialActivityGroupManagementRep, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			m.industry_name,
+			am.activity_id
+			FROM cygx_industrial_activity_group_management  AS am
+			INNER JOIN  cygx_industrial_management AS m  ON m.industrial_management_id = am.industrial_management_id
+			WHERE
+			am.activity_id IN  (` + utils.GetOrmInReplace(len(activityId)) + `) AND m.source = 1 `
+	_, err = o.Raw(sql, activityId).QueryRows(&items)
+	return
+}

+ 16 - 0
models/industrial_activity_group_subject.go

@@ -2,6 +2,7 @@ package models
 
 
 import (
 import (
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_cygx/utils"
 	"time"
 	"time"
 )
 )
 
 
@@ -16,6 +17,7 @@ type CygxIndustrialActivityGroupSubject struct {
 type SubjectActivityGroupManagementRep struct {
 type SubjectActivityGroupManagementRep struct {
 	IndustrialSubjectId int    `description:"产业id"`
 	IndustrialSubjectId int    `description:"产业id"`
 	SubjectName         string `description:"标的名称"`
 	SubjectName         string `description:"标的名称"`
+	ActivityId          int    `description:"活动ID"`
 }
 }
 
 
 // GetCygxIndustrialActivityGroupSubjectList 获取列表
 // GetCygxIndustrialActivityGroupSubjectList 获取列表
@@ -46,3 +48,17 @@ func GetSubjectActivityGroupManagementListByActivityId(activityId int) (items []
 	_, err = o.Raw(sql, activityId).QueryRows(&items)
 	_, err = o.Raw(sql, activityId).QueryRows(&items)
 	return
 	return
 }
 }
+
+// 列表
+func GetSubjectActivityGroupManagementListByActivityIds(activityId []int) (items []*SubjectActivityGroupManagementRep, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			s.subject_name,ag.activity_id
+			FROM
+			    cygx_industrial_activity_group_subject  AS ag
+			INNER JOIN cygx_industrial_subject  AS s  ON s.industrial_subject_id = ag.industrial_subject_id 
+			WHERE
+			ag.activity_id  IN  (` + utils.GetOrmInReplace(len(activityId)) + `)  AND   ag.source = 1  `
+	_, err = o.Raw(sql, activityId).QueryRows(&items)
+	return
+}

+ 1 - 0
models/industrial_article_group_management.go

@@ -84,6 +84,7 @@ type IndustrialActivityGroupManagementRep struct {
 	IndustryName           string `description:"产业名称"`
 	IndustryName           string `description:"产业名称"`
 	ChartPermissionId      int    `description:"权限id"`
 	ChartPermissionId      int    `description:"权限id"`
 	PermissionName         string `description:"行业名称"`
 	PermissionName         string `description:"行业名称"`
+	ActivityId             int    `description:"活动ID"`
 }
 }
 
 
 // 列表
 // 列表

+ 12 - 0
models/industrial_management.go

@@ -927,3 +927,15 @@ func UpdateIndustrialManagementTimeLineData(industrialManagementId int, timeLine
 	_, err = o.Raw(sql, timeLineData, industrialManagementId).Exec()
 	_, err = o.Raw(sql, timeLineData, industrialManagementId).Exec()
 	return
 	return
 }
 }
+
+// GetIndustryListByCondition 获取产业列表
+func GetIndustryListByConditionByIds(industrialManagementIds []int) (list []*IndustrialManagementRep, err error) {
+	lenArr := len(industrialManagementIds)
+	if lenArr == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_industrial_management WHERE  industrial_management_id IN (` + utils.GetOrmInReplace(lenArr) + `) `
+	_, err = o.Raw(sql, industrialManagementIds).QueryRows(&list)
+	return
+}

+ 9 - 0
models/industrial_subject.go

@@ -2,6 +2,7 @@ package models
 
 
 import (
 import (
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_cygx/utils"
 )
 )
 
 
 type CygxIndustrialSubject struct {
 type CygxIndustrialSubject struct {
@@ -46,3 +47,11 @@ func GetArticleGroupSubjectList(pars []interface{}, condition string) (items []*
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 	return
 }
 }
+
+func GetIndustrialSubjectDetailByIds(industrialSubjectIds []int) (list []*CygxIndustrialSubject, err error) {
+	lenArr := len(industrialSubjectIds)
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_industrial_subject WHERE  industrial_subject_id IN (` + utils.GetOrmInReplace(lenArr) + `) `
+	_, err = o.Raw(sql, industrialSubjectIds).QueryRows(&list)
+	return
+}

+ 41 - 0
models/roadshow/rs_calendar.go

@@ -0,0 +1,41 @@
+package roadshow
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type RsCalendar struct {
+	RsCalendarId     int    `orm:"column(rs_calendar_id);pk"`
+	SysUserId        int    `description:"创建人id"`
+	SysUserRealName  string `description:"创建人名称"`
+	ActivityType     string `description:"活动类型"`
+	RoadshowType     string `description:"路演形式"`
+	RoadshowPlatform string `description:"路演平台"`
+	CompanyId        int    `description:"客户id"`
+	CompanyName      string `description:"客户名称"`
+	Province         string `description:"省"`
+	ProvinceCode     string `description:"省编码"`
+	City             string `description:"市"`
+	CityCode         string `description:"市编码"`
+	District         string `description:"区"`
+	Theme            string `description:"会议主题"`
+	CooperationName  string `description:"合作方名称"`
+	Title            string `description:"展示在日历的标题"`
+	Source           int8   `description:"来源,0:自系统,1:上海方的"`
+	CreateTime       time.Time
+	ModifyTime       time.Time
+	ActivityCategory string `description:"活动类别"`
+	IsSynced         int    `description:"是否与上海同步 0:未同步 1:已同步"`
+	UnionCode        string `description:"公开会议联合编码"`
+	EnglishCompany   int    `description:"是否为英文客户: 0-否; 1-是"`
+	SellerId         int    `description:"销售id"`
+	ShareSellerId    int    `description:"共享销售员id"`
+}
+
+func GetRsCalendarById(rsCalendarId int) (item *RsCalendar, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := `SELECT * FROM rs_calendar WHERE rs_calendar_id=? `
+	err = o.Raw(sql, rsCalendarId).QueryRow(&item)
+	return
+}

+ 33 - 0
models/roadshow/rs_calendar_meeting_label_group.go

@@ -0,0 +1,33 @@
+package roadshow
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type RsCalendarMeetingLabelGroup struct {
+	LabelId      int       `orm:"column(label_id);pk" description:"主键ID"`
+	RsCalendarId int       `description:"路演ID"`
+	CreateTime   time.Time `description:"创建时间"`
+	ModifyTime   time.Time `description:"修改时间"`
+	AdminId      int       `description:"管理员ID"`
+	AdminName    string    `description:"管理员姓名"`
+	TagType      int       `description:"标签类型,1产业,2标的,3行业权限"`
+	TagId        int       `description:"标签ID"`
+}
+
+// 获取数量
+func GetRsCalendarMeetingLabelGroupByRsCalendarId(rsCalendarId int) (count int, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sqlCount := ` SELECT COUNT(1) AS count  FROM rs_calendar_meeting_label_group WHERE   rs_calendar_id   = ?`
+	err = o.Raw(sqlCount, rsCalendarId).QueryRow(&count)
+	return
+}
+
+// 根据多个路演ID获取研信息
+func GetRsCalendarMeetingLabelGroupListByRsCalendarId(rsCalendarId int) (item []*RsCalendarMeetingLabelGroup, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := `SELECT * FROM rs_calendar_meeting_label_group WHERE rs_calendar_id  = ? `
+	_, err = o.Raw(sql, rsCalendarId).QueryRows(&item)
+	return
+}

+ 21 - 0
models/search_key_word.go

@@ -61,3 +61,24 @@ func UpdateCygxSearchKeyWord(wxUser *WxUserItem) (err error) {
 	}
 	}
 	return
 	return
 }
 }
+
+// 获取用户搜索词汇频率较高的词
+func GetSearchKeyWordinitCrm16_5() (items []*CygxSearchKeyWord, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+	mobile,
+	key_word,
+	register_platform,
+	MAX(create_time) as  create_time
+	
+FROM
+	cygx_search_key_word 
+WHERE
+	create_time > '2024-09-01' 
+	AND user_id > 0 
+GROUP BY
+	mobile,
+	key_word`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 14 - 0
models/wx_user.go

@@ -589,6 +589,20 @@ func GetWxUserListByUserIdsArr(userIds []int) (list []*WxUserItem, err error) {
 	return
 	return
 }
 }
 
 
+// GetWxUserListByUserIdsArr 根据用户ID集合获取用户
+func GetWxUserListByMobileArr(mobiles []string) (list []*WxUserItem, err error) {
+	lenArr := len(mobiles)
+	if lenArr == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := ` SELECT u.*, c.company_name FROM wx_user AS u
+			INNER JOIN company AS c ON c.company_id = u.company_id 
+			WHERE mobile IN (` + utils.GetOrmInReplace(lenArr) + `)  `
+	_, err = o.Raw(sql, mobiles).QueryRows(&list)
+	return
+}
+
 // GetWxUserByMobiles 根据用户手机号获取用户详情
 // GetWxUserByMobiles 根据用户手机号获取用户详情
 func GetWxUserByMobiles(mobiles []string) (items []*WxUser, err error) {
 func GetWxUserByMobiles(mobiles []string) (items []*WxUser, err error) {
 	lenmobiles := len(mobiles)
 	lenmobiles := len(mobiles)

+ 94 - 0
models/wx_user_rai_label.go

@@ -36,6 +36,26 @@ type WxUserRaiLabel struct {
 	TableName        string    `description:"数据来源的表名"`
 	TableName        string    `description:"数据来源的表名"`
 }
 }
 
 
+// 标签记录表,所有内容都不删除
+type WxUserRaiLabelLog struct {
+	RaiLabelId       int       `orm:"column(rai_label_id);pk"`
+	UserId           int       `description:"用户ID"`
+	RealName         string    `description:"用户实际名称"`
+	Mobile           string    `description:"手机号"`
+	Email            string    `description:"邮箱"`
+	CompanyId        int       `description:"公司id"`
+	CompanyName      string    `description:"公司名称"`
+	Label            string    `description:"标签内容"`
+	SourceId         int       `description:"来源ID"`
+	SourceType       int       `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
+	SysUserId        int       `description:"创建人id"`
+	SysUserRealName  string    `description:"创建人名称"`
+	CreateTime       time.Time `description:"创建时间"`
+	ModifyTime       time.Time `description:"更新时间"`
+	RegisterPlatform int       `description:"来源 1小程序,2:网页"`
+	TableName        string    `description:"数据来源的表名"`
+}
+
 // 添加
 // 添加
 func AddWxUserRaiLabel(item *WxUserRaiLabel) (err error) {
 func AddWxUserRaiLabel(item *WxUserRaiLabel) (err error) {
 	o, err := orm.NewOrm().Begin()
 	o, err := orm.NewOrm().Begin()
@@ -59,6 +79,28 @@ func AddWxUserRaiLabel(item *WxUserRaiLabel) (err error) {
 	}
 	}
 
 
 	_, err = o.Insert(item)
 	_, err = o.Insert(item)
+
+	if err != nil {
+		return
+	}
+
+	itemLog := new(WxUserRaiLabelLog)
+	itemLog.UserId = item.UserId
+	itemLog.RealName = item.RealName
+	itemLog.Mobile = item.Mobile
+	itemLog.Email = item.Email
+	itemLog.CompanyId = item.CompanyId
+	itemLog.CompanyName = item.CompanyName
+	itemLog.Label = item.Label
+	itemLog.SourceId = item.SourceId
+	itemLog.SourceType = item.SourceType
+	itemLog.SysUserId = item.SysUserId
+	itemLog.SysUserRealName = item.SysUserRealName
+	itemLog.CreateTime = item.CreateTime
+	itemLog.ModifyTime = item.ModifyTime
+	itemLog.RegisterPlatform = item.RegisterPlatform
+	itemLog.TableName = item.TableName
+	_, err = o.Insert(itemLog)
 	return
 	return
 }
 }
 
 
@@ -76,6 +118,27 @@ func AddWxUserRaiLabelMulti(items []*WxUserRaiLabel, label []string, userId int)
 		}
 		}
 	}()
 	}()
 
 
+	var itemLogs []*WxUserRaiLabelLog
+	for _, item := range items {
+		itemLog := new(WxUserRaiLabelLog)
+		itemLog.UserId = item.UserId
+		itemLog.RealName = item.RealName
+		itemLog.Mobile = item.Mobile
+		itemLog.Email = item.Email
+		itemLog.CompanyId = item.CompanyId
+		itemLog.CompanyName = item.CompanyName
+		itemLog.Label = item.Label
+		itemLog.SourceId = item.SourceId
+		itemLog.SourceType = item.SourceType
+		itemLog.SysUserId = item.SysUserId
+		itemLog.SysUserRealName = item.SysUserRealName
+		itemLog.CreateTime = item.CreateTime
+		itemLog.ModifyTime = item.ModifyTime
+		itemLog.RegisterPlatform = item.RegisterPlatform
+		itemLog.TableName = item.TableName
+		itemLogs = append(itemLogs, itemLog)
+	}
+
 	if len(label) > 0 {
 	if len(label) > 0 {
 		//删除老的数据信息
 		//删除老的数据信息
 		sql := ` DELETE FROM wx_user_rai_label WHERE user_id = ? AND  label IN ('` + strings.Join(label, "','") + `')  `
 		sql := ` DELETE FROM wx_user_rai_label WHERE user_id = ? AND  label IN ('` + strings.Join(label, "','") + `')  `
@@ -85,6 +148,37 @@ func AddWxUserRaiLabelMulti(items []*WxUserRaiLabel, label []string, userId int)
 		}
 		}
 	}
 	}
 
 
+	//批量插入新的关联数据
+	if len(items) > 0 {
+		//批量添加流水信息
+		_, err = o.InsertMulti(len(items), items)
+		if err != nil {
+			return
+		}
+
+		_, err = o.InsertMulti(len(itemLogs), itemLogs)
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}
+
+// 批量插入(脚本)
+func AddWxUserRaiLabelLogMultiInit(items []*WxUserRaiLabelLog) (err error) {
+	o, err := orm.NewOrm().Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+
 	//批量插入新的关联数据
 	//批量插入新的关联数据
 	if len(items) > 0 {
 	if len(items) > 0 {
 		//批量添加流水信息
 		//批量添加流水信息

+ 317 - 35
services/wx_user_rai_label.go

@@ -5,6 +5,7 @@ import (
 	"errors"
 	"errors"
 	"fmt"
 	"fmt"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/models/roadshow"
 	"hongze/hongze_cygx/utils"
 	"hongze/hongze_cygx/utils"
 	"strconv"
 	"strconv"
 	"time"
 	"time"
@@ -171,10 +172,10 @@ func KeyWordsWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err e
 	return
 	return
 }
 }
 
 
-func init() {
-	log := models.WxUserRaiLabelRedis{UserId: 53840, SourceId: 1753, SourceType: 3, TableName: "", Label: "", CreateTime: time.Now(), RegisterPlatform: utils.REGISTER_PLATFORM}
-	ActivityWxUserRaiLabelRedisAddReduce(log)
-}
+//func init() {
+//	log := models.WxUserRaiLabelRedis{UserId: 53840, SourceId: 1753, SourceType: 3, TableName: "", Label: "", CreateTime: time.Now(), RegisterPlatform: utils.REGISTER_PLATFORM}
+//	RoadshowWxUserRaiLabelRedisAddReduce(log)
+//}
 
 
 // 2:产业/个股标签(线下活动)、 4:产业/个股标签(线上活动)
 // 2:产业/个股标签(线下活动)、 4:产业/个股标签(线上活动)
 // 用户参加活动,相关标签
 // 用户参加活动,相关标签
@@ -305,46 +306,100 @@ func RoadshowWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err e
 		err = errors.New("GetWxUserItemByUserId" + e.Error())
 		err = errors.New("GetWxUserItemByUserId" + e.Error())
 		return
 		return
 	}
 	}
-	activityDetail, e := models.GetAddActivityDetailByActivityId(sourceId)
+
+	rsCalendar, e := roadshow.GetRsCalendarById(sourceId)
 	if e != nil {
 	if e != nil {
-		err = errors.New("GetArticleDetailTestById" + e.Error())
+		err = errors.New("GetRsCalendarById" + e.Error())
 		return
 		return
 	}
 	}
 
 
 	var sourceType int
 	var sourceType int
-	if activityDetail.ActivityType == 1 {
-		sourceType = 4
+	if rsCalendar.RoadshowType == "线下" {
+		sourceType = 3
 	} else {
 	} else {
-		sourceType = 2
+		sourceType = 5
 	}
 	}
 
 
-	//正常的有产业报告
-	var labelArr []string
-	//建立首页资源表,与产业的关系
-	industrialList, e := models.GetIndustrialActivityGroupManagementListByArticleId(sourceId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetIndustrialArticleGroupManagementListByArticleId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
+	totalGroup, e := roadshow.GetRsCalendarMeetingLabelGroupByRsCalendarId(sourceId)
+	if e != nil {
+		err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
 		return
 		return
 	}
 	}
-
+	//var lebelDetail []*cygx.RaiServeTagResp
+	var label string
+	var labelArr []string
 	var items []*models.WxUserRaiLabel
 	var items []*models.WxUserRaiLabel
-	for _, v := range industrialList {
-		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 = v.IndustryName
-		item.SourceType = sourceType
-		item.SourceId = sourceId
-		item.CreateTime = log.CreateTime
-		item.ModifyTime = time.Now()
-		item.RegisterPlatform = log.RegisterPlatform
-		item.TableName = ""
-		items = append(items, item)
-		labelArr = append(labelArr, v.IndustryName)
+	if totalGroup > 0 {
+		listGroup, e := roadshow.GetRsCalendarMeetingLabelGroupListByRsCalendarId(sourceId)
+		if e != nil {
+			err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
+			return
+		}
+		var industrialManagementIds []int
+		var industrialSubjectIds []int
+
+		mapindustrialManagementName := make(map[int]string)
+		mapindustrialSubjectName := make(map[int]string)
+		mapCelueName := make(map[int]string)
+		for _, v := range listGroup {
+			switch v.TagType {
+			case 1:
+				industrialManagementIds = append(industrialManagementIds, v.TagId)
+			case 2:
+				industrialSubjectIds = append(industrialSubjectIds, v.TagId)
+			case 3:
+				mapCelueName[v.TagId] = "策略"
+			}
+		}
+
+		if len(industrialManagementIds) > 0 {
+			IndustryList, e := models.GetIndustryListByConditionByIds(industrialManagementIds)
+			if e != nil {
+				err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
+				return
+			}
+			for _, v := range IndustryList {
+				mapindustrialManagementName[v.IndustrialManagementId] = v.IndustryName
+			}
+		}
+
+		if len(industrialSubjectIds) > 0 {
+			SubjectList, e := models.GetIndustrialSubjectDetailByIds(industrialSubjectIds)
+			if e != nil {
+				err = errors.New("GetIndustrialSubjectDetailByIds" + e.Error())
+				return
+			}
+			for _, v := range SubjectList {
+				mapindustrialSubjectName[v.IndustrialSubjectId] = v.SubjectName
+			}
+		}
+
+		for _, v := range listGroup {
+			switch v.TagType {
+			case 1:
+				label = mapindustrialManagementName[v.TagId]
+			case 2:
+				label = mapindustrialSubjectName[v.TagId]
+			case 3:
+				label = mapCelueName[v.TagId]
+			}
+			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 = sourceType
+			item.SourceId = sourceId
+			item.CreateTime = log.CreateTime
+			item.ModifyTime = time.Now()
+			item.RegisterPlatform = log.RegisterPlatform
+			item.TableName = ""
+			items = append(items, item)
+			labelArr = append(labelArr, label)
+		}
 	}
 	}
 
 
 	e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
 	e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
@@ -352,7 +407,6 @@ func RoadshowWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err e
 		err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
 		err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
 		return
 		return
 	}
 	}
-
 	return
 	return
 }
 }
 
 
@@ -540,6 +594,234 @@ func ReportSelectionWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis)
 		err = errors.New("AddWxUserRaiLabel" + e.Error())
 		err = errors.New("AddWxUserRaiLabel" + e.Error())
 		return
 		return
 	}
 	}
-
 	return
 	return
 }
 }
+
+//func init() {
+//	initCrm16_5Activity()
+//}
+
+func initCrm16_5keyWord() {
+
+	listKeyWords, err := models.GetSearchKeyWordinitCrm16_5()
+
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	var mobiles []string
+	mapMobile := make(map[string]bool)
+	for _, v := range listKeyWords {
+		if mapMobile[v.Mobile] || v.Mobile == "" {
+			continue
+		}
+		mapMobile[v.Mobile] = true
+		mobiles = append(mobiles, v.Mobile)
+	}
+
+	listUser, err := models.GetWxUserListByMobileArr(mobiles)
+
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	mapUser := make(map[string]*models.WxUserItem)
+
+	for _, v := range listUser {
+		mapUser[v.Mobile] = v
+	}
+
+	var items []*models.WxUserRaiLabelLog
+	for _, v := range listKeyWords {
+		if mapUser[v.Mobile] == nil || v.Mobile == "" {
+			continue
+		}
+
+		wxUser := mapUser[v.Mobile]
+		item := new(models.WxUserRaiLabelLog)
+		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 = v.KeyWord
+		item.SourceType = 1
+		item.CreateTime = v.CreateTime
+		item.ModifyTime = time.Now()
+		item.RegisterPlatform = v.RegisterPlatform
+		items = append(items, item)
+	}
+	fmt.Println(len(items))
+
+	var itemsAdd []*models.WxUserRaiLabelLog
+	if len(items) > 0 {
+		for _, v := range items {
+			itemsAdd = append(itemsAdd, v)
+			if len(items)%2000 == 0 {
+				err = models.AddWxUserRaiLabelLogMultiInit(items)
+				if err != nil {
+					return
+				}
+				itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
+			}
+
+		}
+	}
+	if len(itemsAdd) > 0 {
+		err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
+		if err != nil {
+			return
+		}
+	}
+	fmt.Println("endAddWxUserRaiLabelLogMultiInit")
+}
+
+func initCrm16_5Activity() {
+	var condition string
+	var pars []interface{}
+	condition += ` AND	create_time > '2024-09-01'   AND  (is_meeting =1 OR duration != '')  `
+	pars = append(pars)
+	//获取提交到会的人员信息
+	signUpDetailList, err := models.GetSignupDetailList(condition, pars)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	var mobiles []string
+
+	mapMobile := make(map[string]bool)
+
+	for _, v := range signUpDetailList {
+		if mapMobile[v.Mobile] || v.Mobile == "" {
+			continue
+		}
+		mapMobile[v.Mobile] = true
+		mobiles = append(mobiles, v.Mobile)
+	}
+
+	var activityIds []int
+	mapactivityId := make(map[int]bool)
+	for _, v := range signUpDetailList {
+		if mapactivityId[v.ActivityId] {
+			continue
+		}
+		mapactivityId[v.ActivityId] = true
+		activityIds = append(activityIds, v.ActivityId)
+	}
+
+	listUser, err := models.GetWxUserListByMobileArr(mobiles)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	mapUser := make(map[string]*models.WxUserItem)
+	for _, v := range listUser {
+		mapUser[v.Mobile] = v
+	}
+
+	activityDetailList, e := models.GetAddActivityDetailByActivityIdinitCrm16_5(activityIds)
+	if e != nil {
+		fmt.Println(e)
+		return
+	}
+
+	sourceTypemap := make(map[int]int)
+
+	for _, v := range activityDetailList {
+		if v.ActivityType == 1 {
+			sourceTypemap[v.ActivityId] = 4
+		} else {
+			sourceTypemap[v.ActivityId] = 2
+		}
+	}
+
+	//正常的有产业报告
+
+	//建立首页资源表,与产业的关系
+	industrialList, e := models.GetIndustrialActivityGroupManagementListByArticleIds(activityIds)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		fmt.Println(e)
+		return
+	}
+
+	//建立首页资源表,与标的 的关系
+	subjectList, e := models.GetSubjectActivityGroupManagementListByActivityIds(activityIds)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		fmt.Println(e)
+		return
+	}
+
+	var items []*models.WxUserRaiLabelLog
+	for _, v := range signUpDetailList {
+		if mapUser[v.Mobile] == nil || v.Mobile == "" {
+			continue
+		}
+		wxUser := mapUser[v.Mobile]
+		for _, vI := range industrialList {
+			if vI.ActivityId != v.ActivityId {
+				continue
+			}
+			item := new(models.WxUserRaiLabelLog)
+			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 = vI.IndustryName
+			item.SourceType = sourceTypemap[v.ActivityId]
+			item.SourceId = v.ActivityId
+			item.CreateTime = v.CreateTime
+			item.ModifyTime = time.Now()
+			item.TableName = ""
+			//item.RegisterPlatform = v.RegisterPlatform
+			items = append(items, item)
+		}
+
+		for _, vs := range subjectList {
+			if vs.ActivityId != v.ActivityId {
+				continue
+			}
+			item := new(models.WxUserRaiLabelLog)
+			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 = vs.SubjectName
+			item.SourceType = sourceTypemap[v.ActivityId]
+			item.SourceId = v.ActivityId
+			item.CreateTime = v.CreateTime
+			item.ModifyTime = time.Now()
+			//item.RegisterPlatform = v.RegisterPlatform
+			items = append(items, item)
+		}
+
+	}
+	fmt.Println(len(items))
+
+	var itemsAdd []*models.WxUserRaiLabelLog
+	if len(items) > 0 {
+		for _, v := range items {
+			itemsAdd = append(itemsAdd, v)
+			if len(items)%2000 == 0 {
+				err = models.AddWxUserRaiLabelLogMultiInit(items)
+				if err != nil {
+					return
+				}
+				itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
+			}
+
+		}
+	}
+	if len(itemsAdd) > 0 {
+		err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
+		if err != nil {
+			return
+		}
+	}
+	fmt.Println("endAddWxUserRaiLabelLogMultiInit")
+}