package controllers import ( "hongze/hongze_clpt/models" "hongze/hongze_clpt/utils" "github.com/rdlucklib/rdluck_tools/paging" "strconv" "strings" ) type HomeController struct { BaseAuthController } type BaseHomeController struct { BaseCommonController } // @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 /list [get] func (this *HomeController) List() { 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) var chartList []*models.HomeChartListResp var err error if listType == 1 { if currentIndex <= 2 { listCtagId := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} var chartIds string for _, v := range listCtagId { chartListTwo, err := models.GetChartList(`AND ctag_id = `+strconv.Itoa(v), pars, 0, 2) if err != nil { br.Msg = "获取信息失败" br.ErrMsg = "获取用户信息失败,Err:" + err.Error() return } for _, vChart := range chartListTwo { chartIds += strconv.Itoa(vChart.ChartId) + "," } } chartIds = strings.TrimRight(chartIds, ",") condition += ` AND chart_id IN (` + chartIds + `) ` 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, v := range chartList { if v.PtagName != "" { chartList[k].CtagNamePc = v.PtagName } if v.CtagName != "" { chartList[k].CtagNamePc += "," + v.CtagName } if v.PtagNameTwo != "" { chartList[k].CtagNamePc += "," + v.PtagNameTwo } if v.CtagNameTwo != "" { chartList[k].CtagNamePc += "," + v.CtagNameTwo } chartList[k].IsNeedJump = true chartList[k].Source = 2 } 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 && strings.Contains(categoryinfo.PermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) { // 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 '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )` // } else { // condition += ` AND category_name LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'` // } //} ////永续客户无法查看研选分类的内容 //if userType == 1 { // condition += ` AND category_name NOT LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'` //} //total, err = models.GetHomeCount(condition, pars) //if err != nil { // br.Msg = "获取信息失败" // br.Msg = "获取帖子总数失败,Err:" + err.Error() // return //} // //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.GetReportContentTextSubByarticle(item.Body, item.Abstract, item.ArticleId) // 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, utils.CHART_PERMISSION_NAME_YANXUAN) { // 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 // } // list[k].Source = 1 //} //resp.List = list } if chartTotal > total { total = chartTotal } page = paging.GetPaging(currentIndex, pageSize, total) resp.Paging = page br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp }