pc.go 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. package pc
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "hongze/hongze_yb/controller/response"
  5. pcModels "hongze/hongze_yb/models/response/pc"
  6. "hongze/hongze_yb/models/tables/customer_comment"
  7. "hongze/hongze_yb/models/tables/rddp/classify"
  8. "hongze/hongze_yb/models/tables/rddp/report"
  9. "hongze/hongze_yb/models/tables/rddp/report_chapter"
  10. "hongze/hongze_yb/models/tables/yb_activity"
  11. "hongze/hongze_yb/models/tables/yb_pc_suncode"
  12. "hongze/hongze_yb/services"
  13. "hongze/hongze_yb/services/pc"
  14. userService "hongze/hongze_yb/services/user"
  15. "hongze/hongze_yb/utils"
  16. "strconv"
  17. )
  18. // LatestNews 研报首页最新资讯
  19. func LatestNews(c *gin.Context) {
  20. reqChartPermissionId := c.DefaultQuery("chart_permission_id", "")
  21. if reqChartPermissionId == "" {
  22. response.Fail("请输入权限ID", c)
  23. return
  24. }
  25. chartPermissionId, err := strconv.Atoi(reqChartPermissionId)
  26. if err != nil {
  27. response.Fail("权限ID格式错误", c)
  28. return
  29. }
  30. userinfo := userService.GetInfoByClaims(c)
  31. list, err := pc.GetLatestReportList(userinfo, chartPermissionId)
  32. if err != nil {
  33. response.Fail("获取报告失败", c)
  34. return
  35. }
  36. //recommendList, err := pcModels.GetLatestReportList()
  37. //if err != nil {
  38. // response.Fail("获取报告详情失败"+err.Error(), c)
  39. // return
  40. //}
  41. response.OkData("查询成功", list, c)
  42. return
  43. }
  44. // Banner 上新公告banner图
  45. func Banner(c *gin.Context) {
  46. var resp pcModels.LatestReleaseResp
  47. activityItem, err := yb_activity.GetLatestActivity()
  48. if err != nil {
  49. response.Fail(err.Error(), c)
  50. return
  51. }
  52. reportItem, err := report.GetLatestReport()
  53. if err != nil {
  54. response.Fail(err.Error(), c)
  55. return
  56. }
  57. if activityItem.CreateTime.Before(reportItem.PublishTime) {
  58. resp.ActivityOrReport = 0
  59. resp.Activity = activityItem
  60. resp.ImgUrl = "https://hongze.oss-accelerate.aliyuncs.com/static/images/202101/20210115/3HJfHLehkVwv0Rxl4Wz747i3aqx8.png"
  61. } else {
  62. resp.ActivityOrReport = 1
  63. resp.ReportId = reportItem.Id
  64. resp.ImgUrl = "https://hongze.oss-accelerate.aliyuncs.com/static/images/202101/20210115/3HJfHLehkVwv0Rxl4Wz747i3aqx8.png"
  65. }
  66. response.OkData("查询成功", resp, c)
  67. return
  68. }
  69. // LatestRelease 上新公告
  70. func LatestRelease(c *gin.Context) {
  71. classifyIdString := c.DefaultQuery("ClassifyId", "")
  72. if classifyIdString == "" {
  73. response.Fail("请输入classifyId", c)
  74. return
  75. }
  76. classifyId, err := strconv.Atoi(classifyIdString)
  77. if err != nil {
  78. response.Fail("请输入正确classifyId", c)
  79. return
  80. }
  81. classifyInfo, err := classify.GetByClassifyId(classifyId)
  82. if err != nil {
  83. response.Fail("分类查询出错", c)
  84. return
  85. }
  86. response.OkData("查询成功", classifyInfo, c)
  87. return
  88. }
  89. // ClassifyDetail 专栏详情
  90. func ClassifyDetail(c *gin.Context) {
  91. reqClassifyIdSecond := c.DefaultQuery("classify_id_second", "")
  92. if reqClassifyIdSecond == "" {
  93. response.Fail("请输入二级分类标识", c)
  94. return
  95. }
  96. classifyIdSecond, err := strconv.Atoi(reqClassifyIdSecond)
  97. if err != nil {
  98. response.Fail("请输入正确的二级分类标识", c)
  99. return
  100. }
  101. userinfo := userService.GetInfoByClaims(c)
  102. detail, err := pc.GetClassifyDetail(userinfo, classifyIdSecond)
  103. if err != nil {
  104. response.Fail(err.Error(), c)
  105. return
  106. }
  107. response.OkData("查询成功", detail, c)
  108. return
  109. }
  110. // ClassifyDetailBanner 专栏详情banner图
  111. func ClassifyDetailBanner(c *gin.Context) {
  112. reqReportId := c.DefaultQuery("reportId", "")
  113. classifyName := c.DefaultQuery("classify_name_first", "")
  114. if reqReportId == "" {
  115. response.Fail("请输入二级分类标识", c)
  116. return
  117. }
  118. reportId, err := strconv.Atoi(reqReportId)
  119. if err != nil {
  120. response.Fail("报告ID格式有误", c)
  121. return
  122. }
  123. var bannerResp *pcModels.DetailBannerResp
  124. if classifyName == "周报" || classifyName == "晨报" {
  125. chapterItem, err := report_chapter.GetLatestChapterByClassifyName(classifyName)
  126. if err != nil {
  127. response.Fail("查询最新一期晨周报失败"+err.Error(), c)
  128. return
  129. }
  130. resp := &pcModels.DetailBannerResp{
  131. ReportId: chapterItem.ReportId,
  132. Stage: chapterItem.Stage,
  133. ImgUrl: "",
  134. }
  135. bannerResp = resp
  136. } else {
  137. reportInfo, err := report.GetByReportId(reportId)
  138. if err != nil {
  139. response.Fail("报告查询出错", c)
  140. return
  141. }
  142. if reportInfo.Id == 0 {
  143. response.Fail("报告不存在", c)
  144. return
  145. }
  146. if reportInfo.State != 2 {
  147. response.Fail("报告未发布", c)
  148. return
  149. }
  150. reportItem, err := report.GetLatestReportByClassifyName(classifyName)
  151. if err != nil {
  152. response.Fail("获取报告详情失败"+err.Error(), c)
  153. return
  154. }
  155. resp := &pcModels.DetailBannerResp{
  156. ReportId: reportItem.ReportId,
  157. Stage: reportItem.Stage,
  158. ImgUrl: "",
  159. }
  160. bannerResp = resp
  161. }
  162. response.OkData("查询成功", bannerResp, c)
  163. return
  164. }
  165. // Recommend 报告详情页更多推荐
  166. func Recommend(c *gin.Context) {
  167. reqReportId := c.DefaultQuery("reportId", "")
  168. classifyName := c.DefaultQuery("classify_name_first", "")
  169. if reqReportId == "" {
  170. response.Fail("请输入二级分类标识", c)
  171. return
  172. }
  173. reportId, err := strconv.Atoi(reqReportId)
  174. if err != nil {
  175. response.Fail("报告ID格式有误", c)
  176. return
  177. }
  178. var recommendResp []*pcModels.RecommendResp
  179. if classifyName == "周报" || classifyName == "晨报" {
  180. recommendList, err := report_chapter.GetWeekRecommendList(reportId, classifyName)
  181. if err != nil {
  182. response.Fail("获取报告详情失败"+err.Error(), c)
  183. return
  184. }
  185. for _, chapter := range recommendList {
  186. resp := &pcModels.RecommendResp{
  187. ReportId: chapter.ReportId,
  188. ReportChapterID: chapter.ReportChapterId,
  189. Title: chapter.Title,
  190. Stage: chapter.Stage,
  191. ClassifyNameFirst: chapter.ClassifyNameFirst,
  192. ClassifySecondFirst: "",
  193. }
  194. recommendResp = append(recommendResp, resp)
  195. }
  196. } else {
  197. reportInfo, err := report.GetByReportId(reportId)
  198. if err != nil {
  199. response.Fail("报告查询出错", c)
  200. return
  201. }
  202. if reportInfo.Id == 0 {
  203. response.Fail("报告不存在", c)
  204. return
  205. }
  206. if reportInfo.State != 2 {
  207. response.Fail("报告未发布", c)
  208. return
  209. }
  210. reportType := 0
  211. if reportInfo.ClassifyNameFirst == "权益研报" {
  212. reportType = 1
  213. } else {
  214. reportType = 2
  215. }
  216. recommendList, err := pcModels.GetRecommendList(reportId, reportType, reportInfo.ClassifyIdSecond)
  217. if err != nil {
  218. response.Fail("获取报告详情失败"+err.Error(), c)
  219. return
  220. }
  221. for _, chapter := range recommendList {
  222. resp := &pcModels.RecommendResp{
  223. ReportId: chapter.Id,
  224. ReportChapterID: 0,
  225. Title: chapter.Title,
  226. Stage: chapter.Stage,
  227. ClassifyNameFirst: chapter.ClassifyNameFirst,
  228. ClassifySecondFirst: chapter.ClassifyNameSecond,
  229. }
  230. recommendResp = append(recommendResp, resp)
  231. }
  232. }
  233. response.OkData("查询成功", recommendResp, c)
  234. return
  235. }
  236. // ClassifyFirstList Ficc 菜单
  237. func ClassifyFirstList(c *gin.Context) {
  238. userinfo := userService.GetInfoByClaims(c)
  239. classList, err := pc.GetClassifyFirstList(userinfo)
  240. if err != nil {
  241. response.Fail(err.Error(), c)
  242. return
  243. }
  244. response.OkData("查询成功", classList, c)
  245. return
  246. }
  247. // CustomerComment 客户评价
  248. func CustomerComment(c *gin.Context) {
  249. lists, err := customer_comment.GetCustomerComment()
  250. if err != nil {
  251. response.Fail(err.Error(), c)
  252. return
  253. }
  254. response.OkData("查询成功", lists, c)
  255. return
  256. }
  257. // GetSunCode 获取太阳码
  258. // @Tags 公共模块
  259. // @Summary 获取分享海报
  260. // @Description 获取分享海报
  261. // @Param request body services.SunCodeReq true "type json string"
  262. // @Success 200 {object} string "获取成功"
  263. // @failure 400 {string} string "获取失败"
  264. // @Router /pc/getSunCode [post]
  265. func GetSunCode(c *gin.Context) {
  266. var req services.SunCodeReq
  267. if c.ShouldBind(&req) != nil {
  268. response.Fail("参数异常", c)
  269. return
  270. }
  271. var sunCodeUrl string
  272. //先查,查不到再去生成上传
  273. item, err := yb_pc_suncode.GetYbPcSunCode(req.CodeScene, req.CodePage)
  274. sunCodeUrl = item.SuncodeURL
  275. if err != nil && err != utils.ErrNoRow {
  276. response.Fail(err.Error(), c)
  277. return
  278. }
  279. if sunCodeUrl == "" {
  280. sunCodeUrl, err = services.PcCreateAndUploadSunCode(req.CodeScene, req.CodePage)
  281. if err != nil {
  282. response.Fail(err.Error(), c)
  283. return
  284. }
  285. }
  286. response.OkData("查询成功", sunCodeUrl, c)
  287. return
  288. }