gpt
This commit is contained in:
@@ -15,6 +15,7 @@ import (
|
||||
"git.lzcwy.cn/zhengchiliu/zt-closet-backend/internal/redismodel"
|
||||
"git.lzcwy.cn/zhengchiliu/zt-closet-backend/pkg/errcode"
|
||||
"git.lzcwy.cn/zhengchiliu/zt-closet-backend/pkg/tokenhub"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// AIRecommendService AI 穿搭推荐业务服务。
|
||||
@@ -112,19 +113,18 @@ func (s *AIRecommendService) Create(ctx context.Context, userID int64, request *
|
||||
AuditStatus: OutfitAuditPending,
|
||||
Status: OutfitStatusUnsaved,
|
||||
}
|
||||
if err := s.outfitDao.OutfitCreate(ctx, outfit); err != nil {
|
||||
return nil, fail(errcode.OutfitCreateFailed, "穿搭落库失败")
|
||||
}
|
||||
|
||||
clothesIDs := result.GetClothesIDs()
|
||||
items := make([]mysqlmodel.OutfitItem, 0, len(clothesIDs))
|
||||
for _, cid := range clothesIDs {
|
||||
items = append(items, mysqlmodel.OutfitItem{OutfitID: outfit.ID, ClothesID: cid})
|
||||
}
|
||||
if err := s.outfitItemDao.OutfitItemCreateBatch(ctx, items); err != nil {
|
||||
// 明细落库失败:删除已建穿搭并回退额度,避免产生无明细的空推荐。
|
||||
_ = s.outfitDao.OutfitDeleteByUUID(ctx, outfit.OutfitUUID)
|
||||
return nil, fail(errcode.OutfitCreateFailed, "穿搭明细落库失败")
|
||||
if err := global.MysqlEngine.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
|
||||
if err := tx.Create(outfit).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
clothesIDs := result.GetClothesIDs()
|
||||
items := make([]mysqlmodel.OutfitItem, 0, len(clothesIDs))
|
||||
for _, cid := range clothesIDs {
|
||||
items = append(items, mysqlmodel.OutfitItem{OutfitID: outfit.ID, ClothesID: cid})
|
||||
}
|
||||
return tx.Create(&items).Error
|
||||
}); err != nil {
|
||||
return nil, fail(errcode.OutfitCreateFailed, "穿搭及明细落库失败")
|
||||
}
|
||||
|
||||
// 7. 写成功流水 + 当日计数。
|
||||
@@ -140,7 +140,6 @@ func (s *AIRecommendService) Create(ctx context.Context, userID int64, request *
|
||||
}); err != nil {
|
||||
slog.WarnContext(ctx, "write ai recommend success flow log failed", "user_id", userID, "error", err)
|
||||
}
|
||||
recordDailyUsage(ctx, userID, QuotaTypeAI)
|
||||
|
||||
// 8. 组装响应(衣物 UUID 来自校正后的 items)。
|
||||
outfitItems := make([]dto.OutfitItem, 0, len(result.Items))
|
||||
|
||||
Reference in New Issue
Block a user