From ba938729223bd2fa3a8b39c26e4d28cd4531a9c0 Mon Sep 17 00:00:00 2001 From: zhonghua Date: Tue, 14 Apr 2026 18:51:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AF=84=E5=AE=A1=E8=A7=84=E5=88=99?= =?UTF-8?q?=E5=B5=8C=E5=A5=97=E6=B4=BB=E5=8A=A8=E8=AF=A6=E6=83=85=E3=80=81?= =?UTF-8?q?=E8=AF=84=E5=A7=94=E4=BA=BA=E6=95=B0=E4=B8=8E=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 活动详情接口补充嵌套 reviewRule(含 judgeCount) - 添加评委抽屉:人数提示对齐评审规则页,满足评委数量方可提交 - 作品分配评委:与规则人数一致,标题与确定按钮逻辑对齐 - 评审规则:去最高最低仅当评委数量大于阈值时可选用 Made-with: Cursor --- .../service/impl/ContestServiceImpl.java | 19 ++ .../contests/components/AddJudgeDrawer.vue | 85 ++++- .../src/views/contests/reviews/Index.vue | 316 ++++++++---------- .../src/views/contests/works/WorksDetail.vue | 78 ++++- 4 files changed, 308 insertions(+), 190 deletions(-) diff --git a/lesingle-creation-backend/src/main/java/com/lesingle/modules/biz/contest/service/impl/ContestServiceImpl.java b/lesingle-creation-backend/src/main/java/com/lesingle/modules/biz/contest/service/impl/ContestServiceImpl.java index 1f1fd1e..2a445ed 100644 --- a/lesingle-creation-backend/src/main/java/com/lesingle/modules/biz/contest/service/impl/ContestServiceImpl.java +++ b/lesingle-creation-backend/src/main/java/com/lesingle/modules/biz/contest/service/impl/ContestServiceImpl.java @@ -21,7 +21,9 @@ import com.lesingle.modules.biz.contest.mapper.ContestMapper; import com.lesingle.modules.biz.contest.mapper.ContestRegistrationMapper; import com.lesingle.modules.biz.contest.mapper.ContestWorkMapper; import com.lesingle.modules.biz.contest.service.IContestService; +import com.lesingle.modules.biz.review.entity.BizContestReviewRule; import com.lesingle.modules.biz.review.entity.BizContestWorkJudgeAssignment; +import com.lesingle.modules.biz.review.mapper.ContestReviewRuleMapper; import com.lesingle.modules.biz.review.mapper.ContestWorkJudgeAssignmentMapper; import com.lesingle.modules.sys.entity.SysTenant; import com.lesingle.modules.sys.mapper.SysTenantMapper; @@ -46,6 +48,7 @@ public class ContestServiceImpl extends ServiceImpl i private final ContestRegistrationMapper contestRegistrationMapper; private final ContestWorkMapper contestWorkMapper; private final ContestWorkJudgeAssignmentMapper contestWorkJudgeAssignmentMapper; + private final ContestReviewRuleMapper contestReviewRuleMapper; private final SysTenantMapper sysTenantMapper; // 支持两种日期格式:ISO 格式 (T 分隔) 和空格分隔格式 @@ -302,6 +305,22 @@ public class ContestServiceImpl extends ServiceImpl i result.put("contestTenantInfos", tenantInfoList); } + // 嵌套评审规则(与评委端活动详情一致,供前端「每作品评委数」等使用) + if (contest.getReviewRuleId() != null) { + BizContestReviewRule rule = contestReviewRuleMapper.selectById(contest.getReviewRuleId()); + if (rule != null) { + Map ruleMap = new LinkedHashMap<>(); + ruleMap.put("id", rule.getId()); + ruleMap.put("tenantId", rule.getTenantId()); + ruleMap.put("ruleName", rule.getRuleName()); + ruleMap.put("ruleDescription", rule.getRuleDescription()); + ruleMap.put("judgeCount", rule.getJudgeCount()); + ruleMap.put("dimensions", rule.getDimensions()); + ruleMap.put("calculationRule", rule.getCalculationRule()); + result.put("reviewRule", ruleMap); + } + } + return result; } diff --git a/lesingle-creation-frontend/src/views/contests/components/AddJudgeDrawer.vue b/lesingle-creation-frontend/src/views/contests/components/AddJudgeDrawer.vue index caefe83..889d3a6 100644 --- a/lesingle-creation-frontend/src/views/contests/components/AddJudgeDrawer.vue +++ b/lesingle-creation-frontend/src/views/contests/components/AddJudgeDrawer.vue @@ -55,15 +55,21 @@