smart_report.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. // 免责声明
  49. conf, e := models.GetBusinessConf()
  50. if e != nil {
  51. br.Msg = "获取失败"
  52. br.ErrMsg = "获取免责声明失败, Err: " + e.Error()
  53. return
  54. }
  55. if conf[models.BusinessConfDisclaimer] != "" {
  56. resp.Disclaimer = conf[models.BusinessConfDisclaimer]
  57. }
  58. // 研报分享抬头
  59. if v, ok := conf[models.BusinessConfH5ShareName]; ok {
  60. resp.H5ShareName = v
  61. }
  62. if v, ok := conf[models.BusinessConfH5ReportShareImg]; ok {
  63. resp.H5ReportShareImg = v
  64. }
  65. // 更新pv
  66. if e = models.UpdateSmartReportPv(item.SmartReportId); e != nil {
  67. br.Msg = "获取失败"
  68. br.ErrMsg = "更新报告pv失败, Err: " + e.Error()
  69. return
  70. }
  71. br.Ret = 200
  72. br.Success = true
  73. br.Msg = "获取成功"
  74. br.Data = resp
  75. }