fix: 活动列表按阶段筛选未发布与已结束;已结束仅保留查看操作

Made-with: Cursor
This commit is contained in:
zhonghua 2026-04-09 11:41:57 +08:00
parent d5657d8d23
commit 7a8d909df3
2 changed files with 16 additions and 3 deletions

View File

@ -128,19 +128,28 @@ public class ContestServiceImpl extends ServiceImpl<ContestMapper, BizContest> i
wrapper.eq(BizContest::getContestType, dto.getContestType()); wrapper.eq(BizContest::getContestType, dto.getContestType());
} }
// 阶段筛选 // 阶段筛选与前端活动列表活动阶段一致unpublished/finished/registering/submitting/reviewing
if (StringUtils.hasText(dto.getStage())) { if (StringUtils.hasText(dto.getStage())) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
switch (dto.getStage()) { switch (dto.getStage()) {
case "unpublished":
wrapper.eq(BizContest::getContestState, PublishStatus.UNPUBLISHED.getValue());
break;
case "finished":
wrapper.eq(BizContest::getStatus, "finished");
break;
case "registering": case "registering":
wrapper.eq(BizContest::getContestState, PublishStatus.PUBLISHED.getValue());
wrapper.le(BizContest::getRegisterStartTime, now) wrapper.le(BizContest::getRegisterStartTime, now)
.ge(BizContest::getRegisterEndTime, now); .ge(BizContest::getRegisterEndTime, now);
break; break;
case "submitting": case "submitting":
wrapper.eq(BizContest::getContestState, PublishStatus.PUBLISHED.getValue());
wrapper.le(BizContest::getSubmitStartTime, now) wrapper.le(BizContest::getSubmitStartTime, now)
.ge(BizContest::getSubmitEndTime, now); .ge(BizContest::getSubmitEndTime, now);
break; break;
case "reviewing": case "reviewing":
wrapper.eq(BizContest::getContestState, PublishStatus.PUBLISHED.getValue());
wrapper.le(BizContest::getReviewStartTime, now) wrapper.le(BizContest::getReviewStartTime, now)
.ge(BizContest::getReviewEndTime, now); .ge(BizContest::getReviewEndTime, now);
break; break;

View File

@ -151,12 +151,16 @@
<a-button v-permission="'contest:update'" type="link" size="small" @click="handleEdit(record.id)">编辑</a-button> <a-button v-permission="'contest:update'" type="link" size="small" @click="handleEdit(record.id)">编辑</a-button>
<a-button v-permission="'contest:delete'" type="link" danger size="small" @click="handleDeleteClick(record)">删除</a-button> <a-button v-permission="'contest:delete'" type="link" danger size="small" @click="handleDeleteClick(record)">删除</a-button>
</template> </template>
<!-- 已发布查看添加评委取消发布 --> <!-- 已发布且未结束查看评委取消发布 -->
<template v-else> <template v-else-if="record.status !== 'finished'">
<a-button type="link" size="small" @click="router.push(`/${tenantCode}/contests/${record.id}`)">查看</a-button> <a-button type="link" size="small" @click="router.push(`/${tenantCode}/contests/${record.id}`)">查看</a-button>
<a-button v-permission="'contest:update'" type="link" size="small" @click="handleAddJudge(record.id)">评委</a-button> <a-button v-permission="'contest:update'" type="link" size="small" @click="handleAddJudge(record.id)">评委</a-button>
<a-button v-permission="'contest:publish'" type="link" size="small" style="color: #f59e0b" @click="handlePublishClick(record)">取消发布</a-button> <a-button v-permission="'contest:publish'" type="link" size="small" style="color: #f59e0b" @click="handlePublishClick(record)">取消发布</a-button>
</template> </template>
<!-- 已结束仅查看 -->
<template v-else>
<a-button type="link" size="small" @click="router.push(`/${tenantCode}/contests/${record.id}`)">查看</a-button>
</template>
</template> </template>
<!-- 超管端操作 --> <!-- 超管端操作 -->
<a-button v-if="isSuperAdmin" type="link" size="small" <a-button v-if="isSuperAdmin" type="link" size="small"