123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- 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_classify_bg_blue.png",
- "周报": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_blue.png",
- "双周报": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_blue.png",
- "月报": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_blue.png",
- "草根调研": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_orange.png",
- "需求报告": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_green.png",
- "宏观报告": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_green.png",
- "日度点评": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_orange.png",
- "数据点评": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_green.png",
- "碳市场价格周报": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_blue.png",
- "行业调研": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_orange.png",
- "海外视角": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_orange.png",
- "百家谈": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_orange.png",
- "会议纪要": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_green.png",
- "大事点评": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_orange.png",
- "年报合集": utils.ALIYUN_YBIMG_HOST + "ficc_classify_bg_green.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
- }
|