|
@@ -1506,3 +1506,108 @@ func (this *SmartReportController) CancelApprove() {
|
|
|
br.Success = true
|
|
|
br.Msg = "操作成功"
|
|
|
}
|
|
|
+
|
|
|
+// GetReportPdfUrl
|
|
|
+// @Title 研报生成pdf和图片
|
|
|
+// @Description 研报生成pdf和图片接口
|
|
|
+// @Success 200 {object} smart_report.SmartReportListResp
|
|
|
+// @router /get_pdf_url [post]
|
|
|
+func (this *SmartReportController) GetReportPdfUrl() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var req models.GetReportPdfUrlReq
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = "参数解析失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.ReportUrl == "" {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = "报告链接有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.Type != 1 && req.Type != 2 {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = "获取资源类型有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ filePath := `./static/` + req.ReportCode
|
|
|
+ var err error
|
|
|
+ if req.Type == 1 {
|
|
|
+ filePath += ".pdf"
|
|
|
+ err = services.ReportToPdf(req.ReportUrl, filePath)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "转换失败"
|
|
|
+ br.ErrMsg = "报告转PDF失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ filePath += ".jpeg"
|
|
|
+ err = services.ReportToJpeg(req.ReportUrl, filePath+".jpeg")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "转换失败"
|
|
|
+ br.ErrMsg = "报告转图片失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ file, err := os.Open(filePath)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("Error:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ ext := path.Ext(file.Name())
|
|
|
+ //dateDir := time.Now().Format("20060102")
|
|
|
+ //uploadDir := utils.STATIC_DIR + "hongze/" + dateDir
|
|
|
+ //err = os.MkdirAll(uploadDir, utils.DIR_MOD)
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "存储目录创建失败"
|
|
|
+ // br.ErrMsg = "存储目录创建失败,Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ randStr := utils.GetRandStringNoSpecialChar(28)
|
|
|
+ fileName := randStr + ext
|
|
|
+ //fpath := utils.STATIC_DIR + "/" + fileName
|
|
|
+ defer file.Close() //关闭上传文件
|
|
|
+
|
|
|
+ resourceUrl := ``
|
|
|
+ ossClient := services.NewOssClient()
|
|
|
+ if ossClient == nil {
|
|
|
+ br.Msg = "上传失败"
|
|
|
+ br.ErrMsg = "初始化OSS服务失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resourceUrl, err = ossClient.UploadFile(fileName, filePath, "")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "文件上传失败"
|
|
|
+ br.ErrMsg = "文件上传失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ _ = os.Remove(filePath)
|
|
|
+ }()
|
|
|
+
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Data = resourceUrl
|
|
|
+ br.Msg = "操作成功"
|
|
|
+}
|