report.go 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. package report
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "hongze/hongze_yb/controller/response"
  5. "hongze/hongze_yb/models/request"
  6. "hongze/hongze_yb/services"
  7. "hongze/hongze_yb/services/report"
  8. userService "hongze/hongze_yb/services/user"
  9. "hongze/hongze_yb/utils"
  10. "strconv"
  11. )
  12. // Detail 报告详情
  13. func Detail(c *gin.Context) {
  14. reqReportId := c.DefaultQuery("report_id", "")
  15. if reqReportId == "" {
  16. response.Fail("请输入报告ID", c)
  17. return
  18. }
  19. reportId, err := strconv.Atoi(reqReportId)
  20. if err != nil {
  21. response.Fail("报告ID格式有误", c)
  22. return
  23. }
  24. userinfo := userService.GetInfoByClaims(c)
  25. reportDetail, err := report.GetReportDetail(userinfo, reportId)
  26. if err != nil {
  27. response.FailMsg("查看报告详情出错", err.Error(), c)
  28. return
  29. }
  30. response.OkData("查询成功", reportDetail, c)
  31. return
  32. }
  33. // ChapterDetail 章节详情
  34. func ChapterDetail(c *gin.Context) {
  35. reqReportChapterId := c.DefaultQuery("report_chapter_id", "")
  36. if reqReportChapterId == "" {
  37. response.Fail("请输入章节ID", c)
  38. return
  39. }
  40. reportChapterId, err := strconv.Atoi(reqReportChapterId)
  41. if err != nil {
  42. response.Fail("章节ID格式有误", c)
  43. return
  44. }
  45. userinfo := userService.GetInfoByClaims(c)
  46. chapterDetail, err := report.GetChapterDetail(userinfo, reportChapterId)
  47. if err != nil {
  48. response.FailMsg("查看章节详情出错", err.Error(), c)
  49. return
  50. }
  51. response.OkData("查询成功", chapterDetail, c)
  52. return
  53. }
  54. // List 研报列表
  55. func List(c *gin.Context) {
  56. var req request.ReportListReq
  57. if err := c.Bind(&req); err != nil {
  58. response.Fail("参数有误", c)
  59. return
  60. }
  61. if req.ClassifyIdFirst <= 0 {
  62. response.Fail("分类ID有误", c)
  63. return
  64. }
  65. if req.CurrentIndex == 0 {
  66. req.CurrentIndex = 1
  67. }
  68. if req.PageSize == 0 {
  69. req.PageSize = utils.PageSize20
  70. }
  71. userInfo := userService.GetInfoByClaims(c)
  72. list, err := report.GetReportList(userInfo, req.KeyWord, req.ClassifyIdFirst, req.ClassifyIdSecond, req.CurrentIndex, req.PageSize, req.ClassifyMenuId)
  73. if err != nil {
  74. response.FailMsg("查看研报列表出错", err.Error(), c)
  75. return
  76. }
  77. response.OkData("查询成功", list, c)
  78. return
  79. }
  80. // CollectReportList 首页研报汇总
  81. func CollectReportList(c *gin.Context) {
  82. reqChartPermissionId := c.DefaultQuery("chart_permission_id", "")
  83. reqPageIndex := c.DefaultQuery("current_index", "1")
  84. reqPageSize := c.DefaultQuery("page_size", strconv.Itoa(utils.PageSize20))
  85. pageIndex, err := strconv.Atoi(reqPageIndex)
  86. if err != nil {
  87. response.Fail("请输入正确的条数限制", c)
  88. return
  89. }
  90. pageSize, err := strconv.Atoi(reqPageSize)
  91. if err != nil {
  92. response.Fail("请输入正确的页码", c)
  93. return
  94. }
  95. if reqChartPermissionId == "" {
  96. response.Fail("请输入权限ID", c)
  97. return
  98. }
  99. chartPermissionId, err := strconv.Atoi(reqChartPermissionId)
  100. if err != nil {
  101. response.Fail("权限ID格式错误", c)
  102. return
  103. }
  104. userinfo := userService.GetInfoByClaims(c)
  105. list, err := report.GetCollectReportList(userinfo, chartPermissionId, pageIndex, pageSize)
  106. if err != nil {
  107. response.FailMsg("汇总报告查询出错", err.Error(), c)
  108. return
  109. }
  110. response.OkData("查询成功", list, c)
  111. return
  112. }
  113. // Search 首页研报搜索
  114. func Search(c *gin.Context) {
  115. keyWord := c.DefaultQuery("key_word", "")
  116. reqPageIndex := c.DefaultQuery("current_index", "1")
  117. reqPageSize := c.DefaultQuery("page_size", strconv.Itoa(utils.PageSize20))
  118. pageIndex, err := strconv.Atoi(reqPageIndex)
  119. if err != nil {
  120. response.Fail("请输入正确的条数限制", c)
  121. return
  122. }
  123. pageSize, err := strconv.Atoi(reqPageSize)
  124. if err != nil {
  125. response.Fail("请输入正确的页码", c)
  126. return
  127. }
  128. if keyWord == "" {
  129. response.Fail("请输入搜索词", c)
  130. return
  131. }
  132. userinfo := userService.GetInfoByClaims(c)
  133. data, err := report.SearchReport(userinfo, keyWord, pageIndex, pageSize)
  134. if err != nil {
  135. response.FailMsg("搜索报告出错", err.Error(), c)
  136. return
  137. }
  138. response.OkData("查询成功", data, c)
  139. return
  140. }
  141. // TickerData 报告详情获取指标数据
  142. func TickerData(c *gin.Context) {
  143. reqReportChapterId := c.DefaultQuery("report_chapter_id", "")
  144. if reqReportChapterId == "" {
  145. response.Fail("请输入章节ID", c)
  146. return
  147. }
  148. reportChapterId, err := strconv.Atoi(reqReportChapterId)
  149. if err != nil {
  150. response.Fail("章节ID格式有误", c)
  151. return
  152. }
  153. userinfo := userService.GetInfoByClaims(c)
  154. chapterDetail, err := report.GetTickerData(userinfo, reportChapterId)
  155. if err != nil {
  156. response.Fail(err.Error(), c)
  157. return
  158. }
  159. response.OkData("查询成功", chapterDetail, c)
  160. return
  161. }
  162. // RddpShareImg 获取报告分享图
  163. func RddpShareImg(c *gin.Context) {
  164. var req request.RddpReportShareImgReq
  165. if c.ShouldBind(&req) != nil {
  166. response.Fail("参数异常", c)
  167. return
  168. }
  169. defaultImg := utils.DEFAULT_REPORT_SHARE_BG_IMG
  170. if req.Source == "" {
  171. response.OkData("获取成功", defaultImg, c)
  172. return
  173. }
  174. imgUrl, err := services.GetDynamicShareImg(req.Source, req.Pars)
  175. if err != nil {
  176. response.FailData("获取分享海报失败", "获取分享海报失败, Err: "+err.Error(), c)
  177. return
  178. }
  179. if imgUrl == "" {
  180. imgUrl = defaultImg
  181. }
  182. response.OkData("获取成功", imgUrl, c)
  183. }
  184. // ReportPptImgList 报告中的ppt图片列表
  185. func ReportPptImgList(c *gin.Context) {
  186. reqReportId := c.DefaultQuery("report_id", "")
  187. if reqReportId == "" {
  188. response.Fail("请输入报告ID", c)
  189. return
  190. }
  191. reportId, err := strconv.Atoi(reqReportId)
  192. if err != nil {
  193. response.Fail("报告ID格式有误", c)
  194. return
  195. }
  196. reqReportChapterId := c.DefaultQuery("report_chapter_id", "0")
  197. reportChapterId, err := strconv.Atoi(reqReportChapterId)
  198. if err != nil {
  199. response.Fail("章节ID格式有误", c)
  200. return
  201. }
  202. pptImgList, err := report.GetReportPptImgListByReportIdAndReportChapterId(reportId, reportChapterId)
  203. if err != nil {
  204. response.FailMsg("获取ppt图片成功", err.Error(), c)
  205. return
  206. }
  207. response.OkData("获取成功", pptImgList, c)
  208. return
  209. }
  210. // VarietyReportList 品种类型研报列表
  211. func VarietyReportList(c *gin.Context) {
  212. reqClassifyId := c.DefaultQuery("classify_id", "")
  213. reqChartPermissionId := c.DefaultQuery("chart_permission_id", "")
  214. reqPageIndex := c.DefaultQuery("current_index", "1")
  215. reqPageSize := c.DefaultQuery("page_size", strconv.Itoa(utils.PageSize20))
  216. pageIndex, err := strconv.Atoi(reqPageIndex)
  217. if err != nil {
  218. response.Fail("请输入正确的条数限制", c)
  219. return
  220. }
  221. pageSize, err := strconv.Atoi(reqPageSize)
  222. if err != nil {
  223. response.Fail("请输入正确的页码", c)
  224. return
  225. }
  226. if reqChartPermissionId == "" {
  227. response.Fail("请输入权限ID", c)
  228. return
  229. }
  230. chartPermissionId, err := strconv.Atoi(reqChartPermissionId)
  231. if err != nil {
  232. response.Fail("权限ID格式错误", c)
  233. return
  234. }
  235. classifyId, err := strconv.Atoi(reqClassifyId)
  236. if err != nil {
  237. response.Fail("种类ID格式错误", c)
  238. return
  239. }
  240. userinfo := userService.GetInfoByClaims(c)
  241. list, err := report.GetVarietyReportList(userinfo, classifyId, chartPermissionId, pageIndex, pageSize)
  242. if err != nil {
  243. response.FailMsg("查看研报列表出错", err.Error(), c)
  244. return
  245. }
  246. response.OkData("查询成功", list, c)
  247. return
  248. }