From 7ba080d35812e6db7bd5aa8f88161c02653eb6c1 Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期三, 24 九月 2025 22:42:35 +0800 Subject: [PATCH] feat: 优化员工和评委编辑功能的密码重置逻辑 --- backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java b/backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java index 6f8fd7c..4dbc167 100644 --- a/backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java +++ b/backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java @@ -13,6 +13,8 @@ import com.rongyichuang.common.exception.BusinessException; import com.rongyichuang.common.enums.MediaTargetType; import com.rongyichuang.tag.repository.TagRepository; +import com.rongyichuang.user.service.UserService; +import com.rongyichuang.user.entity.User; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Sort; @@ -36,16 +38,19 @@ private final TagRepository tagRepository; private final MediaRepository mediaRepository; private final MediaService mediaService; + private final UserService userService; - @Value("${app.media-url:${app.media.url:}}") + @Value("${app.media-url}") private String mediaBaseUrl; public JudgeService(JudgeRepository judgeRepository, TagRepository tagRepository, - MediaRepository mediaRepository, MediaService mediaService) { + MediaRepository mediaRepository, MediaService mediaService, + UserService userService) { this.judgeRepository = judgeRepository; this.tagRepository = tagRepository; this.mediaRepository = mediaRepository; this.mediaService = mediaService; + this.userService = userService; } public List<JudgeResponse> findAll() { @@ -69,6 +74,17 @@ @Transactional public JudgeResponse save(JudgeInput input) { Judge judge; + User user; + + // 澶勭悊User琛ㄩ�昏緫 + if (input.getPassword() != null && !input.getPassword().trim().isEmpty() && !"鈥⑩�⑩�⑩�⑩�⑩�⑩�⑩��".equals(input.getPassword())) { + // 鏈夊瘑鐮佷笖涓嶆槸鍗犱綅绗︽椂锛屽垱寤烘垨鏇存柊鐢ㄦ埛锛堝寘鍚瘑鐮侊級 + user = userService.findOrCreateUserByPhone(input.getPhone(), input.getName(), input.getPassword()); + } else { + // 鏃犲瘑鐮佹垨鏄崰浣嶇鏃讹紝鍙洿鏂扮敤鎴峰熀鏈俊鎭紙涓嶆洿鏂板瘑鐮侊級 + user = userService.findOrCreateUserByPhone(input.getPhone(), input.getName(), null); + } + if (input.getId() != null) { judge = judgeRepository.findById(input.getId()) .orElseThrow(() -> new BusinessException("璇勫涓嶅瓨鍦�")); @@ -87,6 +103,7 @@ judge.setTitle(input.getTitle()); judge.setCompany(input.getCompany()); judge.setIntroduction(input.getIntroduction()); + judge.setUserId(user.getId()); // 璁剧疆鍏宠仈鐨勭敤鎴稩D // 澶村儚淇℃伅閫氳繃t_media琛ㄧ殑target_type鍜宼arget_id鍏宠仈 // 璁剧疆涓撲笟鏍囩 -- Gitblit v1.8.0