|
@@ -1,8 +1,13 @@
|
|
|
package controllers
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
+ "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"hongze/hongze_clpt/models"
|
|
|
+ "hongze/hongze_clpt/services"
|
|
|
"hongze/hongze_clpt/utils"
|
|
|
+ "strconv"
|
|
|
+ "strings"
|
|
|
)
|
|
|
|
|
|
//报告
|
|
@@ -14,12 +19,16 @@ type ReportCommonController struct {
|
|
|
BaseCommonController
|
|
|
}
|
|
|
|
|
|
+type MobileReportController struct {
|
|
|
+ BaseAuthMobileController
|
|
|
+}
|
|
|
+
|
|
|
// @Title 行业报告分类列表接口
|
|
|
// @Description 获取行业报告分类列表接口
|
|
|
// @Param ChartPermissionId query int true "分类ID"
|
|
|
// @Success 200 {object} models.IndustrialManagementList
|
|
|
-// @router /home/tradeList [get]
|
|
|
-func (this *ReportController) TradeList() {
|
|
|
+// @router /tradeList [get]
|
|
|
+func (this *MobileReportController) TradeList() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -37,12 +46,25 @@ func (this *ReportController) TradeList() {
|
|
|
br.Msg = "请输入分类ID"
|
|
|
return
|
|
|
}
|
|
|
- list, err := models.GetTradeAll(ChartPermissionId)
|
|
|
+ //var result []*models.SearchItem
|
|
|
+ var list []*models.TradeReportMapping
|
|
|
+ var err error
|
|
|
+ if ChartPermissionId == utils.CE_LUE_ID {
|
|
|
+ listTrade, errTrade := models.GetReportMappingStrategyHomeAll()
|
|
|
+ list = listTrade
|
|
|
+ err = errTrade
|
|
|
+ } else {
|
|
|
+ listTrade, errTrade := models.GetTradeAll(ChartPermissionId)
|
|
|
+ err = errTrade
|
|
|
+ list = listTrade
|
|
|
+ }
|
|
|
+
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
for k, v := range list {
|
|
|
list[k].UpdateTime = utils.TimeRemoveHms(v.UpdateTime)
|
|
|
count, err := models.CheckThisCategoryNewArticleIsRead(uid, v.CategoryId)
|
|
@@ -54,6 +76,18 @@ func (this *ReportController) TradeList() {
|
|
|
if count == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.UpdateTime)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.UpdateTime)) {
|
|
|
list[k].IsRed = true
|
|
|
}
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition = " AND a.category_id_two = " + strconv.Itoa(v.CategoryId)
|
|
|
+ if ChartPermissionId != utils.CE_LUE_ID {
|
|
|
+ listArticle, err := models.GetHomeList(condition, pars, 0, 6)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.Msg = "GetHomeList,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list[k].ListArticle = listArticle
|
|
|
+ }
|
|
|
}
|
|
|
resp := new(models.TradeReportMappingResp)
|
|
|
resp.List = list
|
|
@@ -62,3 +96,301 @@ func (this *ReportController) TradeList() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// @Title 产业报告分类列表接口
|
|
|
+// @Description 获取产业报告分类列表接口
|
|
|
+// @Param ChartPermissionId query int true "分类ID"
|
|
|
+// @Param IsNewLabel query string false "是否属于新标签,1是,0否"
|
|
|
+// @Param IsDeepLabel query string false "是否属于深标签,1是,0否"
|
|
|
+// @Param OrderColumn query int false "排序字段 ,NewTime 最近更新 ,Recommend弘则推荐"
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Success 200 {object} models.IndustrialManagementList
|
|
|
+// @router /industryList [get]
|
|
|
+func (this *MobileReportController) IndustryList() {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ uid := user.UserId
|
|
|
+ ChartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
+ orderColumn := this.GetString("OrderColumn")
|
|
|
+ orderColumnNew := this.GetString("OrderColumn")
|
|
|
+ isNewLabel := this.GetString("IsNewLabel")
|
|
|
+ isDeepLabel := this.GetString("IsDeepLabel")
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ var orderSrt string
|
|
|
+ var condition string
|
|
|
+ var startSize int
|
|
|
+ resp := new(models.IndustrialManagementList)
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+
|
|
|
+ startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
+ if isNewLabel == "1" {
|
|
|
+ condition += ` AND is_new_label = ` + isNewLabel
|
|
|
+ }
|
|
|
+ if isDeepLabel == "1" {
|
|
|
+ condition += ` AND is_deep_label = ` + isDeepLabel
|
|
|
+ }
|
|
|
+
|
|
|
+ if ChartPermissionId > 0 {
|
|
|
+ condition += ` AND man.chart_permission_id IN (` + strconv.Itoa(ChartPermissionId) + `)`
|
|
|
+ }
|
|
|
+
|
|
|
+ var list []*models.IndustrialManagement
|
|
|
+ total, err := models.GetIndustrialManagementAllCount(condition)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取数量失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+ if orderColumn == "" {
|
|
|
+ orderColumn = "NewTime"
|
|
|
+ }
|
|
|
+ if orderColumn == "NewTime" {
|
|
|
+ orderSrt = "update_time DESC"
|
|
|
+ } else {
|
|
|
+ orderSrt = "man.recommended_index DESC,update_time DESC"
|
|
|
+ }
|
|
|
+ if ChartPermissionId == 0 {
|
|
|
+ ChartPermissionId = 20
|
|
|
+ }
|
|
|
+ //获取产业下阅读数量第三的产业详情
|
|
|
+ detailHot3, err := models.GetIndustrialManagementHot3(ChartPermissionId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ list, err = models.GetIndustrialManagementAll(uid, condition, orderSrt, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ industrialIdArr := make([]int, 0)
|
|
|
+ for k, v := range list {
|
|
|
+ industrialIdArr = append(industrialIdArr, v.IndustrialManagementId)
|
|
|
+ if v.ArticleReadNum >= detailHot3.ArticleReadNum {
|
|
|
+ list[k].IsHot = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mapUPdateTime := make(map[int]string)
|
|
|
+ mapHistroyArticleId := make(map[int]int)
|
|
|
+ articleIdArr := make([]int, 0)
|
|
|
+ //获取这些产业下最新更新的文章
|
|
|
+ fmt.Println(industrialIdArr)
|
|
|
+ listUpdateTime, err := models.GetNewArticleDetailByIndustrialIds(industrialIdArr)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败 GetNewArticleDetailByIndustrialIds ,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listUpdateTime {
|
|
|
+ mapUPdateTime[v.IndustrialManagementId] = v.PublishDate
|
|
|
+ articleIdArr = append(articleIdArr, v.ArticleId)
|
|
|
+ }
|
|
|
+ if uid > 0 {
|
|
|
+ listArticleHistory, err := models.GetUserToArticleHistory(uid, industrialIdArr)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败 GetUserToArticleHistory ,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listArticleHistory {
|
|
|
+ mapHistroyArticleId[v.ArticleId] = v.ArticleId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for k, v := range list {
|
|
|
+ list[k].UpdateTime = utils.TimeRemoveHms(mapUPdateTime[v.IndustrialManagementId])
|
|
|
+ if uid > 0 {
|
|
|
+ //如果文章没有阅读,而且,文章的发布时间晚于项目的上线时间,而且文章的发布时间晚于用户的注册时间,就进行标红处理
|
|
|
+ if mapHistroyArticleId[v.ArticleId] == 0 && user.CreatedTime.Before(utils.StrTimeToTime(mapUPdateTime[v.IndustrialManagementId])) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(mapUPdateTime[v.IndustrialManagementId])) {
|
|
|
+ list[k].IsRed = true
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(mapUPdateTime[v.IndustrialManagementId])) {
|
|
|
+ list[k].IsRed = true
|
|
|
+ }
|
|
|
+ list[k].IsFollow = false
|
|
|
+ }
|
|
|
+ //标的列表
|
|
|
+ industrialSubjectList, err := models.GetIndustrialSubjectAll(v.IndustrialManagementId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list[k].IndustrialSubjectList = industrialSubjectList
|
|
|
+ }
|
|
|
+ //记录用户搜索的筛选条件
|
|
|
+ if orderColumnNew != "" {
|
|
|
+ //item := new(models.CygxReportIndustrialSeaarchHistory)
|
|
|
+ //item.UserId = user.UserId
|
|
|
+ //item.Mobile = user.Mobile
|
|
|
+ //item.CompanyId = user.CompanyId
|
|
|
+ //item.CompanyName = user.CompanyName
|
|
|
+ //item.CreateTime = time.Now()
|
|
|
+ //item.IsDeepLabel = isDeepLabel
|
|
|
+ //item.IsNewLabel = isNewLabel
|
|
|
+ //item.ChartPermissionId = ChartPermissionId
|
|
|
+ //if orderColumnNew == "NewTime" {
|
|
|
+ // item.OrderColumn = "0"
|
|
|
+ //} else {
|
|
|
+ // item.OrderColumn = "1"
|
|
|
+ //}
|
|
|
+ //go models.AddCygxReportIndustrialSeaarchHistory(item)
|
|
|
+ }
|
|
|
+ resp.List = list
|
|
|
+ resp.Paging = page
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 根据行业分类获取文章列表
|
|
|
+// @Description根据行业分类获取文章列表接口
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Param CategoryId query int true "分类ID"
|
|
|
+// @Success 200 {object} models.TacticsListResp
|
|
|
+// @router /articleList/byCategoryId [get]
|
|
|
+func (this *MobileReportController) List() {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ //uid := user.UserId
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ categoryId, _ := this.GetInt("CategoryId")
|
|
|
+
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ var total int
|
|
|
+ resp := new(models.TacticsListResp)
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+
|
|
|
+ //获取该产业下所对应的行业图片
|
|
|
+ detail, errCategory := models.GetdetailByCategoryIdOne(categoryId)
|
|
|
+ if errCategory != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //对应行业的图片
|
|
|
+ detailChartPermissionUrl, err := models.GetConfigByCode("category_chart_permissionimg_url")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ chartPermissionUrlList := strings.Split(detailChartPermissionUrl.ConfigValue, "{|}")
|
|
|
+ mapChartPermission := make(map[string]string)
|
|
|
+ var permissionName string
|
|
|
+ var imgUrlChartPermission string
|
|
|
+ for _, v := range chartPermissionUrlList {
|
|
|
+ vslice := strings.Split(v, "_")
|
|
|
+ permissionName = vslice[0]
|
|
|
+ imgUrlChartPermission = vslice[len(vslice)-1]
|
|
|
+ mapChartPermission[permissionName] = imgUrlChartPermission
|
|
|
+ }
|
|
|
+
|
|
|
+ //对应分类的所图片
|
|
|
+ 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 categoryIdStr string
|
|
|
+ var imgUrlChart string
|
|
|
+ for _, v := range categoryUrlList {
|
|
|
+ vslice := strings.Split(v, "_")
|
|
|
+ categoryIdStr = vslice[0]
|
|
|
+ imgUrlChart = vslice[len(vslice)-1]
|
|
|
+ mapCategoryUrl[categoryIdStr] = imgUrlChart
|
|
|
+ }
|
|
|
+ condition += ` AND category_id_two=? `
|
|
|
+ pars = append(pars, categoryId)
|
|
|
+
|
|
|
+ total, err = models.GetHomeCount(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.Msg = "获取帖子总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ for k, v := range list {
|
|
|
+ list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
|
|
|
+ }
|
|
|
+ if categoryId > 0 {
|
|
|
+ detail, errCategory := models.GetdetailByCategoryId(categoryId)
|
|
|
+ if errCategory != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.MatchTypeName = detail.MatchTypeName
|
|
|
+ }
|
|
|
+ lenList := len(list)
|
|
|
+ for i := 0; i < lenList; i++ {
|
|
|
+ item := list[i]
|
|
|
+ list[i].Body = ""
|
|
|
+ list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
|
|
|
+ list[i].Annotation, _ = services.GetReportContentTextSub(item.Annotation)
|
|
|
+ //行业比较研究、资金流向,显示报告的摘要
|
|
|
+ if resp.MatchTypeName == "行业比较研究" || resp.MatchTypeName == "资金流向" {
|
|
|
+ list[i].Annotation = list[i].Abstract
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
|
|
|
+ resp.List = list
|
|
|
+ resp.Paging = page
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|