From 8193baf314920e388b1f79d6b461d570ba939235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=85=E6=88=BF?= Date: Mon, 5 Jan 2026 17:50:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E6=8A=A5=E5=90=8D?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=92=8C=E6=AF=94=E8=B5=9B=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 报名时检查报名时间是否在有效范围内 - 报名时检查比赛是否已结束 - 如果比赛已结束,返回错误提示 Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> --- .../MartialRegistrationOrderController.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java b/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java index 926b32d..d6a914e 100644 --- a/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java +++ b/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java @@ -12,18 +12,21 @@ import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.martial.pojo.entity.MartialAthlete; +import org.springblade.modules.martial.pojo.entity.MartialCompetition; import org.springblade.modules.martial.pojo.entity.MartialRegistrationOrder; import org.springblade.modules.martial.pojo.entity.MartialTeam; import org.springblade.modules.martial.pojo.entity.MartialTeamMember; import org.springblade.modules.martial.pojo.dto.RegistrationSubmitDTO; import org.springblade.modules.martial.pojo.vo.MartialRegistrationOrderVO; import org.springblade.modules.martial.service.IMartialAthleteService; +import org.springblade.modules.martial.service.IMartialCompetitionService; import org.springblade.modules.martial.service.IMartialRegistrationOrderService; import org.springblade.modules.martial.service.IMartialTeamService; import org.springblade.modules.martial.mapper.MartialTeamMemberMapper; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import java.time.LocalDateTime; import java.util.List; @Slf4j @@ -36,6 +39,7 @@ public class MartialRegistrationOrderController extends BladeController { private final IMartialRegistrationOrderService registrationOrderService; private final IMartialAthleteService athleteService; private final IMartialTeamService teamService; + private final IMartialCompetitionService competitionService; private final MartialTeamMemberMapper teamMemberMapper; @GetMapping("/detail") @@ -69,6 +73,27 @@ public class MartialRegistrationOrderController extends BladeController { log.info("联系电话: {}", dto.getContactPhone()); log.info("总金额: {}", dto.getTotalAmount()); + // Validate competition exists and check registration/competition time + MartialCompetition competition = competitionService.getById(dto.getCompetitionId()); + if (competition == null) { + return R.fail("赛事不存在"); + } + + LocalDateTime now = LocalDateTime.now(); + + // Check if registration time is valid + if (competition.getRegistrationStartTime() != null && now.isBefore(competition.getRegistrationStartTime())) { + return R.fail("报名尚未开始"); + } + if (competition.getRegistrationEndTime() != null && now.isAfter(competition.getRegistrationEndTime())) { + return R.fail("报名已结束"); + } + + // Check if competition has ended + if (competition.getCompetitionEndTime() != null && now.isAfter(competition.getCompetitionEndTime())) { + return R.fail("比赛已结束,无法报名"); + } + // Create order entity MartialRegistrationOrder order = new MartialRegistrationOrder(); order.setOrderNo(dto.getOrderNo());