english_report.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package controllers
  2. import (
  3. "errors"
  4. "hongze/hongze_api/models"
  5. "hongze/hongze_api/services/alarm_msg"
  6. "hongze/hongze_api/utils"
  7. "html"
  8. "time"
  9. )
  10. //报告分享
  11. type EnglishReportShareController struct {
  12. BaseCommonController
  13. }
  14. // @Title 英文研报-分享详情
  15. // @Description 英文研报-分享详情
  16. // @Param ReportCode query string true "报告唯一编码"
  17. // @Param ShareEmail query int false "推送的邮箱ID"
  18. // @Success 200 {object} models.ReportShareDetailResp
  19. // @router /share/detail [get]
  20. func (this *EnglishReportShareController) EnglishReportDetail() {
  21. br := new(models.BaseResponse).Init()
  22. defer func() {
  23. this.Data["json"] = br
  24. this.ServeJSON()
  25. }()
  26. reportCode := this.GetString("ReportCode")
  27. if reportCode == "" {
  28. br.Msg = "参数错误"
  29. br.ErrMsg = "参数错误,reportCode 为空"
  30. return
  31. }
  32. report, err := models.GetEnglishReportByCode(reportCode)
  33. if err != nil {
  34. br.Msg = "该报告已删除"
  35. br.ErrMsg = "获取报告详情失败,Err:" + err.Error()
  36. return
  37. }
  38. err = models.UpdateEnglishReportCounts(reportCode)
  39. if err != nil {
  40. br.Msg = "更新失败"
  41. br.ErrMsg = "更新失败,Err:" + err.Error()
  42. return
  43. }
  44. report.ContentSub = html.UnescapeString(report.ContentSub)
  45. report.Content = html.UnescapeString(report.Content)
  46. // 记录邮箱
  47. shareEmail, _ := this.GetInt("ShareEmail", 0)
  48. if shareEmail != 0 {
  49. go func() {
  50. var errMsg error
  51. defer func() {
  52. if errMsg != nil {
  53. alarm_msg.SendAlarmMsg(utils.APPNAME+"更新英文报告邮箱PV失败, Err: "+errMsg.Error(), 2)
  54. }
  55. }()
  56. userEmail, e := models.GetEnglishReportEmailById(shareEmail)
  57. if e != nil && e.Error() != utils.ErrNoRow() {
  58. errMsg = errors.New("获取客户邮箱信息失败, Err:" + e.Error())
  59. return
  60. }
  61. if userEmail == nil {
  62. return
  63. }
  64. // 更新报告邮箱pv(冗余)
  65. if e = models.UpdateEnglishReportEmailCounts(reportCode); e != nil {
  66. errMsg = errors.New("更新报告邮箱PV失败, Err:" + e.Error())
  67. return
  68. }
  69. // 记录邮箱PV
  70. pv := &models.EnglishReportEmailPV{
  71. ReportId: report.Id,
  72. EmailId: userEmail.Id,
  73. CreateTime: time.Now().Local(),
  74. }
  75. if e = pv.Create(); e != nil {
  76. errMsg = errors.New("新增邮箱PV失败, Err: " + e.Error())
  77. return
  78. }
  79. }()
  80. }
  81. resp := new(models.EnglishReportShareDetailResp)
  82. resp.Report = report
  83. br.Ret = 200
  84. br.Success = true
  85. br.Msg = "获取成功"
  86. br.Data = resp
  87. }