diff --git a/src/main/java/org/springblade/modules/martial/controller/MartialMiniController.java b/src/main/java/org/springblade/modules/martial/controller/MartialMiniController.java index 8467dbc..abe8a64 100644 --- a/src/main/java/org/springblade/modules/martial/controller/MartialMiniController.java +++ b/src/main/java/org/springblade/modules/martial/controller/MartialMiniController.java @@ -110,7 +110,14 @@ public class MartialMiniController extends BladeController { martialVenue = venueService.getById(invite.getVenueId()); } - List projects = parseProjects(invite.getProjects()); + // 获取项目列表:如果邀请记录中有指定项目则使用,否则获取该比赛的所有项目 + List projects; + if (Func.isNotEmpty(invite.getProjects())) { + projects = parseProjects(invite.getProjects()); + } else { + // 未指定项目,获取该比赛的所有项目(裁判负责整个场地) + projects = getAllProjectsByCompetition(competition.getId()); + } MiniLoginVO vo = new MiniLoginVO(); vo.setToken(token); @@ -499,7 +506,14 @@ public class MartialMiniController extends BladeController { MartialCompetition competition = competitionService.getById(invite.getCompetitionId()); MartialJudge judge = judgeService.getById(invite.getJudgeId()); MartialVenue martialVenue = invite.getVenueId() != null ? venueService.getById(invite.getVenueId()) : null; - List projects = parseProjects(invite.getProjects()); + // 获取项目列表:如果邀请记录中有指定项目则使用,否则获取该比赛的所有项目 + List projects; + if (Func.isNotEmpty(invite.getProjects())) { + projects = parseProjects(invite.getProjects()); + } else { + // 未指定项目,获取该比赛的所有项目(裁判负责整个场地) + projects = getAllProjectsByCompetition(competition.getId()); + } MiniLoginVO vo = new MiniLoginVO(); vo.setToken(token); @@ -640,4 +654,29 @@ public class MartialMiniController extends BladeController { return projects; } -} + + /** + * 获取比赛的所有项目 + */ + private List getAllProjectsByCompetition(Long competitionId) { + List projects = new ArrayList<>(); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MartialProject::getCompetitionId, competitionId); + wrapper.eq(MartialProject::getIsDeleted, 0); + + List projectList = projectService.list(wrapper); + + if (Func.isNotEmpty(projectList)) { + projects = projectList.stream().map(project -> { + MiniLoginVO.ProjectInfo info = new MiniLoginVO.ProjectInfo(); + info.setProjectId(project.getId()); + info.setProjectName(project.getProjectName()); + return info; + }).collect(Collectors.toList()); + } + + return projects; + } + +} \ No newline at end of file