fix: allow legacy clerk album entries
Some checks failed
Build and Push Backend / docker (push) Failing after 5s
Some checks failed
Build and Push Backend / docker (push) Failing after 5s
This commit is contained in:
@@ -359,17 +359,35 @@ public class WxClerkController {
|
||||
mediaService.lambdaQuery()
|
||||
.in(com.starry.admin.modules.media.entity.PlayMediaEntity::getId, newMediaIds)
|
||||
.list();
|
||||
if (newMediaEntities.size() != newMediaIds.size()) {
|
||||
|
||||
java.util.Set<String> existingMediaIds = newMediaEntities.stream()
|
||||
.map(com.starry.admin.modules.media.entity.PlayMediaEntity::getId)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
java.util.Set<String> missingMediaIds = new java.util.HashSet<>(newMediaIds);
|
||||
missingMediaIds.removeAll(existingMediaIds);
|
||||
|
||||
if (!missingMediaIds.isEmpty()) {
|
||||
// 这里很可能是历史相册里的纯 URL(未经过媒资化),我们记录日志但不直接失败,
|
||||
// 在审核内容中仍然保留这些字符串,由审核端用回显逻辑处理。
|
||||
log.warn(
|
||||
"[ClerkAlbumUpdate] new media size mismatch, clerkId={}, tenantId={}, expectedIds={}, foundIds={}",
|
||||
"[ClerkAlbumUpdate] some album entries not found in play_media, treating as legacy values, clerkId={} tenantId={} missingIds={} existingIds={}",
|
||||
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("存在未完成上传的照片/视频,请稍后重试");
|
||||
missingMediaIds,
|
||||
existingMediaIds);
|
||||
}
|
||||
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info(
|
||||
"[ClerkAlbumUpdate] loaded newMediaEntities for validation, clerkId={} tenantId={} mediaSummaries={}",
|
||||
userInfo.getId(),
|
||||
userInfo.getTenantId(),
|
||||
newMediaEntities.stream()
|
||||
.map(m -> String.format("id=%s,status=%s,ownerType=%s,ownerId=%s,tenantId=%s",
|
||||
m.getId(), m.getStatus(), m.getOwnerType(), m.getOwnerId(), m.getTenantId()))
|
||||
.collect(java.util.stream.Collectors.toList()));
|
||||
}
|
||||
|
||||
for (com.starry.admin.modules.media.entity.PlayMediaEntity media : newMediaEntities) {
|
||||
boolean tenantMatched = userInfo.getTenantId().equals(media.getTenantId());
|
||||
boolean ownerTypeMatched = MediaOwnerType.CLERK.equals(media.getOwnerType());
|
||||
@@ -394,7 +412,6 @@ public class WxClerkController {
|
||||
throw new CustomException("存在无效的照片/视频,请刷新后重试");
|
||||
}
|
||||
if (!statusReady) {
|
||||
// 理论上上面的分支已经覆盖,这里多打一条保护日志,便于排查历史数据
|
||||
log.warn(
|
||||
"[ClerkAlbumUpdate] media not in READY state for clerk, clerkId={} tenantId={} mediaId={} mediaStatus={}",
|
||||
userInfo.getId(),
|
||||
|
||||
Reference in New Issue
Block a user