xingzai vor 1 Jahr
Ursprung
Commit
954d6b1bd7

+ 98 - 148
controllers/cygx/user.go

@@ -467,6 +467,7 @@ func (this *UserController) List() {
 					list[k].RoadshowVideoNum = vsplit.RoadshowVideoNum
 					list[k].ActivityVideoNum = vsplit.ActivityVideoNum
 					list[k].ActivityVoiceNum = vsplit.ActivityVoiceNum
+					list[k].YanxuanspecialNum = vsplit.YanxuanspecialNum
 				}
 			}
 			if mapUserRemarks[int(v.UserId)] != "" {
@@ -475,7 +476,7 @@ func (this *UserController) List() {
 			list[k].IsRemind = UserRemindListMap[int(v.UserId)]
 		}
 		for k := range list {
-			list[k].InteractionNum = list[k].HistoryNum + list[k].CountNum + list[k].IndustryFllowNum + list[k].DepartmentFollowNum + list[k].KeyWordNum + list[k].OnLineNum + list[k].OfficeNum + list[k].ChartNum + list[k].TripNum + list[k].RoadshowVideoNum + list[k].ActivityVideoNum + list[k].ActivityVoiceNum
+			list[k].InteractionNum = list[k].HistoryNum + list[k].CountNum + list[k].IndustryFllowNum + list[k].DepartmentFollowNum + list[k].KeyWordNum + list[k].OnLineNum + list[k].OfficeNum + list[k].ChartNum + list[k].TripNum + list[k].RoadshowVideoNum + list[k].ActivityVideoNum + list[k].ActivityVoiceNum + list[k].YanxuanspecialNum
 		}
 	} else {
 		list = make([]*cygx.CygxCompanyUser, 0)
@@ -1901,15 +1902,22 @@ func (this *UserController) CompanyTableList() {
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
 	}
-
-	condition := ` AND r.company_id  IN  (   ` + strconv.Itoa(companyId) + `  ) AND r.create_time < date_format(now(),'%Y-%m-%d') ` //过滤当天时间
-	totalEs, _, err := services.SearcCygxArticleHistoryData(utils.IndexNameArticleHistory, "", "", "", strconv.Itoa(companyId), 0, 0)
+	var pars []interface{}
+	condition := ` AND r.company_id  IN  (   ` + strconv.Itoa(companyId) + `  ) AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' ` //过滤当天时间
+	//totalEs, _, err := services.SearcCygxArticleHistoryData(utils.IndexNameArticleHistory, "", "", "", strconv.Itoa(companyId), 0, 0)
+	//if err != nil {
+	//	br.Msg = "获取信息失败"
+	//	br.ErrMsg = "获取Es文章阅读数量失败,Err:" + err.Error()
+	//	return
+	//}
+	historyNum, err := cygx.GetCygxArticleAndYanxuanRecordCount(condition, pars)
 	if err != nil {
 		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取Es文章阅读数量失败,Err:" + err.Error()
+		br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
 		return
 	}
-	historyNum := int(totalEs)
+
+	//historyNum := int(totalEs)
 	//historyNum, err := cygx.GetCygxArticleHistoryCountByCompany(condition)
 	//获取参会总数
 	activityNum, err := cygx.GetActivityMeetByCompanyCount(condition)
@@ -2049,6 +2057,7 @@ func (this *UserController) CompanyTableDetail() {
 	var list []*cygx.UserInteraction
 	var total int
 	var condition string
+	var pars []interface{}
 	condition += ` AND r.company_id  =   ` + strconv.Itoa(companyId) + ` AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' `
 	if keyWord != "" {
 		//condition += ` AND r.mobile IN (SELECT mobile FROM wx_user WHERE mobile LIKE '%` + keyWord + `%' OR email LIKE '%` + keyWord + `%' OR real_name LIKE '%` + keyWord + `%')`
@@ -2066,21 +2075,21 @@ func (this *UserController) CompanyTableDetail() {
 			condition += ` AND r.create_time <= '` + endDate + `' `
 		}
 		//fmt.Println("es 搜索")
-		totalEs, esList, err := services.SearcCygxArticleHistoryData(utils.IndexNameArticleHistory, keyWord, startDate, endDate, strconv.Itoa(companyId), startSize, pageSize)
-		var articleIds string
-		if len(esList) > 0 {
-			articleIdMap := make(map[int]int)
-			for _, v := range esList {
-				if _, ok := articleIdMap[v.Id]; !ok {
-					articleIds += strconv.Itoa(v.Id) + ","
-					articleIdMap[v.Id] = v.Id
-				}
-			}
-		}
-		articleIds = strings.TrimRight(articleIds, ",")
-		if articleIds != "" {
-			condition = ` AND r.id IN (` + articleIds + `) `
-		}
+		//totalEs, esList, err := services.SearcCygxArticleHistoryData(utils.IndexNameArticleHistory, keyWord, startDate, endDate, strconv.Itoa(companyId), startSize, pageSize)
+		//var articleIds string
+		//if len(esList) > 0 {
+		//	articleIdMap := make(map[int]int)
+		//	for _, v := range esList {
+		//		if _, ok := articleIdMap[v.Id]; !ok {
+		//			articleIds += strconv.Itoa(v.Id) + ","
+		//			articleIdMap[v.Id] = v.Id
+		//		}
+		//	}
+		//}
+		//articleIds = strings.TrimRight(articleIds, ",")
+		//if articleIds != "" {
+		//	condition = ` AND r.id IN (` + articleIds + `) `
+		//}
 		//condition += ` AND r.create_time < date_format(now(),'%Y-%m-%d') ` //过滤当天时间
 		//total, err = cygx.GetCygxArticleHistoryCountByCompany(condition)
 		//if err != nil {
@@ -2088,54 +2097,66 @@ func (this *UserController) CompanyTableDetail() {
 		//	br.ErrMsg = "获取用户阅读记录总数失败,Err:" + err.Error()
 		//	return
 		//}
-		total = int(totalEs)
-		list, err = cygx.GetCygxArticleHistoryRecordByCompany(condition, 0, 0)
+		//total = int(totalEs)
+		condition += "  ORDER BY r.create_time DESC "
+		listRecord, err := cygx.GetCygxArticleAndYanxuanRecordRespList(condition, pars, startSize, pageSize)
 		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "获取信息失败"
 			br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
 			return
 		}
-
-		if len(list) > 0 {
-			articleIds = ""
-			mapAricleId := make(map[int]int)
-			mapAricleIndustrialSubjectName := make(map[int]*cygx.ArticleIndustrialSubjectNameResp)
-			for k, v := range list {
-				if v.ArticleId >= utils.SummaryArticleId {
-					list[k].ArticleType = 1
-				} else {
-					list[k].ArticleType = 2
-				}
-				if list[k].PermissionName == "" {
-					list[k].PermissionName = v.CategoryName
-				}
-				if mapAricleId[v.ArticleId] == 0 {
-					articleIds += strconv.Itoa(v.ArticleId) + ","
-					mapAricleId[v.ArticleId] = v.ArticleId
-				}
-				list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
-			}
-			articleIds = strings.TrimRight(articleIds, ",")
-			if articleIds != "" {
-				listArticleIndustrialSubjectList, err := cygx.GetCygxArticleIndustrialSubjectName(articleIds)
-				if err != nil && err.Error() != utils.ErrNoRow() {
-					br.Msg = "获取信息失败"
-					br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
-					return
-				}
-				if len(listArticleIndustrialSubjectList) > 0 {
-					for _, v := range listArticleIndustrialSubjectList {
-						mapAricleIndustrialSubjectName[v.ArticleId] = v
-					}
-					for k, v := range list {
-						if mapAricleIndustrialSubjectName[v.ArticleId] != nil {
-							list[k].IndustryName = mapAricleIndustrialSubjectName[v.ArticleId].IndustryName
-							list[k].SubjectNameStr = mapAricleIndustrialSubjectName[v.ArticleId].SubjectNameStr
-						}
-					}
-				}
-			}
+		total, err = cygx.GetCygxArticleAndYanxuanRecordCount(condition, pars)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
+			return
 		}
+		//处理查询信息回显
+		list, err = cygxService.HandleArticleAndYanxuanRecordList(listRecord)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
+			return
+		}
+		//if len(listRecord) > 0 {
+		//	mapAricleId := make(map[int]int)
+		//	mapAricleIndustrialSubjectName := make(map[int]*cygx.ArticleIndustrialSubjectNameResp)
+		//	for k, v := range list {
+		//		if v.ArticleId >= utils.SummaryArticleId {
+		//			list[k].ArticleType = 1
+		//		} else {
+		//			list[k].ArticleType = 2
+		//		}
+		//		if list[k].PermissionName == "" {
+		//			list[k].PermissionName = v.CategoryName
+		//		}
+		//		if mapAricleId[v.ArticleId] == 0 {
+		//			articleIds += strconv.Itoa(v.ArticleId) + ","
+		//			mapAricleId[v.ArticleId] = v.ArticleId
+		//		}
+		//		list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
+		//	}
+		//	articleIds = strings.TrimRight(articleIds, ",")
+		//	if articleIds != "" {
+		//		listArticleIndustrialSubjectList, err := cygx.GetCygxArticleIndustrialSubjectName(articleIds)
+		//		if err != nil && err.Error() != utils.ErrNoRow() {
+		//			br.Msg = "获取信息失败"
+		//			br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
+		//			return
+		//		}
+		//		if len(listArticleIndustrialSubjectList) > 0 {
+		//			for _, v := range listArticleIndustrialSubjectList {
+		//				mapAricleIndustrialSubjectName[v.ArticleId] = v
+		//			}
+		//			for k, v := range list {
+		//				if mapAricleIndustrialSubjectName[v.ArticleId] != nil {
+		//					list[k].IndustryName = mapAricleIndustrialSubjectName[v.ArticleId].IndustryName
+		//					list[k].SubjectNameStr = mapAricleIndustrialSubjectName[v.ArticleId].SubjectNameStr
+		//				}
+		//			}
+		//		}
+		//	}
+		//}
 	} else if source == 2 {
 
 		if isMeeting == "1" {
@@ -3001,7 +3022,7 @@ func (this *UserController) CompanyList() {
 		br.ErrMsg = "获取公司ID数据失败,Err:" + err.Error()
 		return
 	}
-	condition = ` AND r.company_id  IN  (   ` + companyIds + `  )AND r.create_time < date_format(now(),'%Y-%m-%d') ` //过滤当天时间
+	condition = ` AND r.company_id  IN  (   ` + companyIds + `  ) AND r.create_time < '` + time.Now().Format(utils.FormatDate) + `' ` // 过滤当天查询时间
 	if keyWord != "" {
 		condition += ` AND  (r.mobile LIKE '%` + keyWord + `%' OR r.email LIKE '%` + keyWord + `%' OR r.real_name LIKE '%` + keyWord + `%'` + ` OR r.company_name LIKE '%` + keyWord + `%') `
 	}
@@ -3015,98 +3036,27 @@ func (this *UserController) CompanyList() {
 			endDate += " 23:59:59"
 			condition += ` AND r.create_time <= '` + endDate + `' `
 		}
-
-		//机构阅读数量太大,先存下来,后面优化
-		detailConfig, err := cygx.GetCygxConfigDetailByCode("company_article_history_num")
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		var pars []interface{}
+		condition += "  ORDER BY r.create_time DESC "
+		listRecord, err := cygx.GetCygxArticleAndYanxuanRecordRespList(condition, pars, startSize, pageSize)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
 			return
 		}
-
-		total, _ = strconv.Atoi(detailConfig.ConfigValue)
-		//total, err = cygx.GetCygxArticleHistoryCountByCompany(condition)
-		//if err != nil {
-		//	br.Msg = "获取信息失败"
-		//	br.ErrMsg = "获取用户阅读记录总数失败,Err:" + err.Error()
-		//	return
-		//}
-
-		//fmt.Println("es 搜索")
-		totalEs, esList, err := services.SearcCygxArticleHistoryData(utils.IndexNameArticleHistory, keyWord, startDate, endDate, companyIds, startSize, pageSize)
-		if keyWord+startDate+endDate != "" {
-			total = int(totalEs)
-		}
-		var articleIds string
-		if len(esList) > 0 {
-			articleIdMap := make(map[int]int)
-			for _, v := range esList {
-				if _, ok := articleIdMap[v.Id]; !ok {
-					articleIds += strconv.Itoa(v.Id) + ","
-					articleIdMap[v.Id] = v.Id
-				}
-
-			}
-		}
-		articleIds = strings.TrimRight(articleIds, ",")
-		if articleIds != "" {
-			condition = ` AND r.id IN (` + articleIds + `) `
-		} else {
-			condition = ` AND r.id  = 0  `
+		total, err = cygx.GetCygxArticleAndYanxuanRecordCount(condition, pars)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取用户阅读记录数量失败,Err:" + err.Error()
+			return
 		}
-		//fmt.Println(articleIds)
-		//return
-		list, err = cygx.GetCygxArticleHistoryRecordByCompanyList(condition, 0, pageSize)
+		//处理查询信息回显
+		list, err = cygxService.HandleArticleAndYanxuanRecordList(listRecord)
 		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "获取信息失败"
 			br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
 			return
 		}
-		if len(list) > 0 {
-			var articleIds string
-			mapAricleId := make(map[int]int)
-			mapAricleIndustrialSubjectName := make(map[int]*cygx.ArticleIndustrialSubjectNameResp)
-			var sellerCompanyIds []int
-			for k, v := range list {
-				if v.ArticleId >= utils.SummaryArticleId {
-					list[k].ArticleType = 1
-				} else {
-					list[k].ArticleType = 2
-				}
-				if list[k].PermissionName == "" {
-					list[k].PermissionName = v.CategoryName
-				}
-				if mapAricleId[v.ArticleId] == 0 {
-					articleIds += strconv.Itoa(v.ArticleId) + ","
-					mapAricleId[v.ArticleId] = v.ArticleId
-				}
-				list[k].RegisterPlatform = cygxService.GetArticleSourcePlatform(v.SourcePlatform)
-				sellerCompanyIds = append(sellerCompanyIds, v.CompanyId)
-			}
-
-			sellNameMap := services.GetSellNameMapByCompanyIds(sellerCompanyIds)
-			articleIds = strings.TrimRight(articleIds, ",")
-			if articleIds != "" {
-				listArticleIndustrialSubjectList, err := cygx.GetCygxArticleIndustrialSubjectName(articleIds)
-				if err != nil && err.Error() != utils.ErrNoRow() {
-					br.Msg = "获取信息失败"
-					br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
-					return
-				}
-				if len(listArticleIndustrialSubjectList) > 0 {
-					for _, v := range listArticleIndustrialSubjectList {
-						mapAricleIndustrialSubjectName[v.ArticleId] = v
-					}
-					for k, v := range list {
-						if mapAricleIndustrialSubjectName[v.ArticleId] != nil {
-							list[k].IndustryName = mapAricleIndustrialSubjectName[v.ArticleId].IndustryName
-							list[k].SubjectNameStr = mapAricleIndustrialSubjectName[v.ArticleId].SubjectNameStr
-						}
-						list[k].SellerName = sellNameMap[v.CompanyId]
-					}
-				}
-			}
-		}
 	} else if source == 2 {
 
 		if isMeeting == "1" {

+ 45 - 0
models/cygx/article_and_yanxuan_record.go

@@ -0,0 +1,45 @@
+package cygx
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+)
+
+type CygxArticleAndYanxuanRecordResp struct {
+	Id               int    `orm:"column(id);pk"`
+	SourceId         int    `description:"资源ID"`
+	Source           string `description:"资源I类型  文章、研选专栏"`
+	UserId           int    `description:"用户ID"`
+	CreateTime       string `description:"创建时间"`
+	Mobile           string `description:"手机号"`
+	Email            string `description:"邮箱"`
+	CompanyId        int    `description:"公司id"`
+	CompanyName      string `description:"公司名称"`
+	ModifyTime       string `description:"修改时间"`
+	RealName         string `description:"用户实际名称"`
+	SellerName       string `description:"所属销售"`
+	StopTime         int    `description:"停留时间"`
+	RegisterPlatform int    `description:"来源 1小程序,2:网页"`
+}
+
+// 获取数量
+func GetCygxArticleAndYanxuanRecordCount(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_article_and_yanxuan_record as r WHERE 1= 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}
+
+// 列表
+func GetCygxArticleAndYanxuanRecordRespList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxArticleAndYanxuanRecordResp, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_article_and_yanxuan_record as r WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?  `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 2 - 16
models/cygx/cygx_user.go

@@ -40,6 +40,7 @@ type CygxCompanyUser struct {
 	RoadshowVideoNum      int    `description:"产业视频播放量"`
 	ActivityVideoNum      int    `description:"活动视频播放量"`
 	ActivityVoiceNum      int    `description:"活动音频播放量"`
+	YanxuanspecialNum     int    `description:"研选专栏查看数量"`
 	PackageType           int    `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
 	TryStage              int    `description:"试用客户子标签:0全部、1未分类、2 推进、3 跟踪、4 预备"`
 	Content               string `description:"备注信息"`
@@ -198,22 +199,7 @@ func GetCygxCompanyUserListSplit(userIds string) (items []*CygxCompanyUser, err
 			( 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 ',' ) 
-			FROM
-				cygx_industrial_management AS man 
-			WHERE
-				man.industrial_management_id IN ( SELECT industrial_management_id FROM cygx_industry_fllow AS f WHERE f.user_id = u.user_id  AND f.type = 1 ) 
-			) AS labels,
-			(
-			SELECT
-				GROUP_CONCAT( DISTINCT man.label SEPARATOR ',' ) 
-			FROM
-				cygx_activity AS man 
-			WHERE
-				man.activity_id IN ( SELECT activity_id FROM cygx_activity_signup AS f WHERE f.user_id = u.user_id  AND label != '') 
-			) AS activity_label
+			( SELECT COUNT( 1 ) FROM cygx_yanxuan_special_record AS h  INNER JOIN cygx_yanxuan_special as v ON v.id = h.yanxuan_special_id WHERE  h.mobile = u.mobile  ) AS yanxuanspecial_num
 		FROM
 			cygx_user_label AS u WHERE  u.user_id IN (` + userIds + `)  AND u.mobile != ''	GROUP BY u.user_id  `
 	_, err = o.Raw(sql).QueryRows(&items)

+ 14 - 0
models/cygx/cygx_yanxuan_special.go

@@ -93,6 +93,20 @@ JOIN cygx_yanxuan_special_author AS b ON a.user_id = b.user_id
 	return
 }
 
+func GetYanxuanSpecialListByCondition(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxYanxuanSpeciaResplItem, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := ``
+	sql = `SELECT a.*
+FROM cygx_yanxuan_special AS a
+ WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 type EnableCygxYanxuanSpecialReq struct {
 	Id     int    // 文章id
 	Status int    // 1通过2驳回

+ 17 - 0
models/cygx/industrial_article_group_management.go

@@ -2,6 +2,7 @@ package cygx
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 	"strconv"
 	"time"
 )
@@ -128,6 +129,22 @@ func GetIndustrialArticleGroupListByarticleIds(articleIds string) (items []*Indu
 	return
 }
 
+// 根据文章ID数组获取关联的产业列表
+func GetIndustrialArticleGroupListByarticleIdsArr(articleIds []int) (items []*IndustrialArticleGroupResp, err error) {
+	lenArr := len(articleIds)
+	if lenArr == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT  mg.*,m.industry_name  FROM
+	        cygx_industrial_article_group_management AS mg
+			INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id 
+			WHERE 1 = 1 
+			AND mg.article_id IN  (` + utils.GetOrmInReplace(lenArr) + `)  GROUP BY  mg.article_id,mg.industrial_management_id`
+	_, err = o.Raw(sql, articleIds).QueryRows(&items)
+	return
+}
+
 // 用户收藏榜start
 type IndustrialManagementHotResp struct {
 	IndustrialManagementId int                      `orm:"column(industrial_management_id);pk" description:"产业id"`

+ 22 - 0
models/cygx/industrial_article_group_subject.go

@@ -2,6 +2,7 @@ package cygx
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 	"time"
 )
 
@@ -81,3 +82,24 @@ func GetSubjectArticleGroupListByarticleIds(articleIds string) (items []*Subject
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+// 列表
+func GetSubjectArticleGroupListByarticleIdsArr(articleIds []int) (items []*SubjectlArticleGroupResp, err error) {
+	lenArr := len(articleIds)
+	if lenArr == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT
+			sg.*,
+			s.subject_name,
+			s.industrial_management_id 
+		FROM
+			cygx_industrial_article_group_subject AS sg
+			INNER JOIN cygx_industrial_subject AS s ON s.industrial_subject_id = sg.industrial_subject_id 
+		WHERE
+			1 = 1 
+			AND sg.article_id IN  (` + utils.GetOrmInReplace(lenArr) + `)    GROUP BY sg.article_id,sg.industrial_subject_id`
+	_, err = o.Raw(sql, articleIds).QueryRows(&items)
+	return
+}

+ 140 - 0
services/cygx/article.go

@@ -92,6 +92,146 @@ func GetArticleSourcePlatform(SourcePlatform string) (sourcePlatformResp int) {
 	return
 }
 
+//func init() {
+//	GetArticleSubjectLabelByArticleId([]int{9551, 9082})
+//}
+
+// 根据文章ID获取文章关联的产业名称
+func GetArticleIndustrialLabelByArticleId(articleIds []int) (respMap map[int][]string) {
+	var err error
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("根据文章ID获取文章关联的产业名称失败 GetArticleIndustrialLabelByArticleId rticleIds: ", articleIds, err.Error()), 2)
+		}
+	}()
+	list, e := cygx.GetIndustrialArticleGroupListByarticleIdsArr(articleIds)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetIndustrialArticleGroupListByarticleIdsArr, Err: " + e.Error())
+		return
+	}
+	respMap = make(map[int][]string, 0)
+	for _, v := range list {
+		respMap[v.ArticleId] = append(respMap[v.ArticleId], v.IndustryName)
+	}
+	return
+}
+
+// 根据文章ID获取文章关联的标的名称
+func GetArticleSubjectLabelByArticleId(articleIds []int) (respMap map[int][]string) {
+	var err error
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("根据文章ID获取文章关联的产业名称 失败 GetArticleSubjectLabelByArticleId rticleIds: ", articleIds, err.Error()), 2)
+		}
+	}()
+
+	list, e := cygx.GetSubjectArticleGroupListByarticleIdsArr(articleIds)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetIndustrialArticleGroupListByarticleIdsArr, Err: " + e.Error())
+		return
+	}
+	respMap = make(map[int][]string, 0)
+	for _, v := range list {
+		respMap[v.ArticleId] = append(respMap[v.ArticleId], v.SubjectName)
+	}
+	return
+}
+
+// 处理文章、研选专栏的查询信息回显
+func HandleArticleAndYanxuanRecordList(items []*cygx.CygxArticleAndYanxuanRecordResp) (itemsResp []*cygx.UserInteraction, err error) {
+	itemsResp = make([]*cygx.UserInteraction, 0)
+	if len(items) > 0 {
+
+		var articleIds []int        // 文章ID
+		var yanxuanSpecialIds []int // 研选专栏ID
+		for _, v := range items {
+			if v.Source == utils.CYGX_OBJ_ARTICLE {
+				articleIds = append(articleIds, v.SourceId)
+			}
+			if v.Source == utils.CYGX_OBJ_YANXUANSPECIAL {
+				yanxuanSpecialIds = append(yanxuanSpecialIds, v.SourceId)
+			}
+		}
+		mapIndustrialLabel := GetArticleIndustrialLabelByArticleId(articleIds) // 关联产业
+		mapSubjectLabel := GetArticleSubjectLabelByArticleId(articleIds)       // 关联标的
+		var condition string
+		var pars []interface{}
+
+		//获取文章map
+		mapArticle := make(map[int]*cygx.CygxReportArticle)
+		lenarticleIds := len(articleIds)
+		if lenarticleIds > 0 {
+			condition = " AND art.article_id IN  (" + utils.GetOrmInReplace(lenarticleIds) + ")"
+			pars = append(pars, articleIds)
+			list, e := cygx.GetReportArticleList(condition, pars, 0, lenarticleIds, 1)
+			if e != nil && e.Error() != utils.ErrNoRow() {
+				err = e
+				return
+			}
+
+			if len(list) > 0 {
+				for _, v := range list {
+					mapArticle[v.ArticleId] = v
+				}
+			}
+		}
+
+		//获取研选专栏map
+		mapYanxuanSpecial := make(map[int]*cygx.CygxYanxuanSpeciaResplItem)
+		lenyanxuanSpecialIds := len(yanxuanSpecialIds)
+		if lenyanxuanSpecialIds > 0 {
+			pars = make([]interface{}, 0)
+			condition = " AND a.id IN  (" + utils.GetOrmInReplace(lenyanxuanSpecialIds) + ")"
+			pars = append(pars, yanxuanSpecialIds)
+			list, e := cygx.GetYanxuanSpecialListByCondition(condition, pars, 0, lenyanxuanSpecialIds)
+			if e != nil && e.Error() != utils.ErrNoRow() {
+				err = e
+				return
+			}
+			if len(list) > 0 {
+				for _, v := range list {
+					mapYanxuanSpecial[v.Id] = v
+				}
+			}
+		}
+
+		for _, v := range items {
+			item := new(cygx.UserInteraction)
+			if v.Source == utils.CYGX_OBJ_ARTICLE {
+				item.IndustryName = strings.Join(mapIndustrialLabel[v.SourceId], ",")
+				item.SubjectNameStr = strings.Join(mapSubjectLabel[v.SourceId], ",")
+				if v.SourceId >= utils.SummaryArticleId {
+					item.ArticleType = 1
+				} else {
+					item.ArticleType = 2
+				}
+				//如果对应的map不为空,就赋值
+				if mapArticle[v.SourceId] != nil {
+					item.Title = mapArticle[v.SourceId].Title
+					item.PublishDate = mapArticle[v.SourceId].PublishDate
+					item.PermissionName = mapArticle[v.SourceId].PermissionName
+					item.ArticleIdMd5 = mapArticle[v.SourceId].ArticleIdMd5
+				}
+			}
+			if v.Source == utils.CYGX_OBJ_YANXUANSPECIAL {
+				item.PermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
+				//如果对应的map不为空,就赋值
+				if mapYanxuanSpecial[v.SourceId] != nil {
+					item.Title = mapYanxuanSpecial[v.SourceId].Title
+					item.PublishDate = mapYanxuanSpecial[v.SourceId].PublishTime
+					item.SpecialType = mapYanxuanSpecial[v.SourceId].Type
+				}
+			}
+			item.ArticleId = v.SourceId
+			item.CreateTime = v.CreateTime
+			item.RegisterPlatform = v.RegisterPlatform
+			itemsResp = append(itemsResp, item)
+		}
+
+	}
+	return
+}
+
 //
 //func init() {
 //	SendWxMsgWithroadshowEssence(1000546)