package controllers import ( "hongze/hongze_clpt/models" "hongze/hongze_clpt/services" "hongze/hongze_clpt/utils" "time" ) // 报告榜单 type ReportBillboardController struct { BaseAuthController } type ReportBillboardCommonController struct { BaseCommonController } type MobileReportBillboardController struct { BaseAuthMobileController } // @Title 阅读飙升榜/报告收藏榜 // @Description 获取阅读飙升榜/报告收藏榜接口 // @Param ChartPermissionId query int false "分类ID" // @Param PageSize query int true "每页数据条数" // @Param Source query int true "来源 1:阅读飙升 ,2:报告收藏" // @Success 200 {object} models.ReportBillboardListResp // @router /list [get] func (this *MobileReportBillboardController) ReadList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() user := this.User if user == nil { br.Msg = "请重新登录" br.Ret = 408 return } chartPermissionId, _ := this.GetInt("ChartPermissionId") pageSize, _ := this.GetInt("PageSize") source, _ := this.GetInt("Source") sourceArr := []int{1, 2} if !utils.InArrayByInt(sourceArr, source) { br.Msg = "来源有误" return } var topNum int if pageSize == 0 { topNum = utils.PageSize15 } else { topNum = pageSize } list := make([]*models.ArticleListResp, 0) // 阅读飙升榜 if source == 1 { var topCond string var topPars []interface{} if chartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN { nowTime := time.Now().Local() startTime := nowTime.AddDate(0, -1, 0) endTime := nowTime.AddDate(0, 0, -1) topCond += ` AND l.create_time BETWEEN ? AND ? AND a.article_id > ? ` topPars = append(topPars, startTime, endTime, utils.SummaryArticleId) topList, e := models.GetTopReadRecordArticleListByConditionYx(topNum, topCond, topPars) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取报告阅读增量排行榜失败, Err:" + e.Error() return } list = topList } else { if chartPermissionId > 0 { categoryId, err := models.GetCategoryId(chartPermissionId) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取信息失败" br.ErrMsg = "获取分类权限信息失败,Err:" + err.Error() return } if categoryId != "" { topCond += ` AND a.category_id IN (` + categoryId + `)` } } topList, e := models.GetTopReadRecordArticleListByCondition(topNum, topCond, topPars) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取报告阅读增量排行榜失败, Err:" + e.Error() return } list = topList } } // 报告收藏榜 if source == 2 { var collectCond string var collectPars []interface{} // 根据关注时间一个月前至昨日的增量数据排序 nowTime := time.Now().Local() startTime := nowTime.AddDate(0, -1, 0) endTime := nowTime.AddDate(0, 0, -1) collectCond += ` AND ac.create_time BETWEEN ? AND ?` collectPars = append(collectPars, startTime, endTime) if chartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN { topList, e := models.GetReportCollectionBillboardListYx(topNum, collectPars, collectCond) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取报告阅读增量排行榜失败, Err:" + e.Error() return } list = topList } else { if chartPermissionId > 0 { categoryId, err := models.GetCategoryId(chartPermissionId) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取信息失败" br.ErrMsg = "获取分类权限信息失败,Err:" + err.Error() return } if categoryId != "" { collectCond += ` AND a.category_id IN (` + categoryId + `)` } } collectList, e := models.GetReportCollectionBillboardList(topNum, collectPars, collectCond) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取报告收藏排行榜失败, Err:" + e.Error() return } list = collectList } } var err error resp := new(models.ReportBillboardListResp) resp.List, err = services.HandleArticleCategoryImg(list, user) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取报告封面图片失败, Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp }