补齐相关日志日志
This commit is contained in:
@@ -46,6 +46,8 @@ func (s *OutfitShareService) Create(ctx context.Context, userID int64, request *
|
||||
if isNotFound(err) {
|
||||
return nil, errcode.OutfitNotFound
|
||||
}
|
||||
slog.ErrorContext(ctx, "outfit share create: query outfit failed",
|
||||
"outfit_uuid", request.OutfitUUID, "user_id", userID, "error", err)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
if outfit.UserID != userID {
|
||||
@@ -61,6 +63,11 @@ func (s *OutfitShareService) Create(ctx context.Context, userID int64, request *
|
||||
charged := outfit.IsPublic == OutfitPrivate
|
||||
if charged {
|
||||
if qerr := consumeDailyQuota(ctx, userID, QuotaTypeClosetShare, 1, "私密穿搭分享消耗"); qerr != nil {
|
||||
if qerr == errcode.QuotaInsufficient {
|
||||
slog.InfoContext(ctx, "outfit share create: quota insufficient", "user_id", userID)
|
||||
} else {
|
||||
slog.ErrorContext(ctx, "outfit share create: consume quota failed", "user_id", userID, "error", qerr)
|
||||
}
|
||||
return nil, qerr
|
||||
}
|
||||
}
|
||||
@@ -72,12 +79,16 @@ func (s *OutfitShareService) Create(ctx context.Context, userID int64, request *
|
||||
Status: ShareStatusNormal,
|
||||
}
|
||||
if err := s.shareDao.OutfitShareCreate(ctx, share); err != nil {
|
||||
slog.ErrorContext(ctx, "outfit share create: save share failed",
|
||||
"user_id", userID, "outfit_uuid", request.OutfitUUID, "error", err)
|
||||
// 分享落库失败:回退刚扣的额度,避免用户额度被白扣。
|
||||
if charged {
|
||||
refundDailyQuota(ctx, userID, QuotaTypeClosetShare, 1)
|
||||
}
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
slog.InfoContext(ctx, "outfit share created",
|
||||
"user_id", userID, "share_uuid", share.ShareUUID, "outfit_uuid", request.OutfitUUID, "charged", charged)
|
||||
return &dto.OutfitShareCreateResponse{ShareUUID: share.ShareUUID}, nil
|
||||
}
|
||||
|
||||
@@ -91,6 +102,7 @@ func (s *OutfitShareService) Detail(ctx context.Context, userID int64, shareUUID
|
||||
if isNotFound(err) {
|
||||
return nil, errcode.OutfitShareNotFound
|
||||
}
|
||||
slog.ErrorContext(ctx, "outfit share detail: query share failed", "share_uuid", shareUUID, "error", err)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
if share.Status == ShareStatusCancelled {
|
||||
@@ -129,6 +141,9 @@ func (s *OutfitShareService) Detail(ctx context.Context, userID int64, shareUUID
|
||||
if owner, uerr := s.userDao.UserGetByID(ctx, share.UserID); uerr == nil {
|
||||
ownerName = owner.Username
|
||||
ownerAvatar = upload.AvatarURL(owner.Avatar)
|
||||
} else {
|
||||
slog.DebugContext(ctx, "outfit share detail: get owner info failed",
|
||||
"share_uuid", shareUUID, "owner_id", share.UserID, "error", uerr)
|
||||
}
|
||||
|
||||
return &dto.OutfitShareDetailResponse{
|
||||
@@ -210,14 +225,21 @@ func (s *OutfitShareService) Cancel(ctx context.Context, userID int64, request *
|
||||
if isNotFound(err) {
|
||||
return nil, errcode.OutfitShareNotFound
|
||||
}
|
||||
slog.ErrorContext(ctx, "outfit share cancel: query share failed",
|
||||
"share_uuid", request.ShareUUID, "user_id", userID, "error", err)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
if share.UserID != userID {
|
||||
slog.InfoContext(ctx, "outfit share cancel: permission denied",
|
||||
"share_uuid", request.ShareUUID, "user_id", userID, "owner_id", share.UserID)
|
||||
return nil, errcode.Forbidden
|
||||
}
|
||||
if err := s.shareDao.OutfitShareUpdateStatus(ctx, request.ShareUUID, ShareStatusCancelled); err != nil {
|
||||
slog.ErrorContext(ctx, "outfit share cancel: update status failed",
|
||||
"share_uuid", request.ShareUUID, "user_id", userID, "error", err)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
slog.InfoContext(ctx, "outfit share cancelled", "share_uuid", request.ShareUUID, "user_id", userID)
|
||||
return &dto.OutfitShareCancelResponse{}, nil
|
||||
}
|
||||
|
||||
@@ -266,6 +288,8 @@ func (s *OutfitShareService) buildShareItems(ctx context.Context, list []mysqlmo
|
||||
for i := range clothesList {
|
||||
coverByClothesID[clothesList[i].ID] = clothesImageURL(clothesList[i].ProcessedImage)
|
||||
}
|
||||
} else {
|
||||
slog.DebugContext(ctx, "outfit share list: load cover images failed", "error", cerr)
|
||||
}
|
||||
|
||||
for _, sh := range list {
|
||||
|
||||
Reference in New Issue
Block a user