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());