pc.go 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  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. ClassifyNameFirst: chapterItem.ClassifyNameFirst,
  133. Stage: chapterItem.Stage,
  134. ImgUrl: "",
  135. Type: "报告合集",
  136. }
  137. bannerResp = resp
  138. } else {
  139. reportInfo, err := report.GetByReportId(reportId)
  140. if err != nil {
  141. response.Fail("报告查询出错", c)
  142. return
  143. }
  144. if reportInfo.Id == 0 {
  145. response.Fail("报告不存在", c)
  146. return
  147. }
  148. if reportInfo.State != 2 {
  149. response.Fail("报告未发布", c)
  150. return
  151. }
  152. reportItem, err := report.GetLatestReportByClassifyName(classifyName)
  153. if err != nil {
  154. response.Fail("获取报告详情失败"+err.Error(), c)
  155. return
  156. }
  157. resp := &pcModels.DetailBannerResp{
  158. ReportId: reportItem.ReportId,
  159. Stage: reportItem.Stage,
  160. VipTitle: reportItem.VipTitle,
  161. Author: reportItem.Author,
  162. ImgUrl: "",
  163. ClassifyNameFirst: reportItem.ClassifyNameFirst,
  164. ClassifyIdFirst: reportItem.ClassifyIdFirst,
  165. ClassifyNameSecond: reportItem.ClassifyNameSecond,
  166. ClassifyIdSecond: reportItem.ClassifyIdSecond,
  167. }
  168. if classifyName == "月报" || classifyName == "双周报" || classifyName == "会议纪要" || classifyName == "大事点评" || classifyName == "年报合集" {
  169. resp.Type = "报告合集"
  170. } else {
  171. resp.Type = "专栏详情"
  172. }
  173. bannerResp = resp
  174. }
  175. response.OkData("查询成功", bannerResp, c)
  176. return
  177. }
  178. // Recommend 报告详情页更多推荐
  179. func Recommend(c *gin.Context) {
  180. reqReportId := c.DefaultQuery("reportId", "")
  181. classifyName := c.DefaultQuery("classify_name_first", "")
  182. if reqReportId == "" {
  183. response.Fail("请输入二级分类标识", c)
  184. return
  185. }
  186. reportId, err := strconv.Atoi(reqReportId)
  187. if err != nil {
  188. response.Fail("报告ID格式有误", c)
  189. return
  190. }
  191. var recommendResp []*pcModels.RecommendResp
  192. if classifyName == "周报" || classifyName == "晨报" {
  193. recommendList, err := report_chapter.GetWeekRecommendList(reportId, classifyName)
  194. if err != nil {
  195. response.Fail("获取报告详情失败"+err.Error(), c)
  196. return
  197. }
  198. for _, chapter := range recommendList {
  199. resp := &pcModels.RecommendResp{
  200. ReportId: chapter.ReportId,
  201. ReportChapterID: chapter.ReportChapterId,
  202. Title: chapter.Title,
  203. Stage: chapter.Stage,
  204. ClassifyNameFirst: chapter.ClassifyNameFirst,
  205. ClassifySecondFirst: "",
  206. }
  207. recommendResp = append(recommendResp, resp)
  208. }
  209. } else {
  210. reportInfo, err := report.GetByReportId(reportId)
  211. if err != nil {
  212. response.Fail("报告查询出错", c)
  213. return
  214. }
  215. if reportInfo.Id == 0 {
  216. response.Fail("报告不存在", c)
  217. return
  218. }
  219. if reportInfo.State != 2 {
  220. response.Fail("报告未发布", c)
  221. return
  222. }
  223. reportType := 0
  224. if reportInfo.ClassifyNameFirst == "权益研报" {
  225. reportType = 1
  226. } else {
  227. reportType = 2
  228. }
  229. recommendList, err := pcModels.GetRecommendList(reportId, reportType, reportInfo.ClassifyIdSecond)
  230. if err != nil {
  231. response.Fail("获取报告详情失败"+err.Error(), c)
  232. return
  233. }
  234. for _, chapter := range recommendList {
  235. resp := &pcModels.RecommendResp{
  236. ReportId: chapter.Id,
  237. ReportChapterID: 0,
  238. Title: chapter.Title,
  239. Stage: chapter.Stage,
  240. ClassifyNameFirst: chapter.ClassifyNameFirst,
  241. ClassifySecondFirst: chapter.ClassifyNameSecond,
  242. }
  243. recommendResp = append(recommendResp, resp)
  244. }
  245. }
  246. response.OkData("查询成功", recommendResp, c)
  247. return
  248. }
  249. // ClassifyFirstList Ficc 菜单
  250. func ClassifyFirstList(c *gin.Context) {
  251. userinfo := userService.GetInfoByClaims(c)
  252. classList, err := pc.GetClassifyFirstList(userinfo)
  253. if err != nil {
  254. response.Fail(err.Error(), c)
  255. return
  256. }
  257. response.OkData("查询成功", classList, c)
  258. return
  259. }
  260. // CustomerComment 客户评价
  261. func CustomerComment(c *gin.Context) {
  262. lists, err := customer_comment.GetCustomerComment()
  263. if err != nil {
  264. response.Fail(err.Error(), c)
  265. return
  266. }
  267. response.OkData("查询成功", lists, c)
  268. return
  269. }
  270. // GetSunCode 获取太阳码
  271. // @Tags 公共模块
  272. // @Summary 获取分享海报
  273. // @Description 获取分享海报
  274. // @Param request body services.SunCodeReq true "type json string"
  275. // @Success 200 {object} string "获取成功"
  276. // @failure 400 {string} string "获取失败"
  277. // @Router /pc/getSunCode [post]
  278. func GetSunCode(c *gin.Context) {
  279. var req services.SunCodeReq
  280. if c.ShouldBind(&req) != nil {
  281. response.Fail("参数异常", c)
  282. return
  283. }
  284. var sunCodeUrl string
  285. //先查,查不到再去生成上传
  286. item, err := yb_pc_suncode.GetYbPcSunCode(req.CodeScene, req.CodePage)
  287. sunCodeUrl = item.SuncodeURL
  288. if err != nil && err != utils.ErrNoRow {
  289. response.Fail(err.Error(), c)
  290. return
  291. }
  292. if sunCodeUrl == "" {
  293. sunCodeUrl, err = services.PcCreateAndUploadSunCode(req.CodeScene, req.CodePage)
  294. if err != nil {
  295. response.Fail(err.Error(), c)
  296. return
  297. }
  298. }
  299. response.OkData("查询成功", sunCodeUrl, c)
  300. return
  301. }