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 }