package controllers import ( "encoding/json" "eta/eta_data_analysis/models" "eta/eta_data_analysis/services/pdf" "fmt" "github.com/beego/beego/v2/server/web" ) type PdfController struct { web.Controller } // GeneratePdf // @Title 生成PDF // @Description 合同套餐列表 // @Param DayFlag query int false // @Param WeekFlag query int false // @Success 200 {object} company.GetUnusualRenewListGroupMonthResp // @router /generate_pdf [post] func (pdfcontrl *PdfController) GeneratePdf() { br := new(models.BaseResponse).Init() defer func() { pdfcontrl.Data["json"] = br _ = pdfcontrl.ServeJSON() }() var req PdfRequest err := json.Unmarshal(pdfcontrl.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } var data PdfResponse var pdfUrl, jpgUrl, mobilePdfUrl, mobileJpgUrl string if req.FreeLayout { pdfUrl, jpgUrl, err = pdf.Report2pdfAndJpeg(req.ReportUrl, req.ReportId, pdf.FreeLayout) if err != nil { br.Msg = "生成PDF失败!" br.ErrMsg = "生成PDF失败,Err:" + err.Error() return } data.PdfUrl = pdfUrl data.JpgUrl = jpgUrl } else { pdfUrl, jpgUrl, err = pdf.Report2pdfAndJpeg(req.ReportUrl, req.ReportId, pdf.PC) if err != nil { br.Msg = "生成PDF失败!" br.ErrMsg = "生成PDF失败,Err:" + err.Error() return } mobilePdfUrl, mobileJpgUrl, err = pdf.Report2pdfAndJpeg(req.ReportUrl, req.ReportId, pdf.Mobile) if err != nil { br.Msg = "生成PDF失败!" br.ErrMsg = "生成PDF失败,Err:" + err.Error() return } data.PdfUrl = pdfUrl data.JpgUrl = jpgUrl data.MobilePdfUrl = mobilePdfUrl data.MobileJpgUrl = mobileJpgUrl } str := fmt.Sprintf("%v", data) fmt.Println(str) br.Data = data br.Ret = 200 br.Success = true br.Msg = "生成PDF成功" } type PdfRequest struct { ReportUrl string `json:"ReportUrl"` ReportId int `json:"ReportId"` FreeLayout bool `json:"FreeLayout"` } type PdfResponse struct { PdfUrl string `json:"PdfUrl"` JpgUrl string `json:"JpgUrl"` MobilePdfUrl string `json:"MobilePdfUrl"` MobileJpgUrl string `json:"MobileJpgUrl"` }