fix:添加作品编号,报名账号,评分字段

This commit is contained in:
zhonghua 2026-04-07 17:16:40 +08:00
parent 170d904081
commit f2c10d5e32
2 changed files with 28 additions and 4 deletions

View File

@ -113,6 +113,7 @@ public class ContestWorkServiceImpl extends ServiceImpl<ContestWorkMapper, BizCo
work.setStatus("submitted"); work.setStatus("submitted");
work.setSubmitTime(LocalDateTime.now()); work.setSubmitTime(LocalDateTime.now());
work.setSubmitterUserId(submitterId); work.setSubmitterUserId(submitterId);
work.setSubmitterAccountNo(registration.getAccountNo());
work.setPreviewUrl(dto.getPreviewUrl()); work.setPreviewUrl(dto.getPreviewUrl());
work.setPreviewUrls(dto.getPreviewUrls()); work.setPreviewUrls(dto.getPreviewUrls());
work.setAiModelMeta(dto.getAiModelMeta()); work.setAiModelMeta(dto.getAiModelMeta());

View File

@ -6,8 +6,10 @@ import com.competition.common.enums.ErrorCode;
import com.competition.common.exception.BusinessException; import com.competition.common.exception.BusinessException;
import com.competition.common.result.PageResult; import com.competition.common.result.PageResult;
import com.competition.modules.biz.contest.entity.BizContest; import com.competition.modules.biz.contest.entity.BizContest;
import com.competition.modules.biz.contest.entity.BizContestRegistration;
import com.competition.modules.biz.contest.entity.BizContestWork; import com.competition.modules.biz.contest.entity.BizContestWork;
import com.competition.modules.biz.contest.mapper.ContestMapper; import com.competition.modules.biz.contest.mapper.ContestMapper;
import com.competition.modules.biz.contest.mapper.ContestRegistrationMapper;
import com.competition.modules.biz.contest.mapper.ContestWorkMapper; import com.competition.modules.biz.contest.mapper.ContestWorkMapper;
import com.competition.modules.biz.review.dto.CreateScoreDto; import com.competition.modules.biz.review.dto.CreateScoreDto;
import com.competition.modules.biz.review.entity.BizContestJudge; import com.competition.modules.biz.review.entity.BizContestJudge;
@ -42,6 +44,7 @@ public class ContestReviewServiceImpl implements IContestReviewService {
private final ContestJudgeMapper judgeMapper; private final ContestJudgeMapper judgeMapper;
private final ContestWorkMapper workMapper; private final ContestWorkMapper workMapper;
private final ContestMapper contestMapper; private final ContestMapper contestMapper;
private final ContestRegistrationMapper registrationMapper;
private final ContestReviewRuleMapper reviewRuleMapper; private final ContestReviewRuleMapper reviewRuleMapper;
private final SysUserMapper sysUserMapper; private final SysUserMapper sysUserMapper;
@ -377,19 +380,39 @@ public class ContestReviewServiceImpl implements IContestReviewService {
} }
} }
// 批量查询报名信息用于补充submitterAccountNo
Set<Long> registrationIds = workMap.values().stream()
.map(BizContestWork::getRegistrationId)
.filter(Objects::nonNull)
.collect(Collectors.toSet());
Map<Long, String> regAccountMap = new HashMap<>();
if (!registrationIds.isEmpty()) {
List<BizContestRegistration> registrations = registrationMapper.selectBatchIds(registrationIds);
for (BizContestRegistration r : registrations) {
regAccountMap.put(r.getId(), r.getAccountNo());
}
}
// 组装VO并应用筛选 // 组装VO并应用筛选
List<Map<String, Object>> voList = new ArrayList<>(); List<Map<String, Object>> voList = new ArrayList<>();
for (BizContestWorkJudgeAssignment a : assignments) { for (BizContestWorkJudgeAssignment a : assignments) {
BizContestWork work = workMap.get(a.getWorkId()); BizContestWork work = workMap.get(a.getWorkId());
if (work == null) continue; if (work == null) continue;
// 优先取作品上的账号为空则从报名记录补充
String submitterAcc = work.getSubmitterAccountNo();
if (submitterAcc == null && work.getRegistrationId() != null) {
submitterAcc = regAccountMap.get(work.getRegistrationId());
}
// workNo筛选 // workNo筛选
if (StringUtils.hasText(workNo) && !work.getWorkNo().contains(workNo)) { if (StringUtils.hasText(workNo) && (work.getWorkNo() == null
|| !work.getWorkNo().contains(workNo))) {
continue; continue;
} }
// accountNo筛选 // accountNo筛选
if (StringUtils.hasText(accountNo) && work.getSubmitterAccountNo() != null if (StringUtils.hasText(accountNo) && (submitterAcc == null
&& !work.getSubmitterAccountNo().contains(accountNo)) { || !submitterAcc.contains(accountNo))) {
continue; continue;
} }
@ -402,7 +425,7 @@ public class ContestReviewServiceImpl implements IContestReviewService {
map.put("title", work.getTitle()); map.put("title", work.getTitle());
map.put("previewUrl", work.getPreviewUrl()); map.put("previewUrl", work.getPreviewUrl());
map.put("previewUrls", work.getPreviewUrls()); map.put("previewUrls", work.getPreviewUrls());
map.put("submitterAccountNo", work.getSubmitterAccountNo()); map.put("submitterAccountNo", submitterAcc);
BizContestWorkScore scoreRecord = scoreMap.get(a.getId()); BizContestWorkScore scoreRecord = scoreMap.get(a.getId());
if (scoreRecord != null) { if (scoreRecord != null) {