report.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. package controllers
  2. import (
  3. "eta/eta_mini_api/models"
  4. "eta/eta_mini_api/models/response"
  5. "eta/eta_mini_api/services"
  6. "eta/eta_mini_api/utils"
  7. )
  8. type ReportController struct {
  9. BaseAuthController
  10. }
  11. // @Title 研报详情
  12. // @Description 研报详情接口
  13. // @Param ReportId query int true "报告id"
  14. // @Success 200 {object} models.ReportDetailResp
  15. // @router /detail [get]
  16. func (this *ReportController) Detail() {
  17. br := new(models.BaseResponse).Init()
  18. defer func() {
  19. this.Data["json"] = br
  20. this.ServeJSON()
  21. }()
  22. reportId, _ := this.GetInt("ReportId")
  23. if reportId <= 0 {
  24. br.Msg = "报告不存在"
  25. return
  26. }
  27. user := this.User
  28. if user == nil {
  29. br.Ret = 408
  30. br.Msg = "用户未登录"
  31. return
  32. }
  33. result, err := services.GetReportDetail(reportId, user.UserId)
  34. if err != nil {
  35. br.Msg = "查询报告详情失败"
  36. br.ErrMsg = "查询报告失败,系统异常,Err:" + err.Error()
  37. return
  38. }
  39. if result.Ret == 403 {
  40. br.Msg = result.Msg
  41. br.ErrMsg = result.ErrMsg
  42. return
  43. }
  44. if result.Ret == 200 && result.Data.Report == nil {
  45. // 后台没有这个报告,那么尝试删除我的收藏
  46. models.DeleteMyReportByUserIdAndReportId(user.UserId, reportId)
  47. br.Msg = "该报告已删除或不存在,请刷新页面"
  48. return
  49. }
  50. count, err := models.GetMyReportCountByUserIdAndReportId(user.UserId, reportId)
  51. if err != nil {
  52. br.Msg = "查询收藏数量失败"
  53. br.ErrMsg = "查询收藏数量失败,Err:" + err.Error()
  54. return
  55. }
  56. if count > 0 {
  57. result.Data.IsCollect = true
  58. } else {
  59. result.Data.IsCollect = false
  60. }
  61. br.Msg = "查询成功"
  62. br.Success = true
  63. br.Ret = 200
  64. br.Data = result.Data
  65. }
  66. // @Title 研报列表
  67. // @Description 研报列表
  68. // @Param ChartPermissionId query int true "品种ID"
  69. // @Param Level query int true "品种层级"
  70. // @Param PageSize query int true "每页数据条数"
  71. // @Param CurrentIndex query int true "当前页页码,从1开始"
  72. // @Param RangeType query string true "范围类型,1-一天内,2-一周内,3-半年内"
  73. // @Success 200 {object} response.ReportList
  74. // @router /list [get]
  75. func (this *ReportController) List() {
  76. br := new(models.BaseResponse).Init()
  77. defer func() {
  78. this.Data["json"] = br
  79. this.ServeJSON()
  80. }()
  81. pageSize, _ := this.GetInt("PageSize")
  82. currentIndex, _ := this.GetInt("CurrentIndex")
  83. chartPermissionId, _ := this.GetInt("ChartPermissionId")
  84. level, _ := this.GetInt("Level")
  85. rangeType, _ := this.GetInt("RangeType")
  86. reports, err := services.GetReportList(chartPermissionId, level, rangeType, currentIndex, pageSize)
  87. if err != nil {
  88. br.Msg = "研报列表查询失败"
  89. br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
  90. return
  91. }
  92. if reports.Ret != 200 {
  93. br.Msg = reports.Msg
  94. br.ErrMsg = reports.ErrMsg
  95. return
  96. }
  97. br.Data = reports.Data
  98. br.Msg = "查询成功"
  99. br.Ret = 200
  100. br.Success = true
  101. }
  102. // @Title 研报列表
  103. // @Description 研报列表
  104. // @Param ReportId query int true "报告id"
  105. // @Param chartPermissionId query int true "品种ID"
  106. // @Param PageSize query int true "每页数据条数"
  107. // @Param CurrentIndex query int true "当前页页码,从1开始"
  108. // @Success 200 {object} models.ReportDetailResp
  109. // @router /daily/list [get]
  110. func (this *ReportController) DailyList() {
  111. br := new(models.BaseResponse).Init()
  112. defer func() {
  113. this.Data["json"] = br
  114. this.ServeJSON()
  115. }()
  116. pageSize, _ := this.GetInt("PageSize")
  117. currentIndex, _ := this.GetInt("CurrentIndex")
  118. if pageSize <= 0 {
  119. pageSize = 3
  120. }
  121. reports, err := services.GetReportDailyList(currentIndex, pageSize)
  122. if err != nil {
  123. br.Msg = "研报列表查询失败"
  124. br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
  125. return
  126. }
  127. br.Data = reports.Data
  128. br.Msg = "查询成功"
  129. br.Ret = 200
  130. br.Success = true
  131. }
  132. // @Title 研报列表
  133. // @Description 研报列表
  134. // @Param ReportId query int true "报告id"
  135. // @Param chartPermissionId query int true "品种ID"
  136. // @Param PageSize query int true "每页数据条数"
  137. // @Param CurrentIndex query int true "当前页页码,从1开始"
  138. // @Success 200 {object} models.ReportDetailResp
  139. // @router /search [get]
  140. func (this *ReportController) Search() {
  141. br := new(models.BaseResponse).Init()
  142. defer func() {
  143. this.Data["json"] = br
  144. this.ServeJSON()
  145. }()
  146. keyWord := this.GetString("KeyWord")
  147. pageSize, _ := this.GetInt("PageSize")
  148. currentIndex, _ := this.GetInt("CurrentIndex")
  149. if pageSize <= 0 {
  150. pageSize = utils.PageSize30
  151. }
  152. if keyWord == "" {
  153. br.Msg = "请输入关键字"
  154. return
  155. }
  156. reports, err := services.SearchReport(keyWord, currentIndex, pageSize)
  157. if err != nil {
  158. br.Msg = "研报列表查询失败"
  159. br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
  160. return
  161. }
  162. if reports.Ret != 200 {
  163. br.Msg = reports.Msg
  164. br.ErrMsg = reports.ErrMsg
  165. return
  166. }
  167. resp := new(response.ReportSearchViewResp)
  168. list := make([]*response.ReportSearchListView, 0)
  169. for _, v := range reports.Data.List {
  170. tmpReport := &response.ReportSearchListView{
  171. ReportId: v.ReportId,
  172. ReportChapterId: v.ReportChapterId,
  173. ClassifyIdFirst: v.ClassifyIdFirst,
  174. ClassifyNameFirst: v.ClassifyNameFirst,
  175. ClassifyIdSecond: v.ClassifyIdSecond,
  176. ClassifyNameSecond: v.ClassifyNameSecond,
  177. ReportChapterTypeId: v.ReportChapterTypeId,
  178. PublishTime: v.PublishTime.Format(utils.FormatDate),
  179. Title: v.Title,
  180. ContentSub: v.ContentSub,
  181. Abstract: v.Abstract,
  182. Stage: v.Stage,
  183. Author: v.Author,
  184. }
  185. if v.PublishTime.IsZero() {
  186. tmpReport.PublishTime = ""
  187. }
  188. list = append(list, tmpReport)
  189. }
  190. resp.List = list
  191. resp.Paging = reports.Data.Paging
  192. br.Data = resp
  193. br.Msg = "查询成功"
  194. br.Ret = 200
  195. br.Success = true
  196. }