From 93eb6b470773bc49ea6e1a9d4cbd914eb95d525b Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期二, 30 九月 2025 17:38:04 +0800 Subject: [PATCH] feat: 完善比赛晋级功能并清理测试文件 --- 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