From 58d9f460b2f8c34430285115e2557d18333c5cab Mon Sep 17 00:00:00 2001 From: Codex Assistant <codex@example.com> Date: 星期三, 08 十月 2025 14:16:55 +0800 Subject: [PATCH] feat: 修复Player实体phone字段数据冗余问题并优化小程序报名逻辑 --- backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java | 41 ++++++++++++++++++++++++++++++++++------- 1 files changed, 34 insertions(+), 7 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 75bebca..0a257b0 100644 --- a/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java +++ b/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java @@ -60,11 +60,18 @@ /** * 鍒嗛〉鏌ヨ姣旇禌鍒楄〃 */ - public PageResponse<ActivityResponse> findActivities(PageRequest pageRequest, String name) { + public PageResponse<ActivityResponse> findActivities(PageRequest pageRequest, String name, Integer state) { Pageable pageable = pageRequest.toPageable(); Page<Activity> page; - if (StringUtils.hasText(name)) { + boolean hasName = StringUtils.hasText(name); + if (state != null) { + if (hasName) { + page = activityRepository.findByPidAndStateAndNameContainingOrderByCreateTimeDesc(0L, state, name, pageable); + } else { + page = activityRepository.findByPidAndStateOrderByCreateTimeDesc(0L, state, pageable); + } + } else if (hasName) { page = activityRepository.findByPidAndNameContainingOrderByCreateTimeDesc(0L, name, pageable); } else { // 鏌ヨ鎵�鏈変富娲诲姩锛坧id = 0锛� @@ -74,22 +81,31 @@ List<ActivityResponse> content = page.getContent().stream() .map(activity -> { ActivityResponse response = new ActivityResponse(activity); - // 璁剧疆鍙傝禌浜烘暟锛堝彧缁熻绗竴闃舵鐨勫鏍搁�氳繃瀛﹀憳浜烘暟锛� + // 璁剧疆鍙傝禌浜烘暟锛堢粺璁$涓�闃舵鐨勫緟瀹℃牳鍜屽鏍搁�氳繃瀛﹀憳浜烘暟锛� int playerCount = 0; Activity firstStage = activityRepository.findFirstStageByActivityId(activity.getId()); if (firstStage != null) { - // 濡傛灉鏈夌涓�闃舵锛岀粺璁$涓�闃舵鐨勫鏍搁�氳繃浜烘暟 - Long playerCountLong = activityPlayerRepository.countByStageIdAndState(firstStage.getId(), 1); + // 濡傛灉鏈夌涓�闃舵锛岀粺璁$涓�闃舵鐨勫緟瀹℃牳鍜屽鏍搁�氳繃浜烘暟 + Long playerCountLong = activityPlayerRepository.countByStageId(firstStage.getId()); playerCount = playerCountLong != null ? playerCountLong.intValue() : 0; } else { - // 濡傛灉娌℃湁闃舵锛岀粺璁℃椿鍔ㄦ湰韬殑瀹℃牳閫氳繃浜烘暟 - Long playerCountLong = activityPlayerRepository.countByActivityIdAndState(activity.getId(), 1); + // 濡傛灉娌℃湁闃舵锛岀粺璁℃椿鍔ㄦ湰韬殑寰呭鏍稿拰瀹℃牳閫氳繃浜烘暟 + Long playerCountLong = activityPlayerRepository.countByActivityId(activity.getId()); playerCount = playerCountLong != null ? playerCountLong.intValue() : 0; } response.setPlayerCount(playerCount); return response; }) .collect(Collectors.toList()); + + // 璋冭瘯锛氭墦鍗拌繑鍥炵粰鍓嶇鐨勫搷搴斿璞′腑鐨勬姤鍚嶆埅姝� + try { + content.stream().limit(10).forEach(r -> + log.info("Response(id={}, name={}) signupDeadline={}, matchTime={}", r.getId(), r.getName(), r.getSignupDeadline(), r.getMatchTime()) + ); + } catch (Exception e) { + log.warn("鎵撳嵃ActivityResponse鏃ュ織澶辫触: {}", e.getMessage()); + } return new PageResponse<>(content, page.getTotalElements(), page.getNumber(), page.getSize()); } @@ -353,6 +369,17 @@ } return false; } + + public boolean updateActivityState(Long id, Integer state) { + Optional<Activity> activityOpt = activityRepository.findById(id); + if (activityOpt.isPresent()) { + Activity activity = activityOpt.get(); + activity.setState(state); + activityRepository.save(activity); + return true; + } + return false; + } /** * 鑾峰彇鎵�鏈夋湁鏁堜富姣旇禌锛堢敤浜庝笅鎷夐�夋嫨锛� -- Gitblit v1.8.0