smart_report.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package controllers
  2. import (
  3. "eta/eta_report/models"
  4. "eta/eta_report/utils"
  5. "fmt"
  6. )
  7. // SmartReportController 智能研报
  8. type SmartReportController struct {
  9. BaseCommonController
  10. }
  11. // Detail
  12. // @Title 报告详情
  13. // @Description 报告详情
  14. // @Param ReportCode query string true "报告唯一编码"
  15. // @Success 200 {object} models.SmartReportShareDetailResp
  16. // @router /share/detail [get]
  17. func (this *SmartReportController) Detail() {
  18. br := new(models.BaseResponse).Init()
  19. defer func() {
  20. if br.ErrMsg == "" {
  21. br.IsSendEmail = false
  22. }
  23. this.Data["json"] = br
  24. this.ServeJSON()
  25. }()
  26. reportCode := this.GetString("ReportCode")
  27. if reportCode == "" {
  28. br.Msg = "获取失败"
  29. br.ErrMsg = fmt.Sprintf("参数有误, ReportCode: %s", reportCode)
  30. return
  31. }
  32. resp := new(models.SmartReportShareDetailResp)
  33. reportOB := new(models.SmartReport)
  34. cond := ` AND report_code = ?`
  35. pars := make([]interface{}, 0)
  36. pars = append(pars, reportCode)
  37. item, e := reportOB.GetItemByCondition(cond, pars)
  38. if e != nil {
  39. if e.Error() == utils.ErrNoRow() {
  40. br.Msg = "报告不存在, 请刷新页面"
  41. return
  42. }
  43. br.Msg = "获取失败"
  44. br.ErrMsg = "获取报告失败, Err: " + e.Error()
  45. return
  46. }
  47. resp.Report = models.FormatSmartReport2Item(item)
  48. if resp.Report.HeadResourceId > 0 {
  49. headResource, err := models.GetResourceItemById(resp.Report.HeadResourceId)
  50. if err != nil {
  51. br.Msg = "操作失败"
  52. br.ErrMsg = "获取资源库版头失败, Err: " + e.Error()
  53. return
  54. }
  55. resp.Report.HeadImg = headResource.ImgUrl
  56. resp.Report.HeadStyle = headResource.Style
  57. }
  58. if resp.Report.EndResourceId > 0 {
  59. endResource, err := models.GetResourceItemById(resp.Report.EndResourceId)
  60. if err != nil {
  61. br.Msg = "操作失败"
  62. br.ErrMsg = "获取资源库版头失败, Err: " + e.Error()
  63. return
  64. }
  65. resp.Report.EndImg = endResource.ImgUrl
  66. resp.Report.EndStyle = endResource.Style
  67. }
  68. // 免责声明
  69. conf, e := models.GetBusinessConf()
  70. if e != nil {
  71. br.Msg = "获取失败"
  72. br.ErrMsg = "获取免责声明失败, Err: " + e.Error()
  73. return
  74. }
  75. if conf[models.BusinessConfDisclaimer] != "" {
  76. resp.Disclaimer = conf[models.BusinessConfDisclaimer]
  77. }
  78. // 研报分享抬头
  79. if v, ok := conf[models.BusinessConfH5ShareName]; ok {
  80. resp.H5ShareName = v
  81. }
  82. if v, ok := conf[models.BusinessConfH5ReportShareImg]; ok {
  83. resp.H5ReportShareImg = v
  84. }
  85. // 更新pv
  86. if e = models.UpdateSmartReportPv(item.SmartReportId); e != nil {
  87. br.Msg = "获取失败"
  88. br.ErrMsg = "更新报告pv失败, Err: " + e.Error()
  89. return
  90. }
  91. br.Ret = 200
  92. br.Success = true
  93. br.Msg = "获取成功"
  94. br.Data = resp
  95. }