From dc643ba44fd2a426263015491268a0f0d6b4671d Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期三, 01 十月 2025 08:39:29 +0800 Subject: [PATCH] 删除包含test、check、fix的文件名的文件 --- backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java | 88 ++++++++++++++++++++++++++++++++------------ 1 files changed, 64 insertions(+), 24 deletions(-) diff --git a/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java b/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java index a0ad78b..b692385 100644 --- a/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java +++ b/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java @@ -70,9 +70,18 @@ List<ActivityResponse> content = page.getContent().stream() .map(activity -> { ActivityResponse response = new ActivityResponse(activity); - // 璁剧疆鍙傝禌浜烘暟锛堝鏍搁�氳繃鐨勬姤鍚嶆暟閲忥級 - Long playerCountLong = activityPlayerRepository.countByActivityId(activity.getId()); - int playerCount = playerCountLong != null ? playerCountLong.intValue() : 0; + // 璁剧疆鍙傝禌浜烘暟锛堝彧缁熻绗竴闃舵鐨勫鏍搁�氳繃瀛﹀憳浜烘暟锛� + int playerCount = 0; + Activity firstStage = activityRepository.findFirstStageByActivityId(activity.getId()); + if (firstStage != null) { + // 濡傛灉鏈夌涓�闃舵锛岀粺璁$涓�闃舵鐨勫鏍搁�氳繃浜烘暟 + Long playerCountLong = activityPlayerRepository.countByStageIdAndState(firstStage.getId(), 1); + playerCount = playerCountLong != null ? playerCountLong.intValue() : 0; + } else { + // 濡傛灉娌℃湁闃舵锛岀粺璁℃椿鍔ㄦ湰韬殑瀹℃牳閫氳繃浜烘暟 + Long playerCountLong = activityPlayerRepository.countByActivityIdAndState(activity.getId(), 1); + playerCount = playerCountLong != null ? playerCountLong.intValue() : 0; + } response.setPlayerCount(playerCount); return response; }) @@ -332,39 +341,23 @@ // 鑾峰彇鎵�鏈夌姸鎬佷负1鐨勬椿鍔� List<Activity> allActivities = activityRepository.findByStateOrderByPidAscNameAsc(1); - // 杩囨护锛氬彧淇濈暀姣旇禌闃舵锛坧id>0锛� + // 杩囨护锛氬彧淇濈暀涓绘瘮璧涳紙pid=0锛� List<Activity> filteredActivities = allActivities.stream() - .filter(activity -> activity.getPid() > 0) + .filter(activity -> activity.getPid() == 0) .collect(Collectors.toList()); - // 杞崲涓篈ctivityResponse锛屽寘鍚埗姣旇禌淇℃伅 + // 杞崲涓篈ctivityResponse List<ActivityResponse> result = filteredActivities.stream() .map(activity -> { ActivityResponse response = new ActivityResponse(activity); - // 璁剧疆鍙傝禌浜烘暟锛堝鏍搁�氳繃鐨勬姤鍚嶆暟閲忥級 + // 璁剧疆鍙傝禌浜烘暟锛堟墍鏈夐樁娈电殑鎶ュ悕鏁伴噺鎬诲拰锛� Long playerCountLong = activityPlayerRepository.countByActivityId(activity.getId()); int playerCount = playerCountLong != null ? playerCountLong.intValue() : 0; response.setPlayerCount(playerCount); - // 璁剧疆鐖舵瘮璧涗俊鎭� - Optional<Activity> parentOpt = activityRepository.findById(activity.getPid()); - if (parentOpt.isPresent()) { - Activity parent = parentOpt.get(); - response.setParent(new ActivityResponse(parent)); - } - return response; }) - .sorted((a, b) -> { - // 鍏堟寜鐖舵瘮璧涘悕绉版帓搴忥紝鍐嶆寜闃舵鍚嶇О鎺掑簭 - if (a.getParent() != null && b.getParent() != null) { - int parentCompare = a.getParent().getName().compareTo(b.getParent().getName()); - if (parentCompare != 0) { - return parentCompare; - } - } - return a.getName().compareTo(b.getName()); - }) + .sorted((a, b) -> a.getName().compareTo(b.getName())) .collect(Collectors.toList()); return result; @@ -388,6 +381,53 @@ } /** + * 鑾峰彇鎵�鏈夋瘮璧涢樁娈碉紙鐢ㄤ簬璇勫椤甸潰涓嬫媺閫夋嫨锛� + * 杩斿洖鎵�鏈夌姸鎬佷负1涓攑id>0鐨勬瘮璧涢樁娈� + */ + public List<ActivityResponse> findAllStagesForSelection() { + // 鑾峰彇鎵�鏈夌姸鎬佷负1鐨勬椿鍔� + List<Activity> allActivities = activityRepository.findByStateOrderByPidAscNameAsc(1); + + // 鍒嗙涓绘瘮璧涘拰闃舵 + Map<Long, Activity> parentActivitiesMap = allActivities.stream() + .filter(activity -> activity.getPid() == 0) + .collect(Collectors.toMap(Activity::getId, activity -> activity)); + + // 杩囨护锛氬彧淇濈暀姣旇禌闃舵锛坧id>0锛� + List<Activity> filteredStages = allActivities.stream() + .filter(activity -> activity.getPid() > 0) + .collect(Collectors.toList()); + + // 杞崲涓篈ctivityResponse + List<ActivityResponse> result = filteredStages.stream() + .map(activity -> { + ActivityResponse response = new ActivityResponse(activity); + // 璁剧疆鍙傝禌浜烘暟锛堝鏍搁�氳繃鐨勬姤鍚嶆暟閲忥級 + Long playerCountLong = activityPlayerRepository.countByActivityId(activity.getId()); + int playerCount = playerCountLong != null ? playerCountLong.intValue() : 0; + response.setPlayerCount(playerCount); + + // 鎵嬪姩璁剧疆parent淇℃伅 + Activity parentActivity = parentActivitiesMap.get(activity.getPid()); + if (parentActivity != null) { + ActivityResponse parentResponse = new ActivityResponse(parentActivity); + response.setParent(parentResponse); + } + + return response; + }) + .sorted((a, b) -> { + // 鍏堟寜鐖舵瘮璧汭D鎺掑簭锛屽啀鎸夐樁娈靛悕绉版帓搴� + int pidCompare = Long.compare(a.getPid(), b.getPid()); + if (pidCompare != 0) return pidCompare; + return a.getName().compareTo(b.getName()); + }) + .collect(Collectors.toList()); + + return result; + } + + /** * 缁熻姣旇禌鏁伴噺 */ public long countActiveActivities() { -- Gitblit v1.8.0