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 }