12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package controllers
- import (
- "errors"
- "hongze/hongze_api/models"
- "hongze/hongze_api/services/alarm_msg"
- "hongze/hongze_api/utils"
- "html"
- "time"
- )
- //报告分享
- type EnglishReportShareController struct {
- BaseCommonController
- }
- // @Title 英文研报-分享详情
- // @Description 英文研报-分享详情
- // @Param ReportCode query string true "报告唯一编码"
- // @Param ShareEmail query int false "推送的邮箱ID"
- // @Success 200 {object} models.ReportShareDetailResp
- // @router /share/detail [get]
- func (this *EnglishReportShareController) EnglishReportDetail() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- reportCode := this.GetString("ReportCode")
- if reportCode == "" {
- br.Msg = "参数错误"
- br.ErrMsg = "参数错误,reportCode 为空"
- return
- }
- report, err := models.GetEnglishReportByCode(reportCode)
- if err != nil {
- br.Msg = "该报告已删除"
- br.ErrMsg = "获取报告详情失败,Err:" + err.Error()
- return
- }
- err = models.UpdateEnglishReportCounts(reportCode)
- if err != nil {
- br.Msg = "更新失败"
- br.ErrMsg = "更新失败,Err:" + err.Error()
- return
- }
- report.ContentSub = html.UnescapeString(report.ContentSub)
- report.Content = html.UnescapeString(report.Content)
- // 记录邮箱
- shareEmail, _ := this.GetInt("ShareEmail", 0)
- if shareEmail != 0 {
- go func() {
- var errMsg error
- defer func() {
- if errMsg != nil {
- alarm_msg.SendAlarmMsg(utils.APPNAME+"更新英文报告邮箱PV失败, Err: "+errMsg.Error(), 2)
- }
- }()
- userEmail, e := models.GetEnglishReportEmailById(shareEmail)
- if e != nil && e.Error() != utils.ErrNoRow() {
- errMsg = errors.New("获取客户邮箱信息失败, Err:" + e.Error())
- return
- }
- if userEmail == nil {
- return
- }
- // 更新报告邮箱pv(冗余)
- if e = models.UpdateEnglishReportEmailCounts(reportCode); e != nil {
- errMsg = errors.New("更新报告邮箱PV失败, Err:" + e.Error())
- return
- }
- // 记录邮箱PV
- pv := &models.EnglishReportEmailPV{
- ReportId: report.Id,
- EmailId: userEmail.Id,
- CreateTime: time.Now().Local(),
- }
- if e = pv.Create(); e != nil {
- errMsg = errors.New("新增邮箱PV失败, Err: " + e.Error())
- return
- }
- }()
- }
- resp := new(models.EnglishReportShareDetailResp)
- resp.Report = report
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
|