123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- package controllers
- import (
- "encoding/json"
- "fmt"
- "hongze/hongze_cygx/models"
- "hongze/hongze_cygx/services"
- "hongze/hongze_cygx/utils"
- "rdluck_tools/paging"
- "strconv"
- "strings"
- "time"
- )
- //报告
- type ReportController struct {
- BaseAuthController
- }
- type ReportCommonController struct {
- BaseCommonController
- }
- // @Title 行业报告分类列表接口
- // @Description 获取行业报告分类列表接口
- // @Param ChartPermissionId query int true "分类ID"
- // @Success 200 {object} models.IndustrialManagementList
- // @router /home/tradeList [get]
- func (this *ReportController) TradeList() {
- 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")
- if ChartPermissionId < 1 {
- br.Msg = "请输入分类ID"
- return
- }
- list, err := models.GetTradeAll(uid, ChartPermissionId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
- return
- }
- for k, v := range list {
- list[k].UpdateTime = utils.TimeRemoveHms(v.UpdateTime)
- if v.Readnum == 0 {
- list[k].IsRed = true
- }
- }
- resp := new(models.TradeReportMappingResp)
- resp.List = list
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 产业报告分类列表接口
- // @Description 获取产业报告分类列表接口
- // @Param ChartPermissionId query int true "分类ID"
- // @Param OrderColumn query int true "排序字段 ,NewTime最近更新 ,Recommend弘则推荐"
- // @Success 200 {object} models.IndustrialManagementList
- // @router /home/industryList [get]
- func (this *ReportController) 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
- var orderSrt string
- ChartPermissionId, _ := this.GetInt("ChartPermissionId")
- orderColumn := this.GetString("OrderColumn")
- if orderColumn == " " {
- orderColumn = "NewTime"
- }
- if ChartPermissionId < 1 {
- br.Msg = "请输入分类ID"
- return
- }
- listTop, err := models.GetIndustrialManagementTopAll(ChartPermissionId, uid)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
- return
- }
- fmt.Println(len(listTop))
- for k, _ := range listTop {
- listTop[k].IsTop = true
- }
- if orderColumn == "NewTime" {
- orderSrt = "art.publish_date DESC"
- } else {
- orderSrt = "man.recommended_index DESC"
- }
- list, err := models.GetIndustrialManagementAll(ChartPermissionId, uid, orderSrt)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
- return
- }
- list = append(listTop, list...)
- for k, v := range list {
- var analystStr string
- analystList, err := models.GetIndustrialAnalystAll(v.IndustrialManagementId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
- return
- }
- industrialSubjectList, err := models.GetIndustrialSubjectAll(v.IndustrialManagementId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
- return
- }
- list[k].IndustrialSubjectList = industrialSubjectList
- if len(analystList) > 0 {
- for _, v2 := range analystList {
- analystStr += v2.AnalystName + "/"
- }
- analystStr = strings.TrimRight(analystStr, "/")
- }
- list[k].Analyst = analystStr
- list[k].LayoutTime = utils.TimeRemoveHms(v.LayoutTime)
- newArtinfo, err := models.GetIndustrialNewArticleDetail(v.IndustrialManagementId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
- return
- }
- list[k].UpdateTime = utils.TimeRemoveHms(newArtinfo.PublishDate)
- recordCount, err := models.GetUserToArticleCount(uid, newArtinfo.ArticleId)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(newArtinfo.ArticleId)
- return
- }
- if recordCount == 0 {
- list[k].IsRed = true
- }
- }
- resp := new(models.IndustrialManagementList)
- resp.List = list
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 产业下所关联的文章分类列表
- // @Description 产业下所关联的文章分类列表接口
- // @Param IndustrialManagementId query int true "产业ID"
- // @Success 200 {object} models.IndustrialToArticleCategoryListRep
- // @router /toArticleCategoryList [get]
- func (this *ReportController) ArticleCategoryList() {
- 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
- industrialManagementId, _ := this.GetInt("IndustrialManagementId")
- if industrialManagementId < 1 {
- br.Msg = "请输入分类ID"
- return
- }
- list, err := models.IndustrialToArticleCategory(industrialManagementId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
- return
- }
- for k, v := range list {
- recordCount, err := models.IndustrialUserRecordArticleCount(uid, industrialManagementId, v.CategoryId)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "获取信息失败"
- br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
- return
- }
- if recordCount == 0 {
- list[k].IsRed = true
- }
- }
- detail, err := models.GetIndustrialManagementDetail(industrialManagementId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
- return
- }
- resp := new(models.IndustrialToArticleCategoryListRep)
- resp.List = list
- resp.LayoutTime = utils.TimeRemoveHms(detail.LayoutTime)
- resp.IndustryName = detail.IndustryName
- resp.IndustrialManagementId = industrialManagementId
- 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"
- // @Param IndustrialManagementId query int true "产业ID"
- // @Success 200 {object} models.TacticsListResp
- // @router /industry/ArticleList [get]
- func (this *ReportController) 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")
- industrialManagementId, _ := this.GetInt("IndustrialManagementId")
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- var pars []interface{}
- var total int
- resp := new(models.TacticsListResp)
- page := paging.GetPaging(currentIndex, pageSize, total)
- if categoryId < 1 {
- br.Msg = "请输入分类ID"
- return
- }
- if industrialManagementId < 1 {
- br.Msg = "请输入产业ID"
- return
- }
- total, err := models.GetReportIndustrialCount(categoryId, industrialManagementId)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
- return
- }
- page = paging.GetPaging(currentIndex, pageSize, total)
- list, err := models.GetReportIndustrialList(pars, categoryId, industrialManagementId, uid, startSize, pageSize)
- if err != nil {
- br.Msg = "获取信息失败"
- br.ErrMsg = "获取帖子数据失败,Err:" + err.Error()
- return
- }
- lenList := len(list)
- for i := 0; i < lenList; i++ {
- item := list[i]
- list[i].Body, _ = services.GetReportContentTextSub(item.Body)
- //list[i].Abstract = html.UnescapeString(item.Abstract)
- list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
- }
- for k, v := range list {
- if v.Readnum == 0 {
- list[k].IsRed = true
- }
- }
- resp.List = list
- resp.Paging = page
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- // @Title 置顶/取消置顶
- // @Description 置顶
- // @Param request body models.CygxIndustryTopRep true "type json string"
- // @Success 200
- // @router /top [post]
- func (this *ReportController) ArticleCollect() {
- 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
- var req models.CygxIndustryTopRep
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- industrialManagementId := req.IndustrialManagementId
- fmt.Println(industrialManagementId)
- countIndustrial, err := models.GetIndustrialManagementCount(industrialManagementId)
- if err != nil {
- br.Msg = "获取数据失败!"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- if countIndustrial == 0 {
- br.Msg = "产业不存在!"
- br.ErrMsg = "产业不存在"
- return
- }
- count, err := models.GetCygxIndustryTop(uid, industrialManagementId)
- if err != nil {
- br.Msg = "获取数据失败!"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
- resp := new(models.ArticleCollectResp)
- if count <= 0 {
- item := new(models.CygxIndustryTop)
- item.IndustrialManagementId = req.IndustrialManagementId
- item.UserId = uid
- item.CreateTime = time.Now()
- _, err = models.AddCygxIndustryTop(item)
- if err != nil {
- br.Msg = "置顶失败"
- br.ErrMsg = "置顶失败,Err:" + err.Error()
- return
- }
- br.Msg = "置顶成功"
- resp.Status = 1
- } else {
- err = models.RemoveCygxIndustryTop(uid, industrialManagementId)
- if err != nil {
- br.Msg = "取消置顶失败"
- br.ErrMsg = "取消置顶失败,Err:" + err.Error()
- return
- }
- br.Msg = "已取消置顶"
- resp.Status = 2
- }
- br.Ret = 200
- br.Success = true
- br.Data = resp
- }
|