From ba94ceae1315174798ae1967ef62268c6d16cd5b Mon Sep 17 00:00:00 2001 From: Codex Assistant <codex@example.com> Date: 星期一, 06 十月 2025 22:07:06 +0800 Subject: [PATCH] feat: 评审与活动相关改动 - backend(GraphQL): Activity schema 增加 updateActivityState(id, state);实现 resolver/service 仅更新 state=2 作为逻辑删除 - backend(GraphQL): region.graphqls 新增 Query leafRegions - backend(GraphQL): player.graphqls 的 projectReviewApplications 增加可选参数 regionId - backend(Service): listProjectReviewApplications 绑定 regionId 参数,修复 QueryParameterException - frontend(web): 新增 api/activity.js 的 updateActivityState 并接入 activity-list 删除逻辑 - frontend(web): review-list.vue 权限仅校验登录,移除角色限制;查询参数修正为 name/regionId - frontend(web): 删除未引用的 ActivityList.vue - frontend(web): projectReviewNew.js GraphQL 查询增加 name 参数 --- backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 53 insertions(+), 6 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 b692385..845d515 100644 --- a/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java +++ b/backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java @@ -16,6 +16,8 @@ import com.rongyichuang.common.dto.PageResponse; import com.rongyichuang.rating.entity.RatingScheme; import com.rongyichuang.rating.repository.RatingSchemeRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Example; import org.springframework.data.domain.ExampleMatcher; @@ -38,6 +40,8 @@ @Transactional public class ActivityService { + private static final Logger log = LoggerFactory.getLogger(ActivityService.class); + @Autowired private ActivityRepository activityRepository; @@ -56,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锛� @@ -86,6 +97,15 @@ 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()); } @@ -185,6 +205,9 @@ // 淇濆瓨姣旇禌 activity = activityRepository.save(activity); + // 璁板綍鏃ュ織浠ヤ究璋冭瘯 + log.info("淇濆瓨姣旇禌鎴愬姛锛屾瘮璧汭D: {}, 姣旇禌鍚嶇О: {}", activity.getId(), activity.getName()); + // 濡傛灉鏄瘮璧涗笖鏈夐樁娈典俊鎭紝淇濆瓨闃舵 if (input.isMainActivity() && input.getStages() != null && !input.getStages().isEmpty()) { saveActivityStages(activity.getId(), input.getStages()); @@ -264,7 +287,11 @@ stage.setRatingSchemeId(activity.getRatingSchemeId()); } - activityRepository.save(stage); + // 淇濆瓨闃舵骞惰幏鍙栬嚜澧濱D + stage = activityRepository.save(stage); + + // 璁板綍鏃ュ織浠ヤ究璋冭瘯 + log.info("淇濆瓨闃舵鎴愬姛锛岄樁娈礗D: {}, 闃舵鍚嶇О: {}", stage.getId(), stage.getName()); } } @@ -273,14 +300,20 @@ */ private void saveActivityJudges(Long activityId, List<ActivityJudgeInput> judgeInputs) { if (judgeInputs == null || judgeInputs.isEmpty()) { + log.info("娌℃湁璇勫闇�瑕佷繚瀛橈紝姣旇禌ID: {}", activityId); return; } + + log.info("寮�濮嬩繚瀛樿瘎濮旓紝姣旇禌ID: {}, 璇勫鏁伴噺: {}", activityId, judgeInputs.size()); // 鑾峰彇姣旇禌鐨勬墍鏈夐樁娈碉紙濡傛灉鏈夌殑璇濓級 List<Activity> stages = activityRepository.findByPidAndStateOrderByCreateTimeAsc(activityId, 1); // 淇濆瓨璇勫鍏宠仈 for (ActivityJudgeInput judgeInput : judgeInputs) { + log.info("澶勭悊璇勫: ID={}, 濮撳悕={}, 闃舵IDs={}", + judgeInput.getJudgeId(), judgeInput.getJudgeName(), judgeInput.getStageIds()); + // 鍏堝垹闄よ璇勫鐨勭幇鏈夊叧鑱� activityJudgeRepository.deleteByActivityIdAndJudgeId(activityId, judgeInput.getJudgeId()); @@ -289,12 +322,14 @@ if (stages.isEmpty()) { // 姣旇禌娌℃湁闃舵锛岀洿鎺ュ叧鑱斿埌姣旇禌锛坰tage_id涓簄ull琛ㄧず鎵�鏈夐樁娈碉級 ActivityJudge activityJudge = new ActivityJudge(activityId, judgeInput.getJudgeId(), null); - activityJudgeRepository.save(activityJudge); + activityJudge = activityJudgeRepository.save(activityJudge); + log.info("淇濆瓨璇勫鍏宠仈鎴愬姛: 姣旇禌ID={}, 璇勫ID={}, 闃舵ID=null", activityId, judgeInput.getJudgeId()); } else { // 涓烘瘡涓樁娈靛垱寤哄叧鑱� for (Activity stage : stages) { ActivityJudge activityJudge = new ActivityJudge(activityId, judgeInput.getJudgeId(), stage.getId()); - activityJudgeRepository.save(activityJudge); + activityJudge = activityJudgeRepository.save(activityJudge); + log.info("淇濆瓨璇勫鍏宠仈鎴愬姛: 姣旇禌ID={}, 璇勫ID={}, 闃舵ID={}", activityId, judgeInput.getJudgeId(), stage.getId()); } } } else { @@ -303,7 +338,8 @@ // 濡傛灉stageId绛変簬褰撳墠姣旇禌ID锛岃〃绀鸿瘎濮旇礋璐f暣涓瘮璧涳紝stage_id璁句负null Long actualStageId = stageId.equals(activityId) ? null : stageId; ActivityJudge activityJudge = new ActivityJudge(activityId, judgeInput.getJudgeId(), actualStageId); - activityJudgeRepository.save(activityJudge); + activityJudge = activityJudgeRepository.save(activityJudge); + log.info("淇濆瓨璇勫鍏宠仈鎴愬姛: 姣旇禌ID={}, 璇勫ID={}, 闃舵ID={}", activityId, judgeInput.getJudgeId(), actualStageId); } } } @@ -333,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