fix: 固定使用模板生成报告
This commit is contained in:
parent
7cc03c02fa
commit
51f82425c5
@ -111,11 +111,10 @@ func CreateCompetitiveReportCore(ctx *gin.Context, req *cast.CreateCompetitiveRe
|
||||
}
|
||||
req.BundleOrderUuid = resp1.OrderUUID
|
||||
|
||||
// 验证:报告内容、AI生成的JSON数据和图片不能同时为空
|
||||
// 检查 reportData 是否有数据
|
||||
// 验证:必须传入 json_data(使用模板方式生成PDF)
|
||||
hasReportData := reportData.OverallSummary != "" || reportData.HighlightAnalysis.Summary != ""
|
||||
if req.ReportContent == "" && !hasReportData && req.ImageUrl == "" {
|
||||
return nil, errors.New("报告内容、AI数据和图片不能同时为空")
|
||||
if !hasReportData {
|
||||
return nil, errors.New("请传入json_data参数")
|
||||
}
|
||||
|
||||
if req.ImageUrl != "" {
|
||||
@ -127,10 +126,7 @@ func CreateCompetitiveReportCore(ctx *gin.Context, req *cast.CreateCompetitiveRe
|
||||
req.ImageUrl = newImageUrl
|
||||
}
|
||||
|
||||
// 判断使用哪种方式生成PDF
|
||||
// 检查 reportData 是否有数据(通过判断 OverallSummary 是否为空)
|
||||
if reportData.OverallSummary != "" || reportData.HighlightAnalysis.Summary != "" {
|
||||
// 使用 GenerateCompetitorReportPDF 生成PDF
|
||||
// 使用模板方式生成PDF
|
||||
zap.L().Info("reportData内容", zap.Any("reportData", reportData))
|
||||
|
||||
// 直接使用传入的结构体数据
|
||||
@ -179,44 +175,6 @@ func CreateCompetitiveReportCore(ctx *gin.Context, req *cast.CreateCompetitiveRe
|
||||
return nil, errors.New("上传PDF失败")
|
||||
}
|
||||
req.PdfUrl = pdfUrl
|
||||
} else if req.ReportContent != "" {
|
||||
// 使用原有的 GeneratePDF 生成PDF
|
||||
today := time.Now().Format("20060102")
|
||||
timestamp := time.Now().UnixMicro()
|
||||
pdfFileName := fmt.Sprintf("%s%s老师的竞品报告%d.pdf", today, req.ArtistName, timestamp)
|
||||
pdfFilePath := "./runtime/report_pdf/" + pdfFileName
|
||||
|
||||
_, err = utils.CheckDirPath("./runtime/report_pdf/", true)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("创建PDF目录失败: %v", err)
|
||||
}
|
||||
|
||||
fontPath := "./data/simfang.ttf"
|
||||
err = utils.GeneratePDF(req.ReportContent, req.ImageUrl, pdfFilePath, fontPath)
|
||||
if err != nil {
|
||||
zap.L().Error("生成PDF失败", zap.Error(err))
|
||||
return nil, errors.New("生成PDF失败")
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if _, err := os.Stat(pdfFilePath); err == nil {
|
||||
if err := os.Remove(pdfFilePath); err != nil {
|
||||
zap.L().Warn("删除临时PDF文件失败", zap.String("path", pdfFilePath), zap.Error(err))
|
||||
} else {
|
||||
zap.L().Info("删除临时PDF文件成功", zap.String("path", pdfFilePath))
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
pdfUrl, uploadErr := upload.PutBos(pdfFilePath, upload.PdfType, true)
|
||||
if uploadErr != nil {
|
||||
zap.L().Error("上传PDF失败: %v", zap.Error(uploadErr))
|
||||
return nil, errors.New("上传PDF失败")
|
||||
}
|
||||
req.PdfUrl = pdfUrl
|
||||
} else {
|
||||
req.PdfUrl = req.ImageUrl
|
||||
}
|
||||
|
||||
resp, err := service.CastProvider.CreateCompetitiveReport(newCtx, req)
|
||||
if err != nil {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user