fix: 修改生成竞品报告文件名的逻辑
This commit is contained in:
parent
6f5c7f219c
commit
e90d298f98
@ -143,9 +143,8 @@ func CreateCompetitiveReportCore(ctx *gin.Context, req *cast.CreateCompetitiveRe
|
|||||||
|
|
||||||
zap.L().Info("解析成功", zap.Any("competitorReportData", competitorReportData))
|
zap.L().Info("解析成功", zap.Any("competitorReportData", competitorReportData))
|
||||||
|
|
||||||
today := time.Now().Format("20060102")
|
// 生成PDF文件名,使用报告标题命名
|
||||||
timestamp := time.Now().UnixMicro()
|
pdfFileName := generateReportFileName(req.Title, req.ArtistName) + ".pdf"
|
||||||
pdfFileName := fmt.Sprintf("%s%s老师的竞品报告%d.pdf", today, req.ArtistName, timestamp)
|
|
||||||
pdfFilePath := "./runtime/report_pdf/" + pdfFileName
|
pdfFilePath := "./runtime/report_pdf/" + pdfFileName
|
||||||
|
|
||||||
_, err = utils.CheckDirPath("./runtime/report_pdf/", true)
|
_, err = utils.CheckDirPath("./runtime/report_pdf/", true)
|
||||||
@ -501,10 +500,8 @@ func ImportCompetitiveReportBatch(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 生成PDF并上传
|
// 生成PDF并上传
|
||||||
// 生成临时PDF文件路径
|
// 生成临时PDF文件路径,使用报告标题命名
|
||||||
today := time.Now().Format("20060102")
|
pdfFileName := generateReportFileName(temp.Title, temp.ArtistName) + ".pdf"
|
||||||
timestamp := time.Now().UnixMicro()
|
|
||||||
pdfFileName := fmt.Sprintf("%s%s老师的竞品报告%d.pdf", today, temp.ArtistName, timestamp)
|
|
||||||
pdfFilePath := "./runtime/report_pdf/" + pdfFileName
|
pdfFilePath := "./runtime/report_pdf/" + pdfFileName
|
||||||
|
|
||||||
// 确保目录存在
|
// 确保目录存在
|
||||||
@ -1317,6 +1314,36 @@ func checkAndReuploadImageForReport(imageUrl string) (string, error) {
|
|||||||
return compressUrl, nil
|
return compressUrl, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// generateReportFileName 生成竞品报告PDF文件名
|
||||||
|
// 如果有标题则使用标题,否则使用默认格式(日期+老师+时间戳)
|
||||||
|
func generateReportFileName(title, artistName string) string {
|
||||||
|
// 如果有标题,使用标题命名
|
||||||
|
if title != "" {
|
||||||
|
// 替换标题中的特殊字符为合法字符
|
||||||
|
fileName := strings.NewReplacer(
|
||||||
|
"/", "",
|
||||||
|
"\\", "",
|
||||||
|
":", "",
|
||||||
|
"*", "",
|
||||||
|
"?", "",
|
||||||
|
"\"", "",
|
||||||
|
"<", "",
|
||||||
|
">", "",
|
||||||
|
"|", "",
|
||||||
|
" ", "_",
|
||||||
|
).Replace(title)
|
||||||
|
// 限制文件名长度,避免过长
|
||||||
|
if len(fileName) > 100 {
|
||||||
|
fileName = fileName[:100]
|
||||||
|
}
|
||||||
|
return fileName
|
||||||
|
}
|
||||||
|
// 没有标题时使用默认格式
|
||||||
|
today := time.Now().Format("20060102")
|
||||||
|
timestamp := time.Now().UnixMicro()
|
||||||
|
return fmt.Sprintf("%s%s老师的竞品报告%d", today, artistName, timestamp)
|
||||||
|
}
|
||||||
|
|
||||||
// truncateCompetitorReportData 截断竞品报告数据中超长的字段
|
// truncateCompetitorReportData 截断竞品报告数据中超长的字段
|
||||||
// 字段长度要求参考 AI 生成竞品报告的限制
|
// 字段长度要求参考 AI 生成竞品报告的限制
|
||||||
func truncateCompetitorReportData(data utils.CompetitorReportData) utils.CompetitorReportData {
|
func truncateCompetitorReportData(data utils.CompetitorReportData) utils.CompetitorReportData {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user