diff --git a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta index 89af94b..6f64feb 100644 Binary files a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta and b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta index 2554a7c..5e32f85 100644 Binary files a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta index 18367e6..e800fd9 100644 Binary files a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage.json/xl.meta b/minio_data/.minio.sys/buckets/.usage.json/xl.meta index 87a1a5c..2258b4b 100644 Binary files a/minio_data/.minio.sys/buckets/.usage.json/xl.meta and b/minio_data/.minio.sys/buckets/.usage.json/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta index 13e7b84..c7cbbac 100644 Binary files a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta index ddfe2d1..26f419f 100644 Binary files a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta index 11bca1c..7597c00 100644 Binary files a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta index 9aeccfd..48ca106 100644 Binary files a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta differ diff --git a/src/main/java/org/springblade/modules/martial/controller/MartialAthleteController.java b/src/main/java/org/springblade/modules/martial/controller/MartialAthleteController.java index 29da70a..a0944c9 100644 --- a/src/main/java/org/springblade/modules/martial/controller/MartialAthleteController.java +++ b/src/main/java/org/springblade/modules/martial/controller/MartialAthleteController.java @@ -1,5 +1,7 @@ package org.springblade.modules.martial.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import java.util.List; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qiniu.util.Auth; import io.swagger.v3.oas.annotations.Operation; @@ -106,4 +108,25 @@ public class MartialAthleteController extends BladeController { return R.success("状态更新成功"); } + /** + * 获取已报名选手列表(用于检查重复报名) + */ + @GetMapping("/registered") + @Operation(summary = "获取已报名选手", description = "查询指定赛事和项目的已报名选手") + public R> getRegisteredAthletes( + @RequestParam Long competitionId, + @RequestParam(required = false) String projectIds) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MartialAthlete::getCompetitionId, competitionId) + .eq(MartialAthlete::getIsDeleted, 0) + .eq(MartialAthlete::getRegistrationStatus, 1); + + if (Func.isNotBlank(projectIds)) { + wrapper.in(MartialAthlete::getProjectId, Func.toLongList(projectIds)); + } + + List list = athleteService.list(wrapper); + return R.data(list); + } + } 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 6bc1b46..49b5ce2 100644 --- a/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java +++ b/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java @@ -329,6 +329,19 @@ public class MartialRegistrationOrderController extends BladeController { // Create a record for each project for (Long projectId : projectIds) { + // Check if team already registered for this project + LambdaQueryWrapper teamCheckWrapper = new LambdaQueryWrapper<>(); + teamCheckWrapper.eq(MartialAthlete::getCompetitionId, dto.getCompetitionId()) + .eq(MartialAthlete::getProjectId, projectId) + .eq(MartialAthlete::getTeamName, team.getTeamName()) + .eq(MartialAthlete::getIsDeleted, 0); + MartialAthlete existingTeamRecord = athleteService.getOne(teamCheckWrapper, false); + + if (existingTeamRecord != null) { + log.warn("集体重复报名: teamName={}, projectId={}", team.getTeamName(), projectId); + return R.fail("集体 " + team.getTeamName() + " 已报名该项目,请勿重复报名"); + } + MartialAthlete teamAthlete = new MartialAthlete(); teamAthlete.setOrderId(orderId); teamAthlete.setCompetitionId(dto.getCompetitionId()); @@ -368,13 +381,9 @@ public class MartialRegistrationOrderController extends BladeController { MartialAthlete existingRecord = athleteService.getOne(checkWrapper, false); if (existingRecord != null) { - // Update existing record with order info - existingRecord.setOrderId(orderId); - existingRecord.setRegistrationStatus(1); - existingRecord.setUpdateUser(AuthUtil.getUserId()); - existingRecord.setUpdateTime(new java.util.Date()); - athleteService.updateById(existingRecord); - log.info("更新已存在的选手参赛记录: playerName={}, projectId={}", existingAthlete.getPlayerName(), projectId); + // Reject duplicate registration + log.warn("选手重复报名: playerName={}, projectId={}", existingAthlete.getPlayerName(), projectId); + return R.fail("选手 " + existingAthlete.getPlayerName() + " 已报名该项目,请勿重复报名"); } else { // Create new record MartialAthlete newRecord = new MartialAthlete();