From 3318bd45fca0bc4e31688480f5425630551bcfa9 Mon Sep 17 00:00:00 2001 From: cjy Date: Thu, 8 Jan 2026 14:07:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=86=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=A0=87=E7=AD=BE=E5=90=8E=E7=9A=84=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=B0=E8=AF=B7=E6=B1=82=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/cast/work.go | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/pkg/service/cast/work.go b/pkg/service/cast/work.go index 76e2b76..6637b1f 100644 --- a/pkg/service/cast/work.go +++ b/pkg/service/cast/work.go @@ -123,9 +123,12 @@ func UpdateWorkImageCore(ctx *gin.Context, req *cast.UpdateWorkImageReq) (*cast. // return nil, err //} // 处理内容中的标签:提取、验证并批量导入,以及自动生成标签 - if err = processContentAndAutoTags(ctx, req.Content); err != nil { + content, err := processContentAndAutoTags(ctx, req.Content) + if err != nil { return nil, err } + // 将自动生成标签后的内容更新到请求中 + req.Content = content newCtx := NewCtxWithUserInfo(ctx) req.Source = 1 resp, err := service.CastProvider.UpdateWorkImage(newCtx, req) @@ -220,17 +223,17 @@ func processContentTags(ctx *gin.Context, content string) error { // processContentAndAutoTags 处理内容标签并自动生成标签 // 该函数统一处理内容中的标签提取、验证和自动生成标签的逻辑 -func processContentAndAutoTags(ctx *gin.Context, content string) error { +func processContentAndAutoTags(ctx *gin.Context, content string) (string, error) { // 如果内容为空,直接返回 if content == "" { - return nil + return "", nil } // 处理内容中的标签:提取、验证并批量导入 if err := processContentTags(ctx, content); err != nil { - return err + return content, err } // 处理完内容标签后,自动生成标签并存入数据库 - _, newTags, needMore, err := GenerateAutoHashtags( + resp, newTags, needMore, err := GenerateAutoHashtags( context.Background(), content, 0, // max 为0时自动计算 @@ -238,14 +241,14 @@ func processContentAndAutoTags(ctx *gin.Context, content string) error { "", // language 使用默认值 ) if err != nil { - return err + return content, err } else if needMore && len(newTags) > 0 { if saveErr := SaveTagsToDatabase(ctx, newTags, 4); saveErr != nil { zap.L().Error("processContentAndAutoTags SaveTagsToDatabase failed", zap.Error(saveErr)) - return errors.New("自动生成标签保存到数据库失败") + return content, errors.New("自动生成标签保存到数据库失败") } } - return nil + return resp.Post, nil } // UpdateWorkVideoCore 更新作品视频的核心逻辑,可以被其他函数复用 @@ -328,9 +331,12 @@ func UpdateWorkVideoCore(ctx *gin.Context, req *cast.UpdateWorkVideoReq) (*cast. req.ArtistPhoneAreaCode = infoResp.TelAreaCode req.ArtistSubNum = infoResp.SubNum // 处理内容中的标签:提取、验证并批量导入,以及自动生成标签 - if err = processContentAndAutoTags(ctx, req.Content); err != nil { + content, err := processContentAndAutoTags(ctx, req.Content) + if err != nil { return nil, err } + // 将自动生成标签后的内容更新到请求中 + req.Content = content newCtx := NewCtxWithUserInfo(ctx) req.Source = 1 resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req)