From c4a9cad1c50e89365e2a58b50e259af642ed3b8c Mon Sep 17 00:00:00 2001 From: Codex Assistant <codex@example.com> Date: 星期二, 07 十月 2025 16:12:20 +0800 Subject: [PATCH] feat(review): 调整评审详情展示顺序与样式,描述支持多行,项目信息列宽40/60 fix(auth): 登录页与首页循环跳转保护;api.ts 在登录页不再重定向;401分支在登录页不跳转 fix(router): /login 放行策略优化,避免死循环;评审列表跳转到 /project-review/:id/detail fix(frontend): 补齐 utils/appConfig.ts,避免启动白屏 fix(review): 详情页提交评分缺少stageId时回退使用项目详情的stageId feat(backend): ActivityPlayerDetailResponse.playerInfo 补充 avatarUrl/avatar,服务组装时填充用户头像 chore(dev): 启动脚本注入本地JWT密钥,重启前后端 --- backend/src/main/java/com/rongyichuang/media/service/MediaV2Service.java | 58 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 43 insertions(+), 15 deletions(-) diff --git a/backend/src/main/java/com/rongyichuang/media/service/MediaV2Service.java b/backend/src/main/java/com/rongyichuang/media/service/MediaV2Service.java index b1329cf..7c6cf58 100644 --- a/backend/src/main/java/com/rongyichuang/media/service/MediaV2Service.java +++ b/backend/src/main/java/com/rongyichuang/media/service/MediaV2Service.java @@ -9,6 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * 濯掍綋鏈嶅姟绫� */ @@ -37,32 +39,58 @@ if (input.getTargetId() == null) { return MediaSaveResponse.error("鐩爣ID涓嶈兘涓虹┖"); } - if (input.getUrl() == null || input.getUrl().trim().isEmpty()) { - return MediaSaveResponse.error("鏂囦欢URL涓嶈兘涓虹┖"); + if (input.getPath() == null || input.getPath().trim().isEmpty()) { + return MediaSaveResponse.error("鏂囦欢璺緞涓嶈兘涓虹┖"); } if (input.getMediaType() == null) { return MediaSaveResponse.error("濯掍綋绫诲瀷涓嶈兘涓虹┖"); } - // 鍒涘缓Media瀹炰綋 - Media media = new Media(); - // 灏唗argetType瀛楃涓茶浆鎹负鏁存暟 Integer targetTypeInt = convertTargetTypeToInt(input.getTargetType()); - media.setTargetType(targetTypeInt); - media.setTargetId(input.getTargetId()); - media.setPath(input.getUrl()); - media.setThumbPath(input.getThumbUrl()); + + Media media; + boolean isUpdate = false; + + // 鏍规嵁鐩爣绫诲瀷鍐冲畾澶勭悊绛栫暐 + if (targetTypeInt == 7) { // USER_AVATAR - 澶村儚锛岄渶瑕佹洿鏂扮幇鏈夎褰� + List<Media> existingMedias = mediaRepository.findByTargetTypeAndTargetIdAndState( + targetTypeInt, input.getTargetId(), 1); + + if (!existingMedias.isEmpty()) { + // 瀛樺湪澶村儚璁板綍锛屾洿鏂扮涓�涓褰� + media = existingMedias.get(0); + isUpdate = true; + log.info("鎵惧埌鐜版湁澶村儚璁板綍锛屽皢杩涜鏇存柊锛孖D: {}", media.getId()); + } else { + // 涓嶅瓨鍦ㄥご鍍忚褰曪紝鍒涘缓鏂拌褰� + media = new Media(); + media.setTargetType(targetTypeInt); + media.setTargetId(input.getTargetId()); + media.setState(1); + log.info("鏈壘鍒扮幇鏈夊ご鍍忚褰曪紝灏嗗垱寤烘柊鐨勫ご鍍忚褰�"); + } + } else { + // 鍏朵粬绫诲瀷锛堝闄勪欢锛夛紝鎬绘槸鍒涘缓鏂拌褰� + media = new Media(); + media.setTargetType(targetTypeInt); + media.setTargetId(input.getTargetId()); + media.setState(1); // 1琛ㄧず鏈夋晥鐘舵�� + log.info("鍒涘缓鏂扮殑濯掍綋璁板綍锛岀被鍨�: {}", input.getTargetType()); + } + + // 鏇存柊鎴栬缃獟浣撲俊鎭� + media.setPath(input.getPath()); + media.setThumbPath(input.getThumbPath()); media.setName(input.getFileName()); media.setFileExt(input.getFileExt()); media.setFileSize(input.getFileSize() != null ? input.getFileSize().intValue() : null); - media.setDuration(input.getDuration()); - media.setMediaType(input.getMediaType()); - media.setState(1); // 1琛ㄧず鏈夋晥鐘舵�� + media.setDuration(input.getDuration()); + media.setMediaType(input.getMediaType()); // 淇濆瓨鍒版暟鎹簱 Media savedMedia = mediaRepository.save(media); - log.info("濯掍綋鏂囦欢淇濆瓨鎴愬姛锛孖D: {}", savedMedia.getId()); + log.info("濯掍綋鏂囦欢{}鎴愬姛锛孖D: {}", isUpdate ? "鏇存柊" : "淇濆瓨", savedMedia.getId()); return MediaSaveResponse.success("濯掍綋鏂囦欢淇濆瓨鎴愬姛", savedMedia.getId()); @@ -82,9 +110,9 @@ private Integer convertTargetTypeToInt(String targetType) { switch (targetType) { case "player": - return 1; + return 7; // USER_AVATAR - 鐢ㄦ埛澶村儚 case "activity_player": - return 2; + return 5; // ACTIVITY_PLAYER_SUBMISSION - 鍙傝禌鎶ュ悕璧勬枡 default: throw new IllegalArgumentException("涓嶆敮鎸佺殑鐩爣绫诲瀷: " + targetType); } -- Gitblit v1.8.0