فهرست منبع

最新资讯fix

ziwen 2 سال پیش
والد
کامیت
e6d113644c
3فایلهای تغییر یافته به همراه103 افزوده شده و 3 حذف شده
  1. 21 3
      controller/pc/pc.go
  2. 26 0
      models/tables/rddp/report/query.go
  3. 56 0
      services/pc/report.go

+ 21 - 3
controller/pc/pc.go

@@ -18,13 +18,31 @@ import (
 
 
 // LatestNews 研报首页最新资讯
 // LatestNews 研报首页最新资讯
 func LatestNews(c *gin.Context) {
 func LatestNews(c *gin.Context) {
-	recommendList, err := pcModels.GetLatestReportList()
+	reqChartPermissionId := c.DefaultQuery("chart_permission_id", "")
+	if reqChartPermissionId == ""{
+		response.Fail("请输入权限ID", c)
+		return
+	}
+	chartPermissionId, err := strconv.Atoi(reqChartPermissionId)
 	if err != nil {
 	if err != nil {
-		response.Fail("获取报告详情失败"+err.Error(), c)
+		response.Fail("权限ID格式错误", c)
 		return
 		return
 	}
 	}
+	userinfo := userService.GetInfoByClaims(c)
 
 
-	response.OkData("查询成功", recommendList, c)
+	list,err := pc.GetLatestReportList(userinfo, chartPermissionId)
+	if err != nil {
+		response.Fail("获取报告失败", c)
+		return
+	}
+
+	//recommendList, err := pcModels.GetLatestReportList()
+	//if err != nil {
+	//	response.Fail("获取报告详情失败"+err.Error(), c)
+	//	return
+	//}
+
+	response.OkData("查询成功", list, c)
 	return
 	return
 }
 }
 
 

+ 26 - 0
models/tables/rddp/report/query.go

@@ -311,4 +311,30 @@ WHERE
 	`
 	`
 	err = global.MYSQL["rddp"].Raw(sql, classifyIdSeconds, typeIds).Count(&total).Error
 	err = global.MYSQL["rddp"].Raw(sql, classifyIdSeconds, typeIds).Count(&total).Error
 	return
 	return
+}
+
+// GetLatestReportByPermission 根据权限相关的分类查询最新的三篇专栏报告
+func GetLatestReportByPermission(classifyIdSeconds []int) (list []*response.ReportCollectListItem, err error)  {
+	sql := `SELECT
+id AS report_id,
+0 AS report_chapter_id,
+classify_id_first,
+classify_id_second,
+classify_name_first,
+classify_name_second,
+0 as report_chapter_type_id,
+title,
+content_sub,
+publish_time 
+FROM
+	report
+WHERE
+	classify_name_first != "晨报" 
+	AND classify_name_first != "周报" 
+	AND classify_id_second in ?
+	AND state = 2
+	ORDER BY publish_time DESC, report_id desc LIMIT 3
+	`
+	err = global.MYSQL["rddp"].Raw(sql, classifyIdSeconds).Scan(&list).Error
+	return
 }
 }

+ 56 - 0
services/pc/report.go

@@ -4,10 +4,13 @@ import (
 	"errors"
 	"errors"
 	"fmt"
 	"fmt"
 	"hongze/hongze_yb/global"
 	"hongze/hongze_yb/global"
+	"hongze/hongze_yb/models/response"
 	"hongze/hongze_yb/models/response/pc"
 	"hongze/hongze_yb/models/response/pc"
+	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/chart_permission_search_key_word_mapping"
 	"hongze/hongze_yb/models/tables/chart_permission_search_key_word_mapping"
 	"hongze/hongze_yb/models/tables/rddp/classify"
 	"hongze/hongze_yb/models/tables/rddp/classify"
 	"hongze/hongze_yb/models/tables/rddp/customer_comment"
 	"hongze/hongze_yb/models/tables/rddp/customer_comment"
+	"hongze/hongze_yb/models/tables/rddp/report"
 	"hongze/hongze_yb/services/company"
 	"hongze/hongze_yb/services/company"
 	"hongze/hongze_yb/services/user"
 	"hongze/hongze_yb/services/user"
 	"hongze/hongze_yb/utils"
 	"hongze/hongze_yb/utils"
@@ -72,3 +75,56 @@ func GetClassifyDetail(user user.UserInfo, classifyIdSecond int) (detail *pc.Cla
 
 
 	return
 	return
 }
 }
+
+// GetLatestReportList 首页最新资讯
+func GetLatestReportList(user user.UserInfo, chartPermissionId int) (ret []*response.ReportCollectListItem, err error) {
+	var errMsg string
+	defer func() {
+		if err != nil {
+			global.LOG.Critical(fmt.Sprintf("GetCollectReportList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
+		}
+	}()
+
+	// 查询权限的基本信息
+	permissionInfo, err := chart_permission.GetByChartPermissionId(chartPermissionId)
+	if err != nil {
+		errMsg = err.Error()
+		err = errors.New("查询权限出错")
+		return
+	}
+
+	if permissionInfo.ChartPermissionID == 0 {
+		err = errors.New("权限不存在")
+		return
+	}
+	// 除了晨报和周报以外的其他报告
+	classifyNames, err := chart_permission_search_key_word_mapping.GetKeyWordsByChartPermissionId(chartPermissionId, "rddp")
+	if err != nil {
+		errMsg = err.Error()
+		err = errors.New("查询权限对应的分类出错")
+		return
+	}
+
+	var classifySecondIds []int
+	if len(classifyNames) > 0 {
+		classifySecondIds, err = classify.GetSecondIdsByClassifyNames(classifyNames)
+		if err != nil {
+			errMsg = err.Error()
+			err = errors.New("查询分类出错")
+			return
+		}
+	}
+
+	var reportList []*response.ReportCollectListItem
+	if len(classifySecondIds) > 0 {
+		reportList, err = report.GetLatestReportByPermission(classifySecondIds)
+		if err != nil {
+			errMsg = err.Error()
+			err = errors.New("查询报告信息出错")
+			return
+		}
+	}
+
+	ret = reportList
+	return
+}