Browse Source

研选作者,产业、标的关联处理

xingzai 3 years ago
parent
commit
6e62fe29a4
2 changed files with 73 additions and 36 deletions
  1. 38 36
      controllers/report.go
  2. 35 0
      models/article_department.go

+ 38 - 36
controllers/report.go

@@ -672,42 +672,40 @@ func (this *ReportController) IndustryListByDepartment() {
 		return
 	}
 	for k, v := range list {
-		listDepar, err := models.GetIndustrialSubjectByDepartment(v.DepartmentId)
+		artList, err := models.GetArticleByDepartmentId(v.DepartmentId)
 		if err != nil {
 			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+			br.ErrMsg = "获取文章信息失败,Err:" + err.Error()
 			return
 		}
-		var listSubject []*models.IndustrialManagementIdName
-		var listSubjects []*models.IndustrialManagementIdName
-		for _, v2 := range listDepar {
-			listSubject, err = models.GetIndustrialSubjectNewListByDepartmentId(v.DepartmentId, v2.IndustrialManagementId)
+		for k2, v2 := range artList {
+			subjectNames, err := models.GetSubjectNames(v2.ArticleId)
+
 			if err != nil {
-				br.Msg = "获取失败" + strconv.Itoa(v2.IndustrialManagementId)
+				br.Msg = "获取失败" + strconv.Itoa(v2.ArticleId)
 				br.ErrMsg = "获取失败,Err:" + err.Error()
 				return
 			}
-			if len(listSubject) > 0 {
-				for k3, v3 := range listSubject {
-					listSubject[k3].IndustryName = v2.IndustryName + "—" + v3.SubjectName
-					listSubject[k3].DepartmentId = v.DepartmentId
-					haveSubject := true
-					for _, v4 := range listSubjects {
-						if v4.SubjectName == v3.SubjectName {
-							haveSubject = false
-						}
-					}
-					//判断是否存在,如果没有那么合并
-					if len(listSubjects) < 4 && haveSubject {
-						listSubjects = append(listSubjects, listSubject[k3])
+			var subjectNamesNew string
+			if len(subjectNames) > 0 {
+				slice := strings.Split(subjectNames, "/")
+				for k3, v3 := range slice {
+					if k3 < 4 {
+						subjectNamesNew += v3 + "/"
 					}
 				}
 			}
+			industryName, err := models.GetIndustrialNames(v2.ArticleId)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取失败" + strconv.Itoa(v2.ArticleId)
+				br.ErrMsg = "获取失败,Err:" + err.Error()
+				return
+			}
+			artList[k2].SubjectName = subjectNamesNew
+			artList[k2].DepartmentId = v.DepartmentId
+			artList[k2].IndustryName = industryName + "-" + subjectNamesNew
 		}
-		list[k].List = listSubjects
-		if v.FollowNum > 0 {
-			list[k].IsMyFollow = true
-		}
+		list[k].List = artList
 	}
 	resp.ListnNew, err = models.GetIndustrialSubjectByDepartmentNew(chartPermissionId)
 	if err != nil {
@@ -883,6 +881,7 @@ func (this *ReportController) ReportList() {
 	}
 	if articleId > 0 {
 		detail, err := models.GetArticleDetailById(articleId)
+
 		if err != nil {
 			br.Msg = "获取信息失败"
 			br.ErrMsg = "获取信息失败,Err:" + err.Error()
@@ -890,7 +889,6 @@ func (this *ReportController) ReportList() {
 		}
 		condition += ` AND art.subject_ids = '` + detail.SubjectIds + `'`
 	}
-
 	total, err = models.GetWhichDepartmentCount(condition)
 	if err != nil {
 		br.Msg = "获取信息失败"
@@ -910,25 +908,29 @@ func (this *ReportController) ReportList() {
 			list[k].IsRed = true
 		}
 		list[k].IsResearch = true
-		condition := ` AND  art.article_id =  ` + strconv.Itoa(v.ArticleId)
-		listSubject, err := models.GetIndustrialSubjectNewList(condition)
+		subjectNames, err := models.GetSubjectNames(v.ArticleId)
 		if err != nil {
 			br.Msg = "获取失败" + strconv.Itoa(v.ArticleId)
 			br.ErrMsg = "获取失败,Err:" + err.Error()
 			return
 		}
-		if len(listSubject) > 0 {
-			list[k].SubjectName = ""
-			for _, v3 := range listSubject {
-				list[k].SubjectName += v3.SubjectName + "/"
+		var subjectNamesNew string
+		if len(subjectNames) > 0 {
+			slice := strings.Split(subjectNames, "/")
+			for k3, v3 := range slice {
+				if k3 < 4 {
+					subjectNamesNew += v3 + "/"
+				}
 			}
-			list[k].SubjectName = strings.TrimRight(list[k].SubjectName, "/")
 		}
-		if list[k].SubjectName != "" {
-			list[k].IndustryName += "-" + list[k].SubjectName
+		industryName, err := models.GetIndustrialNames(v.ArticleId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败" + strconv.Itoa(v.ArticleId)
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
 		}
-		resp.NickName = v.NickName
-		resp.IndustryName = v.IndustryName
+		list[k].SubjectName = subjectNamesNew
+		list[k].IndustryName = industryName + "-" + subjectNamesNew
 	}
 	resp.List = list
 	resp.Paging = page

+ 35 - 0
models/article_department.go

@@ -173,3 +173,38 @@ func GetIndustrialSubjectNewListByDepartmentId(departmentId, industrialManagemen
 	_, err = o.Raw(sql, departmentId, industrialManagementId).QueryRows(&items)
 	return
 }
+
+//最新标的列表
+func GetArticleByDepartmentId(departmentId int) (items []*IndustrialManagementIdName, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT article_id FROM cygx_article WHERE department_id = ? AND  publish_status = 1 AND subject_ids != '' GROUP  BY subject_ids  ORDER BY publish_date DESC  LIMIT 4 `
+	_, err = o.Raw(sql, departmentId).QueryRows(&items)
+	return
+}
+
+func GetSubjectNames(articleId int) (subjects string, err error) {
+	sql := ` SELECT GROUP_CONCAT( DISTINCT s.subject_name ORDER BY id ASC SEPARATOR '/' ) AS subject_name 
+				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 article_id = ?`
+	o := orm.NewOrm()
+	err = o.Raw(sql, articleId).QueryRow(&subjects)
+	return
+}
+
+func GetIndustrialNames(articleId int) (Industrial string, err error) {
+	sql := ` SELECT
+	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
+	mg.article_id = ?
+	ORDER BY  m.industrial_management_id DESC
+	LIMIT 1
+`
+	o := orm.NewOrm()
+	err = o.Raw(sql, articleId).QueryRow(&Industrial)
+	return
+}