refactor: Phase 5 - Clean up Orchestrator, remove deprecated methods

- Remove deprecated wrapper methods (generateTimeSlots, autoGroupParticipants, etc.)
- Update autoArrange() to call services directly
- Final class size: 288 lines (75% reduction from original 1148 lines)
- All 438 tests passing

Closes #11 - God Class refactoring complete
This commit is contained in:
2026-01-17 00:43:00 +08:00
parent fbde7b196d
commit 8caed3ae8a
9 changed files with 4 additions and 58 deletions
@@ -108,16 +108,16 @@ public class MartialScheduleArrangeServiceImpl implements IMartialScheduleArrang
}
// 5. 生成时间段网格
List<TimeSlot> timeSlots = generateTimeSlots(competition);
List<TimeSlot> timeSlots = timeSlotGenerator.generate(competition);
// 6. 自动分组
List<ScheduleGroupData> groups = autoGroupParticipants(athletes);
List<ScheduleGroupData> groups = participantGroupingService.autoGroup(athletes);
// 7. 验证容量是否足够
validateCapacity(groups, venues, timeSlots);
venueAllocationService.validateCapacity(groups, venues, timeSlots);
// 8. 分配场地和时间段(轮询均匀分配)
assignVenueAndTimeSlot(groups, venues, timeSlots);
venueAllocationService.allocate(groups, venues, timeSlots);
// 8. 清空旧的编排数据
clearOldScheduleData(competitionId);
@@ -202,60 +202,6 @@ public class MartialScheduleArrangeServiceImpl implements IMartialScheduleArrang
}
/**
* Generate time slots for competition
* @deprecated Use TimeSlotGenerator.generate() directly
*/
@Deprecated
private List<TimeSlot> generateTimeSlots(MartialCompetition competition) {
return timeSlotGenerator.generate(competition);
}
/**
* 获取项目的分组类别名称
* @param project 项目
* @return 分组类别名称: 男子/女子/混合/团体
*/
/**
* Auto group participants
* @deprecated Use ParticipantGroupingService.autoGroup() directly
*/
@Deprecated
private List<ScheduleGroupData> autoGroupParticipants(List<MartialAthlete> athletes) {
return participantGroupingService.autoGroup(athletes);
}
/**
* 验证时间窗口容量是否足够容纳所有分组
*/
/**
* Validate capacity
* @deprecated Use VenueAllocationService.validateCapacity() directly
*/
@Deprecated
private void validateCapacity(List<ScheduleGroupData> groups,
List<MartialVenue> venues,
List<TimeSlot> timeSlots) {
venueAllocationService.validateCapacity(groups, venues, timeSlots);
}
/**
* Assign venue and time slot
* @deprecated Use VenueAllocationService.allocate() directly
*/
@Deprecated
private void assignVenueAndTimeSlot(List<ScheduleGroupData> groups,
List<MartialVenue> venues,
List<TimeSlot> timeSlots) {
venueAllocationService.allocate(groups, venues, timeSlots);
}
private void clearOldScheduleData(Long competitionId) {
// 删除旧的编排数据
LambdaQueryWrapper<MartialScheduleGroup> groupWrapper = new LambdaQueryWrapper<>();