report.go 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  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. reqClassifyIdFirst := c.DefaultQuery("classify_id_first", "")
  57. reqClassifyIdSec := c.DefaultQuery("classify_id_second", "")
  58. keyWord := c.DefaultQuery("key_word", "")
  59. reqPageIndex := c.DefaultQuery("current_index", "1")
  60. reqPageSize := c.DefaultQuery("page_size", strconv.Itoa(utils.PageSize20))
  61. pageIndex, err := strconv.Atoi(reqPageIndex)
  62. if err != nil {
  63. response.Fail("请输入正确的条数限制", c)
  64. return
  65. }
  66. pageSize, err := strconv.Atoi(reqPageSize)
  67. if err != nil {
  68. response.Fail("请输入正确的页码", c)
  69. return
  70. }
  71. if reqClassifyIdFirst == "" {
  72. response.Fail("请输入分类ID", c)
  73. return
  74. }
  75. classifyIdFirst, err := strconv.Atoi(reqClassifyIdFirst)
  76. if err != nil {
  77. response.Fail("分类ID格式错误", c)
  78. return
  79. }
  80. var classifyIdSecond int
  81. if reqClassifyIdSec != "" {
  82. classifyIdSecond, err = strconv.Atoi(reqClassifyIdSec)
  83. if err != nil {
  84. response.Fail("分类ID格式错误", c)
  85. return
  86. }
  87. }
  88. userinfo := userService.GetInfoByClaims(c)
  89. list, err := report.GetReportList(userinfo, keyWord, classifyIdFirst, classifyIdSecond, pageIndex, pageSize)
  90. if err != nil {
  91. response.FailMsg("查看研报列表出错", err.Error(), c)
  92. return
  93. }
  94. response.OkData("查询成功", list, c)
  95. return
  96. }
  97. // CollectReportList 首页研报汇总
  98. func CollectReportList(c *gin.Context) {
  99. reqChartPermissionId := c.DefaultQuery("chart_permission_id", "")
  100. reqPageIndex := c.DefaultQuery("current_index", "1")
  101. reqPageSize := c.DefaultQuery("page_size", strconv.Itoa(utils.PageSize20))
  102. pageIndex, err := strconv.Atoi(reqPageIndex)
  103. if err != nil {
  104. response.Fail("请输入正确的条数限制", c)
  105. return
  106. }
  107. pageSize, err := strconv.Atoi(reqPageSize)
  108. if err != nil {
  109. response.Fail("请输入正确的页码", c)
  110. return
  111. }
  112. if reqChartPermissionId == "" {
  113. response.Fail("请输入权限ID", c)
  114. return
  115. }
  116. chartPermissionId, err := strconv.Atoi(reqChartPermissionId)
  117. if err != nil {
  118. response.Fail("权限ID格式错误", c)
  119. return
  120. }
  121. userinfo := userService.GetInfoByClaims(c)
  122. list, err := report.GetCollectReportList(userinfo, chartPermissionId, pageIndex, pageSize)
  123. if err != nil {
  124. response.FailMsg("汇总报告查询出错", err.Error(), c)
  125. return
  126. }
  127. response.OkData("查询成功", list, c)
  128. return
  129. }
  130. // Search 首页研报搜索
  131. func Search(c *gin.Context) {
  132. keyWord := c.DefaultQuery("key_word", "")
  133. reqPageIndex := c.DefaultQuery("current_index", "1")
  134. reqPageSize := c.DefaultQuery("page_size", strconv.Itoa(utils.PageSize20))
  135. pageIndex, err := strconv.Atoi(reqPageIndex)
  136. if err != nil {
  137. response.Fail("请输入正确的条数限制", c)
  138. return
  139. }
  140. pageSize, err := strconv.Atoi(reqPageSize)
  141. if err != nil {
  142. response.Fail("请输入正确的页码", c)
  143. return
  144. }
  145. if keyWord == "" {
  146. response.Fail("请输入搜索词", c)
  147. return
  148. }
  149. userinfo := userService.GetInfoByClaims(c)
  150. data, err := report.SearchReport(userinfo, keyWord, pageIndex, pageSize)
  151. if err != nil {
  152. response.FailMsg("搜索报告出错", err.Error(), c)
  153. return
  154. }
  155. response.OkData("查询成功", data, c)
  156. return
  157. }
  158. // TickerData 报告详情获取指标数据
  159. func TickerData(c *gin.Context) {
  160. reqReportChapterId := c.DefaultQuery("report_chapter_id", "")
  161. if reqReportChapterId == "" {
  162. response.Fail("请输入章节ID", c)
  163. return
  164. }
  165. reportChapterId, err := strconv.Atoi(reqReportChapterId)
  166. if err != nil {
  167. response.Fail("章节ID格式有误", c)
  168. return
  169. }
  170. userinfo := userService.GetInfoByClaims(c)
  171. chapterDetail, err := report.GetTickerData(userinfo, reportChapterId)
  172. if err != nil {
  173. response.Fail(err.Error(), c)
  174. return
  175. }
  176. response.OkData("查询成功", chapterDetail, c)
  177. return
  178. }
  179. // RddpShareImg 获取报告分享图
  180. func RddpShareImg(c *gin.Context) {
  181. var req request.RddpReportShareImgReq
  182. if c.ShouldBind(&req) != nil {
  183. response.Fail("参数异常", c)
  184. return
  185. }
  186. defaultImg := utils.DEFAULT_REPORT_SHARE_BG_IMG
  187. if req.Source == "" {
  188. response.OkData("获取成功", defaultImg, c)
  189. return
  190. }
  191. imgUrl, err := services.GetDynamicShareImg(req.Source, req.Pars)
  192. if err != nil {
  193. response.FailData("获取分享海报失败", "获取分享海报失败, Err: "+err.Error(), c)
  194. return
  195. }
  196. if imgUrl == "" {
  197. imgUrl = defaultImg
  198. }
  199. response.OkData("获取成功", imgUrl, c)
  200. }
  201. // ReportPptImgList 报告中的ppt图片列表
  202. func ReportPptImgList(c *gin.Context) {
  203. reqReportId := c.DefaultQuery("report_id", "")
  204. if reqReportId == "" {
  205. response.Fail("请输入报告ID", c)
  206. return
  207. }
  208. reportId, err := strconv.Atoi(reqReportId)
  209. if err != nil {
  210. response.Fail("报告ID格式有误", c)
  211. return
  212. }
  213. reqReportChapterId := c.DefaultQuery("report_chapter_id", "0")
  214. reportChapterId, err := strconv.Atoi(reqReportChapterId)
  215. if err != nil {
  216. response.Fail("章节ID格式有误", c)
  217. return
  218. }
  219. pptImgList, err := report.GetReportPptImgListByReportIdAndReportChapterId(reportId, reportChapterId)
  220. if err != nil {
  221. response.FailMsg("获取ppt图片成功", err.Error(), c)
  222. return
  223. }
  224. response.OkData("获取成功", pptImgList, c)
  225. return
  226. }
  227. // CommoditiesCollectReportList 大宗商品研报列表
  228. func CommoditiesCollectReportList(c *gin.Context) {
  229. reqChartPermissionId := c.DefaultQuery("chart_permission_id", "")
  230. reqPageIndex := c.DefaultQuery("current_index", "1")
  231. reqPageSize := c.DefaultQuery("page_size", strconv.Itoa(utils.PageSize20))
  232. pageIndex, err := strconv.Atoi(reqPageIndex)
  233. if err != nil {
  234. response.Fail("请输入正确的条数限制", c)
  235. return
  236. }
  237. pageSize, err := strconv.Atoi(reqPageSize)
  238. if err != nil {
  239. response.Fail("请输入正确的页码", c)
  240. return
  241. }
  242. if reqChartPermissionId == "" {
  243. response.Fail("请输入权限ID", c)
  244. return
  245. }
  246. chartPermissionId, err := strconv.Atoi(reqChartPermissionId)
  247. if err != nil {
  248. response.Fail("权限ID格式错误", c)
  249. return
  250. }
  251. userinfo := userService.GetInfoByClaims(c)
  252. list, err := report.GetCommoditiesCollectReportList(userinfo, chartPermissionId, pageIndex, pageSize)
  253. if err != nil {
  254. response.FailMsg("汇总报告查询出错", err.Error(), c)
  255. return
  256. }
  257. response.OkData("查询成功", list, c)
  258. return
  259. }