From bec58fa7fe4fae2deac88200d8d939e12ec8a08f Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期五, 03 十月 2025 22:26:39 +0800
Subject: [PATCH] 修复小程序WXS日期显示问题并重新设计【我的】页面
---
backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java | 68 ++++++++++++++++++++++++++++------
1 files changed, 56 insertions(+), 12 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..463b3ff 100644
--- a/backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java
+++ b/backend/src/main/java/com/rongyichuang/judge/service/JudgeService.java
@@ -13,10 +13,12 @@
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;
-import org.springframework.data.domain.Sort;
+import java.util.Optional;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.StringUtils;
import org.slf4j.Logger;
@@ -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() {
@@ -66,9 +71,28 @@
.orElse(null);
}
+ /**
+ * 鏍规嵁鐢ㄦ埛ID鑾峰彇璇勫淇℃伅
+ */
+ public Judge findByUserId(Long userId) {
+ Optional<Judge> judge = judgeRepository.findByUserId(userId);
+ return judge.orElse(null);
+ }
+
@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 +111,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 +209,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 +244,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