Browse Source

Merge branch 'cygx_13.8.1' of http://8.136.199.33:3000/cxzhang/hongze_clpt

xingzai 2 months ago
parent
commit
bb22eeb202
3 changed files with 92 additions and 3 deletions
  1. 14 2
      controllers/report.go
  2. 2 1
      models/article.go
  3. 76 0
      services/industrial_subject.go

+ 14 - 2
controllers/report.go

@@ -1334,12 +1334,17 @@ func (this *MobileReportController) Timeline() {
 	}
 	//处理晨会精华关联的标的,以及要跳转的文章ID
 	var meetingreviewchaptIds []int
-	mapchaptIdAndArticleId := make(map[int]int)                            // 晨会精华ID与跳转文章ID的映射关系
-	mapchaptIdListSubject := make(map[int][]*models.CygxIndustrialSubject) // 晨会精华ID与标的列表的映射关系
+	var articleIds []int
+	mapchaptIdAndArticleId := make(map[int]int)                              // 晨会精华ID与跳转文章ID的映射关系
+	mapchaptIdListSubject := make(map[int][]*models.CygxIndustrialSubject)   // 晨会精华ID与标的列表的映射关系
+	mapArticleIdListSubject := make(map[int][]*models.CygxIndustrialSubject) // 报告ID与标的列表的映射关系
 	for _, v := range list {
 		if v.Resource == 3 {
 			meetingreviewchaptIds = append(meetingreviewchaptIds, v.Id)
 		}
+		if v.Resource == 1 {
+			articleIds = append(articleIds, v.ArticleId)
+		}
 	}
 	if len(meetingreviewchaptIds) > 0 {
 		listMeet, err := services.GetCygxMorningMeetingReviewChapterListByIds(meetingreviewchaptIds)
@@ -1353,6 +1358,10 @@ func (this *MobileReportController) Timeline() {
 		}
 	}
 
+	if len(articleIds) > 0 {
+		mapArticleIdListSubject = services.GetArticleGroupSubjectMapByIndustrialManagementId(articleIds, industrialManagementId)
+	}
+
 	//查询用户今天是否看过时间线
 	//count, err := models.GetTimeLineRecordCount(user.UserId, industrialManagementId)
 	//if err != nil {
@@ -1391,6 +1400,9 @@ func (this *MobileReportController) Timeline() {
 			v.LinkArticleId = mapchaptIdAndArticleId[v.Id]
 			v.ListSubject = mapchaptIdListSubject[v.Id]
 		}
+		if v.Resource == 1 {
+			v.ListSubject = mapArticleIdListSubject[v.Id]
+		}
 	}
 
 	//添加我的日程访问记录

+ 2 - 1
models/article.go

@@ -81,6 +81,7 @@ type ArticleDetail struct {
 	IsApplyAppointmentExpert bool            `description:"是否属于专家访谈"`
 	ShareImg                 string          `description:"分享图片"`
 	ChartPermissionName      string          `description:"行业名称"`
+	Stock                    string          `description:"个股标签"`
 }
 
 type CygxArticleIdReq struct {
@@ -258,7 +259,7 @@ type CygxArticleEs struct {
 // 获取文章列表
 func GetArticleList(condition string, pars []interface{}) (items []*ArticleDetail, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT	article_id FROM cygx_article  WHERE 1= 1 ` + condition
+	sql := `SELECT	article_id,stock FROM cygx_article  WHERE 1= 1 ` + condition
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }

+ 76 - 0
services/industrial_subject.go

@@ -2,8 +2,10 @@ package services
 
 import (
 	"errors"
+	"fmt"
 	"hongze/hongze_clpt/models"
 	"hongze/hongze_clpt/utils"
+	"strings"
 )
 
 // GetArticleGroupSubjectMap 获取文章所关联的标的
@@ -40,3 +42,77 @@ func GetArticleGroupSubjectMap(articleIds []int) (mapResp map[int][]*models.Indu
 	subjectMap = subMap
 	return
 }
+
+// GetArticleGroupSubjectMapByIndustrialManagementId 通过文章ID,产业;获取文章所关联的标的
+func GetArticleGroupSubjectMapByIndustrialManagementId(articleIds []int, industrialManagementId int) (mapResp map[int][]*models.CygxIndustrialSubject) {
+	var err error
+	lenArticleIds := len(articleIds)
+	if lenArticleIds == 0 {
+		return
+	}
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("通过文章ID,产业;获取文章所关联的标的失败 ,GetArticleGroupSubjectMapByIndustrialManagementId err"+err.Error(), "articleIds:", articleIds), 2)
+		}
+	}()
+
+	mapSubject := make(map[string]int)
+	listSub, e := models.GetcygxIndustrialSubject(industrialManagementId)
+	if e != nil {
+		err = errors.New("GetcygxIndustrialSubject, Err: " + e.Error())
+		return
+	}
+	for _, v := range listSub {
+		mapSubject[v.SubjectName] = v.IndustrialSubjectId
+	}
+
+	var condition string
+	var pars []interface{}
+	condition += ` AND  article_id IN (` + utils.GetOrmInReplace(len(articleIds)) + `) `
+	pars = append(pars, articleIds)
+	articleList, e := models.GetArticleList(condition, pars)
+	if e != nil {
+		err = errors.New("GetArticleList, Err: " + e.Error())
+		return
+	}
+
+	listMap := make(map[int][]*models.CygxIndustrialSubject, 0)
+	for _, v := range articleList {
+		sliceSubjects := strings.Split(v.Stock, "/")
+		for _, vSubject := range sliceSubjects {
+			sliceKuohao := strings.Split(vSubject, "(")           //过滤括号
+			sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
+			subject := sliceXiahuaxian[0]
+			if mapSubject[subject] == 0 {
+				continue
+			}
+			item := models.CygxIndustrialSubject{
+				IndustrialSubjectId:    mapSubject[subject],
+				IndustrialManagementId: industrialManagementId,
+				SubjectName:            subject,
+			}
+			listMap[v.ArticleId] = append(listMap[v.ArticleId], &item)
+		}
+	}
+
+	//condition = ` AND g.article_id IN (` + utils.GetOrmInReplace(len(articleIds)) + `)  AND s.industrial_management_id = ? `
+	//pars = append(pars, articleIds, industrialManagementId)
+	//list, e := models.GetArticleGroupSubjectList(pars, condition)
+	//if e != nil {
+	//	err = errors.New("GetArticleGroupSubjectList " + e.Error())
+	//	return
+	//}
+	//
+	//if len(list) > 0 {
+	//	for _, v := range list {
+	//		item := models.CygxIndustrialSubject{
+	//			IndustrialSubjectId:    v.IndustrialSubjectId,
+	//			IndustrialManagementId: v.IndustrialManagementId,
+	//			SubjectName:            v.SubjectName,
+	//		}
+	//		listMap[v.ArticleId] = append(listMap[v.ArticleId], &item)
+	//	}
+	//}
+	mapResp = listMap
+	return
+}