|
@@ -313,3 +313,208 @@ func (this *BaseHomeController) ListHomePublic() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// @Title 首页列表接口v6版本
|
|
|
+// @Description 首页列表接口v6版本
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Param ChartPermissionId query int true "品类id,最新传0"
|
|
|
+// @Param CtagId query int true "图表子类ID"
|
|
|
+// @Param ListType query int true "列表类型,1最新,2 纪要 ,3图表 默认1"
|
|
|
+// @Success 200 {object} models.HomeArtAndChartListResp
|
|
|
+// @router /artAndChart/list [get]
|
|
|
+func (this *HomeController) ListHomeArtAndChart() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ user := this.User
|
|
|
+ if user == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,用户信息为空"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
+ ctagId, _ := this.GetInt("CtagId")
|
|
|
+ listType, _ := this.GetInt("ListType")
|
|
|
+
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ if listType <= 0 {
|
|
|
+ listType = 1
|
|
|
+ }
|
|
|
+ startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ var total, chartTotal int
|
|
|
+ resp := new(models.HomeArtAndChartListResp)
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+ resp.HaveResearch = true
|
|
|
+ var chartList []*models.HomeChartListResp
|
|
|
+ var err error
|
|
|
+ if listType == 1 {
|
|
|
+ if currentIndex <= 2 {
|
|
|
+ chartList, err = models.GetChartList(condition, pars, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if listType == 3 {
|
|
|
+ if chartPermissionId > 0 {
|
|
|
+ condition += ` AND a.ptag_id>=? `
|
|
|
+ pars = append(pars, chartPermissionId)
|
|
|
+ }
|
|
|
+ if ctagId > 0 {
|
|
|
+ condition += ` AND a.ctag_id>=? `
|
|
|
+ pars = append(pars, ctagId)
|
|
|
+ }
|
|
|
+ chartList, err = models.GetChartList(condition, pars, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ chartTotal, err = models.GetChartCount(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.Msg = "获取帖子总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for k, _ := range chartList {
|
|
|
+ chartList[k].IsNeedJump = true
|
|
|
+ }
|
|
|
+ resp.ChartList = chartList
|
|
|
+
|
|
|
+ if listType != 3 {
|
|
|
+ userType, _, err := services.GetUserType(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ condition = ` AND is_summary = 1 `
|
|
|
+ if chartPermissionId > 0 {
|
|
|
+ categoryId, err := models.GetCategoryId(chartPermissionId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取分类权限信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if userType == 1 && categoryinfo.PermissionName == "研选" {
|
|
|
+ resp.HaveResearch = false
|
|
|
+ resp.Paging = page
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+ return
|
|
|
+ }
|
|
|
+ page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+ if categoryId != "" {
|
|
|
+ condition += ` AND category_id IN(` + categoryId + `)`
|
|
|
+ condition += ` OR ( category_name LIKE '%` + categoryinfo.PermissionName + `%' AND publish_status = 1 AND is_summary = 1 )`
|
|
|
+ } else {
|
|
|
+ condition += ` AND category_name LIKE '%` + categoryinfo.PermissionName + `%'`
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //永续客户无法查看研选分类的内容
|
|
|
+ if userType == 1 {
|
|
|
+ condition += ` AND category_name NOT LIKE '%研选` + `%'`
|
|
|
+ }
|
|
|
+ total, err = models.GetHomeCount(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.Msg = "获取帖子总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if chartTotal > total {
|
|
|
+ total = chartTotal
|
|
|
+ }
|
|
|
+ page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+ list, err := models.GetHomeList(condition, pars, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.Msg = "获取帖子数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //研选的五张图片
|
|
|
+ detailResearch, err := models.GetConfigByCode("category_research_img_url")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取数据研选分类图片失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ researchList := strings.Split(detailResearch.ConfigValue, "{|}")
|
|
|
+ //对应分类的所图片
|
|
|
+ detailCategoryUrl, err := models.GetConfigByCode("category_map_img_url")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ categoryUrlList := strings.Split(detailCategoryUrl.ConfigValue, "{|}")
|
|
|
+ mapCategoryUrl := make(map[string]string)
|
|
|
+ var categoryId string
|
|
|
+ var imgUrlChart string
|
|
|
+ for _, v := range categoryUrlList {
|
|
|
+ vslice := strings.Split(v, "_")
|
|
|
+ categoryId = vslice[0]
|
|
|
+ imgUrlChart = vslice[len(vslice)-1]
|
|
|
+ mapCategoryUrl[categoryId] = imgUrlChart
|
|
|
+ }
|
|
|
+
|
|
|
+ for k, v := range list {
|
|
|
+ item := list[k]
|
|
|
+ //如果文章一开始的内容是图片,优先展示第一张图片
|
|
|
+ imgurl, _ := services.FixArticleImgUrl(html.UnescapeString(list[k].Body))
|
|
|
+ newBody, _ := services.GetReportContentTextSub(item.Body)
|
|
|
+ list[k].Body = newBody
|
|
|
+ if imgurl != "" {
|
|
|
+ list[k].BodyHtml = imgurl
|
|
|
+ }
|
|
|
+ list[k].PublishDate = utils.StrTimeToTime(item.PublishDate).Format(utils.FormatDateTimeNoSecond) //时间字符串格式转时间格式
|
|
|
+ if strings.Contains(item.CategoryName, "研选") {
|
|
|
+ list[k].IsResearch = true
|
|
|
+ }
|
|
|
+ if item.Pv > 999 {
|
|
|
+ list[k].Pv = 999
|
|
|
+ }
|
|
|
+ //如果是研选系列的任意取五张图片的中的一张
|
|
|
+ if v.CategoryId == "0" {
|
|
|
+ knum := v.ArticleId % 5
|
|
|
+ list[k].ImgUrlPc = researchList[knum]
|
|
|
+ } else {
|
|
|
+ list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
|
|
|
+ }
|
|
|
+ if list[k].ArticleId < utils.SummaryArticleId {
|
|
|
+ list[k].HttpUrl = utils.StrategyPlatform + strconv.Itoa(v.ArticleId)
|
|
|
+ list[k].IsNeedJump = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.List = list
|
|
|
+ }
|
|
|
+ resp.Paging = page
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|