|
@@ -0,0 +1,131 @@
|
|
|
+package pc
|
|
|
+
|
|
|
+import (
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_yb/global"
|
|
|
+ "hongze/hongze_yb/models/response/pc"
|
|
|
+ "hongze/hongze_yb/models/tables/rddp/classify"
|
|
|
+ "hongze/hongze_yb/services/user"
|
|
|
+ "hongze/hongze_yb/utils"
|
|
|
+ "sort"
|
|
|
+)
|
|
|
+
|
|
|
+// GetClassifyFirstList 获取一级分类列表
|
|
|
+func GetClassifyFirstList(user user.UserInfo) (list pc.ClassifyFirstList, err error) {
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetClassifyFirstList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ classifyParents, err := classify.GetParentList()
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("分类查询出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(classifyParents) == 0 {
|
|
|
+ err = errors.New("分类不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 当前版本一级分类固定
|
|
|
+ classifyIconMap := map[string]string{
|
|
|
+ "晨报": utils.ALIYUN_YBIMG_HOST + "ficc_icon_day_128.png",
|
|
|
+ "周报": utils.ALIYUN_YBIMG_HOST + "ficc_icon_week_128.png",
|
|
|
+ "双周报": utils.ALIYUN_YBIMG_HOST + "ficc_icon_two_week_128.png",
|
|
|
+ "月报": utils.ALIYUN_YBIMG_HOST + "ficc_icon_month_128.png",
|
|
|
+ "草根调研": utils.ALIYUN_YBIMG_HOST + "ficc_icon_grassroots_128.png",
|
|
|
+ "需求报告": utils.ALIYUN_YBIMG_HOST + "ficc_icon_need_report_128.png",
|
|
|
+ "宏观报告": utils.ALIYUN_YBIMG_HOST + "ficc_icon_hongguan_128.png",
|
|
|
+ "日度点评": utils.ALIYUN_YBIMG_HOST + "ficc_icon_daily_comment_128.png",
|
|
|
+ "数据点评": utils.ALIYUN_YBIMG_HOST + "ficc_icon_data_128.png",
|
|
|
+ "碳市场价格周报": utils.ALIYUN_YBIMG_HOST + "ficc_icon_rcarbon_128.png",
|
|
|
+ "行业调研": utils.ALIYUN_YBIMG_HOST + "ficc_icon_research_128.png",
|
|
|
+ "海外视角": utils.ALIYUN_YBIMG_HOST + "ficc_icon_overseas_128.png",
|
|
|
+ "百家谈": utils.ALIYUN_YBIMG_HOST + "ficc_icon_family_128.png",
|
|
|
+ "会议纪要": utils.ALIYUN_YBIMG_HOST + "ficc_icon_meeting_128.png",
|
|
|
+ "大事点评": utils.ALIYUN_YBIMG_HOST + "ficc_icon_big_thing_128.png",
|
|
|
+ "年报合集": utils.ALIYUN_YBIMG_HOST + "ficc_icon_year_collect_128.png",
|
|
|
+ }
|
|
|
+
|
|
|
+ classifySortMap := map[string]int{
|
|
|
+ "晨报": 1,
|
|
|
+ "周报": 2,
|
|
|
+ "双周报": 3,
|
|
|
+ "月报": 4,
|
|
|
+ "草根调研": 5,
|
|
|
+ "需求报告": 6,
|
|
|
+ "宏观报告": 7,
|
|
|
+ "日度点评": 8,
|
|
|
+ "数据点评": 9,
|
|
|
+ "碳市场价格周报": 10,
|
|
|
+ "行业调研": 11,
|
|
|
+ "海外视角": 12,
|
|
|
+ "百家谈": 13,
|
|
|
+ "会议纪要": 14,
|
|
|
+ "大事点评": 15,
|
|
|
+ "年报合集": 16,
|
|
|
+ }
|
|
|
+ names := []string{
|
|
|
+ "晨报",
|
|
|
+ "周报",
|
|
|
+ "双周报",
|
|
|
+ "月报",
|
|
|
+ "草根调研",
|
|
|
+ "需求报告",
|
|
|
+ "宏观报告",
|
|
|
+ "日度点评",
|
|
|
+ "数据点评",
|
|
|
+ "碳市场价格周报",
|
|
|
+ "行业调研",
|
|
|
+ "海外视角",
|
|
|
+ "百家谈",
|
|
|
+ "会议纪要",
|
|
|
+ "大事点评",
|
|
|
+ "年报合集",
|
|
|
+ }
|
|
|
+ reportList,err := pc.GetLatestStage(names)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("报告查询出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, item := range classifyParents {
|
|
|
+ temp := new(pc.ClassifyFirstListItem)
|
|
|
+ temp.ClassifyIdFirst = item.Id
|
|
|
+ temp.ClassifyNameFirst = item.ClassifyName
|
|
|
+ temp.BackImgUrl = classifyIconMap[item.ClassifyName]
|
|
|
+ temp.Sort = classifySortMap[item.ClassifyName]
|
|
|
+ if temp.Sort == 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ // ShowType展示类型:1-列表 2-专栏; RedirectType跳转类型:1-专栏列表 2-报告列表 3-专栏详情
|
|
|
+ temp.RedirectType = 2
|
|
|
+ if item.ShowType == 2 {
|
|
|
+ temp.RedirectType = 1
|
|
|
+ classifyChild, _ := classify.GetChildByPid(item.Id)
|
|
|
+ if classifyChild != nil && len(classifyChild) == 1 {
|
|
|
+ // 存在二级分类且仅有一个时直接跳转专栏详情
|
|
|
+ temp.ClassifyIdSecond = classifyChild[0].Id
|
|
|
+ temp.ClassifyNameSecond = classifyChild[0].ClassifyName
|
|
|
+ temp.RedirectType = 3
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list = append(list, temp)
|
|
|
+ }
|
|
|
+ for _, item := range list {
|
|
|
+ for _, report := range reportList {
|
|
|
+ if report.ClassifyNameFirst == item.ClassifyNameFirst {
|
|
|
+ item.Latest = report.Stage
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(list) > 0 {
|
|
|
+ sort.Sort(list)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|