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/player/service/ActivityPlayerService.java | 48 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 35 insertions(+), 13 deletions(-) diff --git a/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java b/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java index c623481..b40491c 100644 --- a/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java +++ b/backend/src/main/java/com/rongyichuang/player/service/ActivityPlayerService.java @@ -231,25 +231,47 @@ } /** - * 鍒涘缓鎴栨洿鏂扮敤鎴疯褰� + * 鍒涘缓鎴栨洿鏂扮敤鎴疯褰曪紙浠呭湪灏忕▼搴忔姤鍚嶆垚鍔熸椂鍒涘缓鏂扮敤鎴凤級 */ private User createOrUpdateUser(ActivityRegistrationInput input) { try { - // 浣跨敤UserService鐨刦indOrCreateUserByPhone鏂规硶 - User user = userService.findOrCreateUserByPhone( - input.getPlayerInfo().getPhone(), - input.getPlayerInfo().getName(), - null // 涓嶈缃瘑鐮侊紝浣跨敤榛樿瀵嗙爜 - ); + String phone = input.getPlayerInfo().getPhone(); + String name = input.getPlayerInfo().getName(); - // 鏇存柊鐢ㄦ埛鐨勭敓鏃ヤ俊鎭� - if (input.getPlayerInfo().getBirthDate() != null) { - user.setBirthday(input.getPlayerInfo().getBirthDate()); + // 鍏堟煡鎵剧幇鏈夌敤鎴� + Optional<User> existingUserOpt = userService.findByPhone(phone); + + if (existingUserOpt.isPresent()) { + // 鐢ㄦ埛瀛樺湪锛屾洿鏂颁俊鎭� + User user = existingUserOpt.get(); + user.setName(name); + + // 鏇存柊鐢ㄦ埛鐨勭敓鏃ヤ俊鎭� + if (input.getPlayerInfo().getBirthDate() != null) { + user.setBirthday(input.getPlayerInfo().getBirthDate()); + } + user = userService.save(user); - log.info("鏇存柊鐢ㄦ埛鐢熸棩淇℃伅鎴愬姛锛岀敤鎴稩D: {}", user.getId()); + log.info("鏇存柊鐜版湁鐢ㄦ埛淇℃伅鎴愬姛锛岀敤鎴稩D: {}", user.getId()); + return user; + } else { + // 鐢ㄦ埛涓嶅瓨鍦紝鍒涘缓鏂扮敤鎴凤紙浠呭湪灏忕▼搴忔姤鍚嶆垚鍔熸椂锛� + log.info("鐢ㄦ埛涓嶅瓨鍦紝涓哄皬绋嬪簭鎶ュ悕鎴愬姛鍒涘缓鏂扮敤鎴凤紝鎵嬫満鍙�: {}", phone); + + User newUser = new User(); + newUser.setName(name); + newUser.setPhone(phone); + newUser.setPassword(userService.getPasswordEncoder().encode("123456")); // 榛樿瀵嗙爜 + + // 璁剧疆鐢熸棩淇℃伅 + if (input.getPlayerInfo().getBirthDate() != null) { + newUser.setBirthday(input.getPlayerInfo().getBirthDate()); + } + + newUser = userService.save(newUser); + log.info("涓哄皬绋嬪簭鎶ュ悕鎴愬姛鍒涘缓鏂扮敤鎴凤紝鐢ㄦ埛ID: {}", newUser.getId()); + return newUser; } - - return user; } catch (Exception e) { log.error("鍒涘缓鎴栨洿鏂扮敤鎴疯褰曟椂鍙戠敓閿欒", e); throw new RuntimeException("鍒涘缓鎴栨洿鏂扮敤鎴疯褰曞け璐�", e); -- Gitblit v1.8.0