From f2c10d5e32fc3dff8db49f6bdc5330537467940d Mon Sep 17 00:00:00 2001 From: zhonghua Date: Tue, 7 Apr 2026 17:16:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=B7=BB=E5=8A=A0=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E7=BC=96=E5=8F=B7=EF=BC=8C=E6=8A=A5=E5=90=8D=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=EF=BC=8C=E8=AF=84=E5=88=86=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ContestWorkServiceImpl.java | 1 + .../impl/ContestReviewServiceImpl.java | 31 ++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/backend-java/src/main/java/com/competition/modules/biz/contest/service/impl/ContestWorkServiceImpl.java b/backend-java/src/main/java/com/competition/modules/biz/contest/service/impl/ContestWorkServiceImpl.java index dde4a62..6830473 100644 --- a/backend-java/src/main/java/com/competition/modules/biz/contest/service/impl/ContestWorkServiceImpl.java +++ b/backend-java/src/main/java/com/competition/modules/biz/contest/service/impl/ContestWorkServiceImpl.java @@ -113,6 +113,7 @@ public class ContestWorkServiceImpl extends ServiceImpl registrationIds = workMap.values().stream() + .map(BizContestWork::getRegistrationId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + Map regAccountMap = new HashMap<>(); + if (!registrationIds.isEmpty()) { + List registrations = registrationMapper.selectBatchIds(registrationIds); + for (BizContestRegistration r : registrations) { + regAccountMap.put(r.getId(), r.getAccountNo()); + } + } + // 组装VO并应用筛选 List> voList = new ArrayList<>(); for (BizContestWorkJudgeAssignment a : assignments) { BizContestWork work = workMap.get(a.getWorkId()); if (work == null) continue; + // 优先取作品上的账号,为空则从报名记录补充 + String submitterAcc = work.getSubmitterAccountNo(); + if (submitterAcc == null && work.getRegistrationId() != null) { + submitterAcc = regAccountMap.get(work.getRegistrationId()); + } + // workNo筛选 - if (StringUtils.hasText(workNo) && !work.getWorkNo().contains(workNo)) { + if (StringUtils.hasText(workNo) && (work.getWorkNo() == null + || !work.getWorkNo().contains(workNo))) { continue; } // accountNo筛选 - if (StringUtils.hasText(accountNo) && work.getSubmitterAccountNo() != null - && !work.getSubmitterAccountNo().contains(accountNo)) { + if (StringUtils.hasText(accountNo) && (submitterAcc == null + || !submitterAcc.contains(accountNo))) { continue; } @@ -402,7 +425,7 @@ public class ContestReviewServiceImpl implements IContestReviewService { map.put("title", work.getTitle()); map.put("previewUrl", work.getPreviewUrl()); map.put("previewUrls", work.getPreviewUrls()); - map.put("submitterAccountNo", work.getSubmitterAccountNo()); + map.put("submitterAccountNo", submitterAcc); BizContestWorkScore scoreRecord = scoreMap.get(a.getId()); if (scoreRecord != null) {