From 3714621173c606c4c58439ed8941100ce9ddea14 Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 05 十一月 2025 15:10:49 +0800
Subject: [PATCH] bug
---
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