From 3714621173c606c4c58439ed8941100ce9ddea14 Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 05 十一月 2025 15:10:49 +0800
Subject: [PATCH] bug
---
backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java | 49 +++++++++++++++++++++++++++++--------------------
1 files changed, 29 insertions(+), 20 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 c5254f0..fb8b6e4 100644
--- a/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java
+++ b/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java
@@ -60,40 +60,38 @@
/**
* 鍒嗛〉鏌ヨ姣旇禌鍒楄〃
*/
- 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)) {
- page = activityRepository.findByPidAndNameContainingOrderByCreateTimeDesc(0L, name, pageable);
+ 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) {
+ // 褰搒tate涓簄ull浣嗘湁鍚嶇О鎼滅储鏃讹紝闇�瑕佽繃婊ゆ帀宸插垹闄ょ殑姣旇禌锛坰tate != 0锛�
+ page = activityRepository.findByPidAndStateNotAndNameContainingOrderByCreateTimeDesc(0L, 0, name, pageable);
} else {
- // 鏌ヨ鎵�鏈変富娲诲姩锛坧id = 0锛�
- page = activityRepository.findByPidOrderByCreateTimeDesc(0L, pageable);
- }
-
- // 璋冭瘯锛氭墦鍗板垎椤靛師濮嬫椿鍔ㄧ殑鎶ュ悕鎴鏃堕棿
- try {
- log.info("鍒嗛〉鏌ヨ姣旇禌鍒楄〃锛氭�绘暟={}, 褰撳墠椤�={}, 姣忛〉={}", page.getTotalElements(), page.getNumber(), page.getSize());
- page.getContent().stream().limit(10).forEach(a ->
- log.info("Activity(id={}, name={}) signupDeadline={}, matchTime={}", a.getId(), a.getName(), a.getSignupDeadline(), a.getMatchTime())
- );
- } catch (Exception e) {
- log.warn("鎵撳嵃娲诲姩鎶ュ悕鎴鏃堕棿鏃ュ織澶辫触: {}", e.getMessage());
+ // 褰搒tate涓簄ull鏃讹紝鏌ヨ鎵�鏈夋湭鍒犻櫎鐨勪富娲诲姩锛坧id = 0 涓� state != 0锛�
+ page = activityRepository.findByPidAndStateNotOrderByCreateTimeDesc(0L, 0, pageable);
}
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);
@@ -372,6 +370,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