diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java index d58f4ef..e07c999 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java @@ -278,7 +278,7 @@ public class WxClerkController { entity.setReviewState("0"); entity.setDataContent(Collections.singletonList(vo.getNickname())); playClerkDataReviewInfoService.create(entity); - return R.ok("提交成功,等待审核~"); + return R.ok().message("提交成功,等待审核~"); } @ApiOperation(value = "更新性别", notes = "店员更新性别") @@ -293,7 +293,7 @@ public class WxClerkController { entity.setReviewState("0"); entity.setDataContent(Collections.singletonList(String.valueOf(vo.getSex()))); playClerkDataReviewInfoService.create(entity); - return R.ok("提交成功,等待审核~"); + return R.ok().message("提交成功,等待审核~"); } @ApiOperation(value = "更新头像", notes = "店员更新头像") @@ -315,7 +315,7 @@ public class WxClerkController { list.add(vo.getAvatar()); entity.setDataContent(list); playClerkDataReviewInfoService.create(entity); - return R.ok("提交成功,等待审核~"); + return R.ok().message("提交成功,等待审核~"); } @ClerkUserLogin @@ -348,6 +348,11 @@ public class WxClerkController { .filter(id -> !approvedIds.contains(id)) .collect(java.util.stream.Collectors.toSet()); + if (log.isInfoEnabled()) { + log.info("[ClerkAlbumUpdate] clerkId={} tenantId={} requestedSet={} approvedIds={} newMediaIds={}", + userInfo.getId(), userInfo.getTenantId(), requestedSet, approvedIds, newMediaIds); + } + if (!newMediaIds.isEmpty()) { // 新增媒资必须是当前店员本人名下、已就绪的媒资,才能进入审核流程 java.util.List newMediaEntities = @@ -355,15 +360,47 @@ public class WxClerkController { .in(com.starry.admin.modules.media.entity.PlayMediaEntity::getId, newMediaIds) .list(); if (newMediaEntities.size() != newMediaIds.size()) { + log.warn( + "[ClerkAlbumUpdate] new media size mismatch, clerkId={}, tenantId={}, expectedIds={}, foundIds={}", + userInfo.getId(), + userInfo.getTenantId(), + newMediaIds, + newMediaEntities.stream() + .map(com.starry.admin.modules.media.entity.PlayMediaEntity::getId) + .collect(java.util.stream.Collectors.toSet())); throw new CustomException("存在未完成上传的照片/视频,请稍后重试"); } for (com.starry.admin.modules.media.entity.PlayMediaEntity media : newMediaEntities) { - if (!userInfo.getTenantId().equals(media.getTenantId()) - || !MediaOwnerType.CLERK.equals(media.getOwnerType()) - || !userInfo.getId().equals(media.getOwnerId())) { + boolean tenantMatched = userInfo.getTenantId().equals(media.getTenantId()); + boolean ownerTypeMatched = MediaOwnerType.CLERK.equals(media.getOwnerType()); + boolean ownerIdMatched = userInfo.getId().equals(media.getOwnerId()); + boolean statusReady = com.starry.admin.modules.media.enums.MediaStatus.READY.getCode() + .equals(media.getStatus()); + + if (!tenantMatched || !ownerTypeMatched || !ownerIdMatched || !statusReady) { + log.warn( + "[ClerkAlbumUpdate] invalid new media for clerk, clerkId={} tenantId={} mediaId={} mediaStatus={} mediaTenantId={} mediaOwnerType={} mediaOwnerId={} tenantMatched={} ownerTypeMatched={} ownerIdMatched={} statusReady={}", + userInfo.getId(), + userInfo.getTenantId(), + media.getId(), + media.getStatus(), + media.getTenantId(), + media.getOwnerType(), + media.getOwnerId(), + tenantMatched, + ownerTypeMatched, + ownerIdMatched, + statusReady); throw new CustomException("存在无效的照片/视频,请刷新后重试"); } - if (!com.starry.admin.modules.media.enums.MediaStatus.READY.getCode().equals(media.getStatus())) { + if (!statusReady) { + // 理论上上面的分支已经覆盖,这里多打一条保护日志,便于排查历史数据 + log.warn( + "[ClerkAlbumUpdate] media not in READY state for clerk, clerkId={} tenantId={} mediaId={} mediaStatus={}", + userInfo.getId(), + userInfo.getTenantId(), + media.getId(), + media.getStatus()); throw new CustomException("存在未完成上传的照片/视频,请稍后重试"); } } @@ -375,7 +412,7 @@ public class WxClerkController { entity.setReviewState("0"); entity.setDataContent(new ArrayList<>(requestedSet)); playClerkDataReviewInfoService.create(entity); - return R.ok("提交成功,等待审核~"); + return R.ok().message("提交成功,等待审核~"); } // 仅删除/排序:直接应用变更,不再生成审核记录 @@ -392,7 +429,7 @@ public class WxClerkController { mediaService.softDelete(MediaOwnerType.CLERK, userInfo.getId(), mediaId); } - return R.ok("修改成功"); + return R.ok().message("修改成功"); } @ClerkUserLogin @@ -412,7 +449,7 @@ public class WxClerkController { list.add(vo.getAudio()); entity.setDataContent(list); playClerkDataReviewInfoService.create(entity); - return R.ok("提交成功,等待审核~"); + return R.ok().message("提交成功,等待审核~"); } @ClerkUserLogin