浏览代码

产业报告分类关联作者列表接口Pc端

xingzai 3 年之前
父节点
当前提交
7ccd0b59c0
共有 2 个文件被更改,包括 83 次插入38 次删除
  1. 9 38
      controllers/report.go
  2. 74 0
      models/article_department.go

+ 9 - 38
controllers/report.go

@@ -1751,7 +1751,7 @@ func (this *ReportController) IndustryAndArticleList() {
 // @Param   ChartPermissionId   query   int  true       "分类ID"
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
-// @Success 200 {object} models.CygxArticleDepartmentList
+// @Success 200 {object} models.CygxArticleDepartmentListPc
 // @router /industryListByDepartmentPc [get]
 func (this *ReportController) IndustryListByDepartmentPc() {
 	br := new(models.BaseResponse).Init()
@@ -1768,11 +1768,11 @@ func (this *ReportController) IndustryListByDepartmentPc() {
 	uid := user.UserId
 	pageSize, _ := this.GetInt("PageSize")
 	currentIndex, _ := this.GetInt("CurrentIndex")
-	//chartPermissionId, _ := this.GetInt("ChartPermissionId")
+	chartPermissionId, _ := this.GetInt("ChartPermissionId")
 	var startSize int
 	var condition string
-	//condition = `  AND a.publish_status=1  AND m.chart_permission_id =` + strconv.Itoa(chartPermissionId)
-	condition = `  AND a.publish_status=1 `
+	condition = `  AND a.publish_status=1  AND m.chart_permission_id =` + strconv.Itoa(chartPermissionId)
+	//condition = `  AND a.publish_status=1 `
 	if pageSize <= 0 {
 		pageSize = utils.PageSize20
 	}
@@ -1782,7 +1782,7 @@ func (this *ReportController) IndustryListByDepartmentPc() {
 	startSize = paging.StartIndex(currentIndex, pageSize)
 	total, err := models.GetArticleDepartmentCount(condition)
 	page := paging.GetPaging(currentIndex, pageSize, total)
-	resp := new(models.CygxArticleDepartmentList)
+	resp := new(models.CygxArticleDepartmentListPc)
 	userType, _, err := services.GetUserType(user.CompanyId)
 	if err != nil {
 		br.Msg = "获取信息失败"
@@ -1799,53 +1799,24 @@ func (this *ReportController) IndustryListByDepartmentPc() {
 	}
 	resp.HaveResearch = true
 	//获取作者信息,并排序
-	list, err := models.GetCygxArticleDepartmentList(startSize, pageSize, condition, uid)
+	list, err := models.GetCygxArticleDepartmentListPc(startSize, pageSize, condition, uid)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
 		return
 	}
 	for k, v := range list {
-		artList, err := models.GetArticleByDepartmentId(v.DepartmentId)
+		artList, err := models.GetArticleByDepartmentIdPc(v.DepartmentId)
 		if err != nil {
 			br.Msg = "获取信息失败"
 			br.ErrMsg = "获取文章信息失败,Err:" + err.Error()
 			return
 		}
 		for k2, v2 := range artList {
-			subjectNames, err := models.GetSubjectNames(v2.ArticleId)
-			if err != nil {
-				br.Msg = "获取失败" + strconv.Itoa(v2.ArticleId)
-				br.ErrMsg = "获取失败,Err:" + err.Error()
-				return
-			}
-			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
-			}
-			subjectNamesNew = strings.TrimRight(subjectNamesNew, "/")
-			artList[k2].SubjectName = subjectNamesNew
-			artList[k2].DepartmentId = v.DepartmentId
-			if subjectNamesNew == "" {
-				artList[k2].IndustryName = industryName
-			} else {
-				artList[k2].IndustryName = industryName + "-" + subjectNamesNew
-			}
 			if artList[k2].IsReport == "1" {
-				artList[k2].IndustryName = "【观点】" + artList[k2].IndustryName
+				artList[k2].Title = "【研选观点】" + v2.Title
 			} else {
-				artList[k2].IndustryName = "【纪要】" + artList[k2].IndustryName
+				artList[k2].Title = "【研选纪要】" + v2.Title
 			}
 		}
 		list[k].List = artList

+ 74 - 0
models/article_department.go

@@ -25,6 +25,16 @@ type CygxArticleDepartmentRep struct {
 	List         []*IndustrialManagementIdName
 }
 
+type CygxArticleDepartmentRepPc struct {
+	DepartmentId int    `description:"作者ID"`
+	CreateTime   string `description:"创建时间"`
+	NickName     string `description:"昵称"`
+	ImgUrl       string `description:"头像链接"`
+	FollowNum    int    `description:"是否关注 1是 ,0 否"`
+	IsMyFollow   bool   `description:"是否关注"`
+	List         []*IndustrialManagementIdNamePc
+}
+
 type CygxArticleDepartmentId struct {
 	DepartmentId int `description:"作者ID"`
 }
@@ -36,6 +46,13 @@ type CygxArticleDepartmentList struct {
 	List         []*CygxArticleDepartmentRep
 }
 
+type CygxArticleDepartmentListPc struct {
+	HaveResearch bool               `description:"是否有研选权限"`
+	Paging       *paging.PagingItem `description:"分页数据"`
+	ListnNew     []*IndustrialManagementIdInt
+	List         []*CygxArticleDepartmentRepPc
+}
+
 //详情
 func GetArticleDepartmentDateil(nickName, remarks string) (item *CygxArticleDepartmentRep, err error) {
 	o := orm.NewOrm()
@@ -90,6 +107,27 @@ func GetCygxArticleDepartmentList(startSize, pageSize int, condition string, uid
 	return
 }
 
+//列表
+func GetCygxArticleDepartmentListPc(startSize, pageSize int, condition string, uid int) (items []*CygxArticleDepartmentRepPc, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT d.*,
+		( SELECT COUNT( 1 ) FROM cygx_article AS a INNER JOIN cygx_article_history_record as h ON h.article_id = a.article_id WHERE  a.department_id = d.department_id  AND a.publish_status = 1 ) AS art_num,
+		( SELECT COUNT( 1 ) FROM cygx_article_department_follow AS f  WHERE f.department_id = d.department_id AND f.user_id = ? AND f.type = 1 ) AS follow_num
+		FROM
+		cygx_article_department AS d
+		INNER JOIN cygx_article AS a ON a.department_id = d.department_id
+		INNER JOIN cygx_industrial_article_group_management AS mg ON mg.article_id = a.article_id
+		INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id  WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` GROUP BY
+		d.department_id
+		ORDER BY  art_num DESC  LIMIT ?,?`
+	_, err = o.Raw(sql, uid, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 //产业列表
 func GetIndustrialSubjectByDepartment(departmentId int) (items []*IndustrialManagementIdInt, err error) {
 	o := orm.NewOrm()
@@ -223,3 +261,39 @@ WHERE
 	err = o.Raw(sql, articleId).QueryRow(&Industrial)
 	return
 }
+
+type IndustrialManagementIdNamePc struct {
+	Title        string `description:"标题"`
+	PublishDate  string `description:"发布时间"`
+	DepartmentId int    `description:"作者ID"`
+	ArticleId    int    `description:"文章id"`
+	IndustryName string `description:"产业名称"`
+	SubjectName  string `description:"标的名称"`
+	IsReport     string `description:"1观点,0纪要"`
+	Pv           int    `description:"Pv"`
+}
+
+//最新标的列表
+func GetArticleByDepartmentIdPc(departmentId int) (items []*IndustrialManagementIdNamePc, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			m.industry_name,
+			(SELECT count(1) FROM cygx_article_history_record_newpv as h WHERE h.article_id = art.article_id ) as pv,
+			GROUP_CONCAT( DISTINCT s.subject_name SEPARATOR '/' ) AS subject_name,
+			art.* 
+		FROM
+			cygx_article AS art
+			LEFT JOIN cygx_industrial_article_group_management AS mg ON mg.article_id = art.article_id
+			LEFT JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id
+			LEFT JOIN cygx_industrial_article_group_subject AS sg ON sg.article_id = art.article_id
+			LEFT JOIN cygx_industrial_subject AS s ON s.industrial_subject_id = sg.industrial_subject_id 
+		WHERE
+			department_id = ? 
+			AND publish_status = 1 
+		GROUP BY
+			art.article_id 
+		ORDER BY
+			publish_date DESC`
+	_, err = o.Raw(sql, departmentId).QueryRows(&items)
+	return
+}