补齐相关日志日志
This commit is contained in:
@@ -61,6 +61,7 @@ func (s *ClosetShareService) Create(ctx context.Context, userID int64, request *
|
||||
case ShareTypeSnapshot:
|
||||
ids, err := s.allUserClothesIDs(ctx, userID)
|
||||
if err != nil {
|
||||
slog.ErrorContext(ctx, "closet share create: list user clothes failed", "user_id", userID, "error", err)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
clothesIDs = ids
|
||||
@@ -70,6 +71,11 @@ func (s *ClosetShareService) Create(ctx context.Context, userID int64, request *
|
||||
|
||||
// 2. 消耗衣柜分享每日额度。
|
||||
if qerr := consumeDailyQuota(ctx, userID, QuotaTypeClosetShare, 1, "衣柜分享消耗"); qerr != nil {
|
||||
if qerr == errcode.QuotaInsufficient {
|
||||
slog.InfoContext(ctx, "closet share create: quota insufficient", "user_id", userID)
|
||||
} else {
|
||||
slog.ErrorContext(ctx, "closet share create: consume quota failed", "user_id", userID, "error", qerr)
|
||||
}
|
||||
return nil, qerr
|
||||
}
|
||||
|
||||
@@ -89,6 +95,8 @@ func (s *ClosetShareService) Create(ctx context.Context, userID int64, request *
|
||||
}
|
||||
return nil
|
||||
}); err != nil {
|
||||
slog.ErrorContext(ctx, "closet share create: transaction failed",
|
||||
"user_id", userID, "share_uuid", shareUUID, "error", err)
|
||||
refundDailyQuota(ctx, userID, QuotaTypeClosetShare, 1)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
@@ -99,9 +107,13 @@ func (s *ClosetShareService) Create(ctx context.Context, userID int64, request *
|
||||
AuditResult: AuditResultPass,
|
||||
AuditTime: nowUnix(),
|
||||
}); err != nil {
|
||||
slog.WarnContext(ctx, "write closet audit log failed", "share_id", share.ID, "error", err)
|
||||
slog.WarnContext(ctx, "write closet audit log failed",
|
||||
"share_id", share.ID, "share_uuid", shareUUID, "error", err)
|
||||
}
|
||||
|
||||
slog.InfoContext(ctx, "closet share created",
|
||||
"user_id", userID, "share_uuid", shareUUID, "share_type", request.ShareType, "clothes_count", len(clothesIDs))
|
||||
|
||||
return &dto.ClosetShareCreateResponse{ShareUUID: shareUUID}, nil
|
||||
}
|
||||
|
||||
@@ -115,6 +127,7 @@ func (s *ClosetShareService) Detail(ctx context.Context, userID int64, shareUUID
|
||||
if isNotFound(err) {
|
||||
return nil, errcode.ShareNotFound
|
||||
}
|
||||
slog.ErrorContext(ctx, "closet share detail: query share failed", "share_uuid", shareUUID, "error", err)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
|
||||
@@ -129,7 +142,9 @@ func (s *ClosetShareService) Detail(ctx context.Context, userID int64, shareUUID
|
||||
}
|
||||
// 时间过期校验。
|
||||
if share.ExpireTime > 0 && nowUnix() > share.ExpireTime {
|
||||
_ = s.shareDao.ClosetShareUpdateStatus(ctx, shareUUID, ShareStatusExpired)
|
||||
if uerr := s.shareDao.ClosetShareUpdateStatus(ctx, shareUUID, ShareStatusExpired); uerr != nil {
|
||||
slog.WarnContext(ctx, "closet share detail: mark expired failed", "share_uuid", shareUUID, "error", uerr)
|
||||
}
|
||||
return nil, errcode.ShareExpired
|
||||
}
|
||||
|
||||
@@ -137,7 +152,9 @@ func (s *ClosetShareService) Detail(ctx context.Context, userID int64, shareUUID
|
||||
|
||||
// 访问计数(访客计入)。
|
||||
if !isOwner {
|
||||
_, _ = redisdao.ClosetShareViewIncr(ctx, shareUUID)
|
||||
if _, verr := redisdao.ClosetShareViewIncr(ctx, shareUUID); verr != nil {
|
||||
slog.DebugContext(ctx, "closet share detail: incr view count failed", "share_uuid", shareUUID, "error", verr)
|
||||
}
|
||||
}
|
||||
|
||||
// 加载分享的衣物。
|
||||
@@ -170,6 +187,9 @@ func (s *ClosetShareService) Detail(ctx context.Context, userID int64, shareUUID
|
||||
if owner, oerr := s.userDao.UserGetByID(ctx, share.UserID); oerr == nil {
|
||||
ownerName = owner.Username
|
||||
ownerAvatar = upload.AvatarURL(owner.Avatar)
|
||||
} else {
|
||||
slog.DebugContext(ctx, "closet share detail: get owner info failed",
|
||||
"share_uuid", shareUUID, "owner_id", share.UserID, "error", oerr)
|
||||
}
|
||||
|
||||
return &dto.ClosetShareDetailResponse{
|
||||
@@ -294,14 +314,21 @@ func (s *ClosetShareService) Cancel(ctx context.Context, userID int64, request *
|
||||
if isNotFound(err) {
|
||||
return nil, errcode.ShareNotFound
|
||||
}
|
||||
slog.ErrorContext(ctx, "closet 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, "closet share cancel: permission denied",
|
||||
"share_uuid", request.ShareUUID, "user_id", userID, "owner_id", share.UserID)
|
||||
return nil, errcode.Forbidden
|
||||
}
|
||||
if err := s.shareDao.ClosetShareUpdateStatus(ctx, request.ShareUUID, ShareStatusCancelled); err != nil {
|
||||
slog.ErrorContext(ctx, "closet share cancel: update status failed",
|
||||
"share_uuid", request.ShareUUID, "user_id", userID, "error", err)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
slog.InfoContext(ctx, "closet share cancelled", "share_uuid", request.ShareUUID, "user_id", userID)
|
||||
return &dto.CollectResponse{}, nil
|
||||
}
|
||||
|
||||
@@ -321,6 +348,7 @@ func (s *ClosetShareService) resolveOwnedClothesIDs(ctx context.Context, userID
|
||||
|
||||
clothesList, err := s.clothesDao.ClothesGetByUUIDs(ctx, dedup)
|
||||
if err != nil {
|
||||
slog.ErrorContext(ctx, "closet share: query clothes failed", "user_id", userID, "error", err)
|
||||
return nil, errcode.DatabaseError
|
||||
}
|
||||
byUUID := make(map[string]mysqlmodel.Clothes, len(clothesList))
|
||||
|
||||
Reference in New Issue
Block a user