From 9f8395fab13ca4b230a0f7d62636e209745c91d4 Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期日, 28 九月 2025 14:16:18 +0800 Subject: [PATCH] feat: 完善注册流程的文件上传功能 --- backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java | 58 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 47 insertions(+), 11 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..a0f5dc2 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鍏宠仈 // 璁剧疆涓撲笟鏍囩 @@ -184,15 +201,31 @@ * 淇濆瓨濯掍綋淇℃伅 */ public MediaResponse saveMediaInfo(MediaInput input) { - Media media = mediaService.saveMedia( - input.getName(), - input.getPath(), - input.getFileSize(), - input.getFileExt(), - input.getMediaType(), - input.getTargetType(), - input.getTargetId() - ); + Media media; + + // 濡傛灉鏈夌缉鐣ュ浘璺緞锛屼娇鐢ㄦ敮鎸佺缉鐣ュ浘鐨勬柟娉� + if (input.getThumbPath() != null && !input.getThumbPath().trim().isEmpty()) { + media = mediaService.saveMedia( + input.getName(), + input.getPath(), + input.getFileSize(), + input.getFileExt(), + input.getMediaType(), + input.getTargetType(), + input.getTargetId(), + input.getThumbPath() + ); + } else { + media = mediaService.saveMedia( + input.getName(), + input.getPath(), + input.getFileSize(), + input.getFileExt(), + input.getMediaType(), + input.getTargetType(), + input.getTargetId() + ); + } MediaResponse response = new MediaResponse(); response.setId(media.getId()); @@ -203,6 +236,9 @@ response.setMediaType(media.getMediaType()); response.setTargetType(media.getTargetType()); response.setTargetId(media.getTargetId()); + response.setThumbPath(media.getThumbPath()); + response.setDuration(media.getDuration()); + response.setDescription(media.getDescription()); return response; } -- Gitblit v1.8.0