From ef24b8390e2c291de76663f7fffe53bacf4747ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=85=E6=88=BF?= Date: Sun, 18 Jan 2026 13:05:13 +0800 Subject: [PATCH] refactor: Complete Dispatch Service delegation (3 methods) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 4 Complete: - Delegate getDispatchData to ScheduleDispatchService (67 lines → 5 lines) - Delegate adjustOrder to ScheduleDispatchService (63 lines → 7 lines) - Delegate saveDispatch to ScheduleDispatchService (20 lines → 7 lines) - Total reduction: 150 lines → 19 lines (87% reduction) File size: 996 lines → 823 lines (-173 lines, -17.4%) Delegation Status: ✅ exportSchedule - FULLY DELEGATED ✅ exportScheduleTemplate2 - FULLY DELEGATED ✅ updateParticipantCheckInStatus - FULLY DELEGATED ✅ getDispatchData - FULLY DELEGATED (NEW) ✅ adjustOrder - FULLY DELEGATED (NEW) ✅ saveDispatch - FULLY DELEGATED (NEW) Progress: 6/10 methods (60%) Remaining: 4 methods (moveScheduleGroup, saveAndLockSchedule, saveDraftSchedule, getScheduleResult) All tests passing (482 total) --- .../buckets/.bloomcycle.bin/xl.meta | Bin 743 -> 743 bytes .../buckets/.usage-cache.bin.bkp/xl.meta | Bin 630 -> 630 bytes .../buckets/.usage-cache.bin/xl.meta | Bin 630 -> 630 bytes .../.minio.sys/buckets/.usage.json/xl.meta | Bin 2360 -> 2359 bytes .../.usage-cache.bin.bkp/xl.meta | Bin 627 -> 627 bytes .../000000-assets/.usage-cache.bin/xl.meta | Bin 627 -> 627 bytes .../assets/.usage-cache.bin.bkp/xl.meta | Bin 575 -> 575 bytes .../buckets/assets/.usage-cache.bin/xl.meta | Bin 575 -> 575 bytes .../impl/MartialScheduleServiceImpl.java | 149 ++---------------- 9 files changed, 9 insertions(+), 140 deletions(-) diff --git a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta index 6e532fd8cc060f11b7dc23624dc21c85736a9e54..eb4341d3ba64d926509a5f7c045ece2c819dfd68 100644 GIT binary patch delta 310 zcmaFP`kZxwCilf8j>ywTSWb5cSWYxC7Pzux&DQ!{|Df4lwjWD9+4F2-c>^n0$;3Z4 z3aMrmh8CulMrnyjrbZ^omT8HW$!2DT7AD39mZm8wsgolZ_3ABt7^^TgF3Bs+$vMgx ztP#6IBg^IJ%f82_H%<$A(ej#Oh1<0=kC&{;m|>p4_3qS!at1JHS)N>4RFs-m!muPS zwW8!~`Gn=gC5c5PsVT>KSV1Z>b28tv=^ePSF1a!}C)GJWw;(4KD0_!N0Inb{o82aK zay(N<6kI6du#mMTD}wuj{GUo_&GqK>*JV BakKyc delta 296 zcmaFP`kZxwCUSit{)h}6eZ9&vr#4lk`_8?7gnH?V@0O#EY` zV33lWmYim3W^QJXW@>DbYHVa|V49j{Vqs#Onqq2hGC6`#uU;l_&w9qjC3&SeIY$|T z1A1!Nd02CrPQNOvb?cqbw(r!AqqWoB6MjrGDietmTh>+100u3~lS_+=Qu9g}mgJ>Y zl$GFUX1n$o!A;X=mwK%_`8(q@03h>iF#rGn 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 386c071fd2d940b7a041ee6f0c903e3acbc7a14a..56a7627ecbbfe7e5080f9ceb3c9923e894f4217d 100644 GIT binary patch delta 189 zcmV;u07C!v1oi}wDGSkI)*ed41jkZkyOA_A5c%h+RpOXT+`DPXBu)pbkdb$Q1<_&F z9!in?H7BHHbYW-NATnk)W@9orWHd1~W->4`VL3QsG%;l~W-~Q3WMgJwHj^;{CN-gU z&SzrF0M1Q>tknU5q;7R=Y{cW*DsA*GvVa7|O;R3V3M_0gHL4;bKdAJxex}Glwq+ud rvjHd@kE%>zb97a3WMOn=#|#Ak0001KY-#TYPojF0_5pkZC?}vpl;KRY delta 188 zcmV;t07L)w1oi}wDGPm%zxXS}1U=Ail94ns5N0<6G@Up`zNmryTysO|Es=MC1$~dd z_$!h8HIrBYCS0UtbYW-NAT?q&F*9Z}IAJ+rVP#=tH(@j}WHn?qG&nFbIWjh8HlcRT zXJX3$&e!Ise*uA{Zgp&I#N%`&GyKg5D6b&UoHM|dhEHyMluu#~J!r71GLmqgJ9m?_ q0Vo@Zs!U;XbX9O9#FlV;Um}4@rynz+0Wa1wi zd80J5v}7a86caEIpy5FV6|1mZ$$t%stIr8|H zR_+(QO${tZeS_o@xpZ=jOjju>+pqYtxo+7B$8D)flQ%PJNcXSuNh~f2El5c$Nj=WP Z$^ZnJIhpU-{TEeD{>E6tqM^RP82~>mM700_ delta 173 zcmeyy@{MJJCUo|tH2EKqv++QSPL9vfO53`4T!HLRXk-oOf0GVza% zylIlDp>dkAMWSU=VrpWFd7_D7ifM|OiG_i&rIA_M+9C=)# zYW(LcyT*Ej3v-MQOl$MctC`}T#AlnaVU^LOg8A0vlQ%PJNO!LCNh~f2El5c$Nj=WP Z$^ZnJIT`J2Zx~ij{>E6tqCe@=VF37!M?C-l diff --git a/minio_data/.minio.sys/buckets/.usage.json/xl.meta b/minio_data/.minio.sys/buckets/.usage.json/xl.meta index 0c0288d3d0d3c21698c8711cb4f5b6756ca45aea..efc0698c97ebb8a117867f1f68863e4e2fd507bf 100644 GIT binary patch delta 194 zcmdlXv|VU|Cilf82IkX8Sa>A1R!uZ97GQf&6nl4qH_KLu#|&vv{WcTJ!vFvP delta 195 zcmdlkv_oiuCUFpq9;e>3Dj>0_ z#4$LtDz$jxMfRR0AQq5b>Kl@on|fKIdl%S{iGOSq5>t(nj4aF(Q%y|G4N{X*Q&Y{2 zjf{*94ARU^j8iNuCr2=<={5g)P{P=_B(F3l=P3Ict7DDVn^X_3z1=Zoqg1%clBWim t+LC^sjTru(&*ac7yEAzWqqLxjm8pf5iMgJkp_!qPrKOqi=Ie|J>;V7XPNM(- 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 213831ce8e743ecf4f7ac74f67d2a7b7c2b09ff6..18e091ad15df093b0456f309a1e332bb6c27675b 100644 GIT binary patch delta 172 zcmey&@|k6VCfCKpCQ-*DESq+6O*A$Un8Q~RrS0glbz*6O&vui7B@@dVSiveL{;^R= zw6HKvvoJSIOEyh0wlJ|UGDu9bFicA^PfazpFiJF^9KookdoeU;17qWoywaSUBM)ZE z8UL7?e)?bUoNDJT{S#AXd~~{c{Yq>0>CvRpnlI~ySlUQ65T9A@hl6stn Yl>rDcb28tv{aEQWi7B7Okm=@q0MV>PDF6Tf delta 172 zcmey&@|k6VCRc5L(Y4D*Sej>Do@i_$&@F!Bmvxx8{(|q?{}-1&K02|yffcM`;vX9Y z^Ay7rqeL?^W8;*hWK$q%nq+91m~3odk(6wZlx8_Of>BR5G+liSW8;#%(wv+l54<-e zzw8RQn*N2`sK{LT%H1_#+mxm&ocQly5FL4Z^J2!yn;DIyJ6HK67MFw;q$HN49_L|Y X0D{b%jCQvE%+yIt`7E=9-8KLK8Xrcw 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 f6ab057dcd03ea80ca8831780800b29579bbf682..0c049ae8d823a182b5db97cafe4f23b35b3be08b 100644 GIT binary patch delta 173 zcmV;e08;<+1oH%tDGSkISj{NJ1Sw}TEs-=c5V@2B0*cp5ub#I~Q2&9Snvr*a1<_$x z%_x!lJRo5>I5TEAH!)^oHDoh5G&nLaVP-fnW@I;IWivQ3VK4il2KcE;k^*l8F#_4&9o$Er delta 173 zcmey&@|k6VCUSc3sff@G_=0t_Ic@N2jj!9s#zwMH?V@0O#EY` zV4h-_Vw7lRW^A02lxzwlO_K~Q6O)Y%ERvE9lF}?EM=*fyo<3Mc-17(_=N-@KS{@@7UO>CRO?iNz(M1u2OosmFO( X8Gs-&C!?LMKQna_Q$EWqVYdwcVA4az 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 3b332752a1d7e2403e377472d455fa5337b4ee8b..5bf6433516699619c8da05923de5118fa51e98de 100644 GIT binary patch delta 174 zcmdnbvY%ywCilgJua_SlVX2y$qBYUPSm2F~sf<9O|BUvJ%4N!Cm9Hn3H?V@0O#EY` zkZh7@o?@JoWRhrLkz$x=YHX64YLRMeW@==bY?^9nF*$-!PdBG*+9SrsC3&SeIY-uL z>--FNdAyZNu1S95BEj{KMBcI|e~weu$iKVp^(IyG*vXq2wWa%4`6L#XgchVEmZTo% aVPyb<%$&^kY;kdqC;w!0Vlj+aF&6+~!A2GU delta 174 zcmdnbvY%ywCU z!7{}#*(l8@H7(gF$;>j*GR-v6JS8pFB*ikt(ljN_a&iQtp6>q@+CLZ@m*kb^P}2HiCfe%@r0f83#%QHecGIKK8*(7hBo&1y0iABa#H5ULM!$j)< 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 13fffdf44b4fa32a59c1aeca77994fad3fb3d914..e054dca97b9da872ba337703f71e824b3e5605ff 100644 GIT binary patch delta 174 zcmdnbvY%ywCilgJefvv~uw?IakDX{@ED)#JF{8M{ao4n_>+Rk zA=xC+JjFOE$t2OhBE>M#)Yv37)gsl{%+$y<*)-MEVsZqdo^CITXEbBulDyKKoFi+r zb$*7sJl@JB*CfAjk>L7AB5&D~KgTI+~=eDvl8CqJ26o#!^Oynz+0Wa1wi z1 details = scheduleDetailMapper.selectList( - new QueryWrapper() - .eq("competition_id", competitionId) - .eq("venue_id", venueId) - .eq("time_slot_index", timeSlotIndex) - .eq("is_deleted", 0) - .orderByAsc("sort_order") - ); - - if (details.isEmpty()) { - // 返回空数据 - org.springblade.modules.martial.pojo.vo.DispatchDataVO vo = new org.springblade.modules.martial.pojo.vo.DispatchDataVO(); - vo.setGroups(new ArrayList<>()); - return vo; - } - - // 2. 构建返回数据 - List groups = new ArrayList<>(); - - for (MartialScheduleDetail detail : details) { - // 查询分组信息 - MartialScheduleGroup group = scheduleGroupMapper.selectById(detail.getScheduleGroupId()); - if (group == null) { - continue; - } - - // 查询该明细下的所有参赛者 - List participants = scheduleParticipantMapper.selectList( - new QueryWrapper() - .eq("schedule_detail_id", detail.getId()) - .eq("is_deleted", 0) - .orderByAsc("performance_order") - ); - - // 转换为VO - org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchGroup groupVO = - new org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchGroup(); - groupVO.setGroupId(group.getId()); - groupVO.setGroupName(group.getGroupName()); - groupVO.setDetailId(detail.getId()); - groupVO.setProjectType(group.getProjectType()); - - List participantVOs = - participants.stream().map(p -> { - org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant pVO = - new org.springblade.modules.martial.pojo.vo.DispatchDataVO.DispatchParticipant(); - pVO.setId(p.getId()); - pVO.setParticipantId(p.getParticipantId()); - pVO.setOrganization(p.getOrganization()); - pVO.setPlayerName(p.getPlayerName()); - pVO.setProjectName(p.getProjectName()); - pVO.setCategory(p.getCategory()); - pVO.setPerformanceOrder(p.getPerformanceOrder()); - return pVO; - }).collect(Collectors.toList()); - - groupVO.setParticipants(participantVOs); - groups.add(groupVO); - } - - org.springblade.modules.martial.pojo.vo.DispatchDataVO result = - new org.springblade.modules.martial.pojo.vo.DispatchDataVO(); - result.setGroups(groups); - return result; + // Delegated to ScheduleDispatchService + return scheduleDispatchService.getDispatchData(competitionId, venueId, timeSlotIndex); } + @Override @Transactional(rollbackFor = Exception.class) public boolean adjustOrder(org.springblade.modules.martial.pojo.dto.AdjustOrderDTO dto) { - // 1. 查询当前参赛者 - MartialScheduleParticipant current = scheduleParticipantMapper.selectById(dto.getParticipantId()); - if (current == null) { - throw new RuntimeException("参赛者不存在"); - } - - // 2. 查询同一明细下的所有参赛者 - List participants = scheduleParticipantMapper.selectList( - new QueryWrapper() - .eq("schedule_detail_id", dto.getDetailId()) - .eq("is_deleted", 0) - .orderByAsc("performance_order") - ); - - // 3. 根据动作调整顺序 - int currentIndex = -1; - for (int i = 0; i < participants.size(); i++) { - if (participants.get(i).getId().equals(dto.getParticipantId())) { - currentIndex = i; - break; - } - } - - if (currentIndex == -1) { - throw new RuntimeException("未找到参赛者"); - } - - // 4. 执行调整 - if ("move_up".equals(dto.getAction())) { - // 上移 - if (currentIndex == 0) { - throw new RuntimeException("已经是第一个,无法上移"); - } - // 交换位置 - Collections.swap(participants, currentIndex, currentIndex - 1); - } else if ("move_down".equals(dto.getAction())) { - // 下移 - if (currentIndex == participants.size() - 1) { - throw new RuntimeException("已经是最后一个,无法下移"); - } - // 交换位置 - Collections.swap(participants, currentIndex, currentIndex + 1); - } else if ("swap".equals(dto.getAction())) { - // 交换到指定位置 - if (dto.getTargetOrder() == null || dto.getTargetOrder() < 1 || dto.getTargetOrder() > participants.size()) { - throw new RuntimeException("目标顺序无效"); - } - int targetIndex = dto.getTargetOrder() - 1; - Collections.swap(participants, currentIndex, targetIndex); - } - - // 5. 更新所有参赛者的顺序 - for (int i = 0; i < participants.size(); i++) { - MartialScheduleParticipant p = participants.get(i); - p.setPerformanceOrder(i + 1); - scheduleParticipantMapper.updateById(p); - } - - return true; + // Delegated to ScheduleDispatchService + return scheduleDispatchService.adjustOrder(dto); } + @Override @Transactional(rollbackFor = Exception.class) public boolean saveDispatch(org.springblade.modules.martial.pojo.dto.SaveDispatchDTO dto) { - if (dto.getAdjustments() == null || dto.getAdjustments().isEmpty()) { - return true; - } - - // 批量更新所有参赛者的出场顺序 - for (org.springblade.modules.martial.pojo.dto.SaveDispatchDTO.DetailAdjustment adjustment : dto.getAdjustments()) { - for (org.springblade.modules.martial.pojo.dto.SaveDispatchDTO.ParticipantOrder po : adjustment.getParticipants()) { - MartialScheduleParticipant participant = scheduleParticipantMapper.selectById(po.getId()); - if (participant != null) { - participant.setPerformanceOrder(po.getPerformanceOrder()); - scheduleParticipantMapper.updateById(participant); - } - } - } - - return true; + // Delegated to ScheduleDispatchService + return scheduleDispatchService.saveDispatch(dto); } + @Override @Transactional(rollbackFor = Exception.class) public boolean updateParticipantCheckInStatus(Long participantId, String status) {