fix: 添加报名时间和比赛结束时间校验
- 报名时检查报名时间是否在有效范围内 - 报名时检查比赛是否已结束 - 如果比赛已结束,返回错误提示 Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user