fix(media): 转码错误信息截断并上报进度

This commit is contained in:
Zhou Weidong committed 2026-10-22 15:12:05 +08:00
1 parent f9bc6eee6d
commit 660afaf66d
18 files changed
+469 -34

No files matched your search

@@ -65,6 +65,7 @@ public class EpisodeTranscodeAdminService {
result.setProgress(0);
result.setRetryCount(0);
result.setErrorMsg("");
result.setUpdatedAt(episode.getUpdatedAt());
return result;
}
result.setTaskId(idString(task.getId()));
@@ -72,6 +73,7 @@ public class EpisodeTranscodeAdminService {
result.setProgress(task.getProgress());
result.setRetryCount(task.getRetryCount());
result.setErrorMsg(task.getErrorMsg());
result.setUpdatedAt(task.getUpdatedAt());
return result;
}
@@ -7,6 +7,7 @@ import com.fruitshorts.media.vo.MediaThumbnailRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/** 后台剧集编辑页一次性获取的转码状态。 */
@@ -21,6 +22,7 @@ public class EpisodeTranscodeRespVO {
private Integer progress;
private Integer retryCount;
private String errorMsg;
private LocalDateTime updatedAt;
private List<MediaRenditionRespVO> renditions = List.of();
private MediaThumbnailRespVO thumbnails;
}
@@ -9,6 +9,8 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.test.web.servlet.MockMvc;
import java.time.LocalDateTime;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
@@ -38,6 +40,7 @@ class EpisodeTranscodeContractTest {
vo.setTaskId(taskId);
vo.setStatus("SUCCESS");
vo.setProgress(100);
vo.setUpdatedAt(LocalDateTime.of(2026, 10, 22, 15, 10));
given(service.detail(Long.parseLong(episodeId))).willReturn(vo);
mockMvc.perform(get("/admin/episodes/" + episodeId + "/transcode"))
@@ -47,7 +50,8 @@ class EpisodeTranscodeContractTest {
.andExpect(jsonPath("$.data.mediaAssetId").value(mediaAssetId))
.andExpect(jsonPath("$.data.taskId").value(taskId))
.andExpect(jsonPath("$.data.status").value("SUCCESS"))
.andExpect(jsonPath("$.data.progress").value(100));
.andExpect(jsonPath("$.data.progress").value(100))
.andExpect(jsonPath("$.data.updatedAt").value("2026-10-22T15:10:00"));
}
@Test
@@ -11,6 +11,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.time.LocalDateTime;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.BDDMockito.given;
@@ -77,6 +78,7 @@ class EpisodeTranscodeAdminServiceTest {
task.setMediaAssetId(MEDIA_ASSET_ID);
task.setStatus("SUCCESS");
task.setProgress(100);
task.setUpdatedAt(LocalDateTime.of(2026, 10, 22, 15, 10));
given(outputService.latestTask(MEDIA_ASSET_ID)).willReturn(task);
var result = service.detail(EPISODE_ID);
@@ -84,6 +86,7 @@ class EpisodeTranscodeAdminServiceTest {
assertThat(result.getEpisodeId()).isEqualTo("2113150431755636737");
assertThat(result.getMediaAssetId()).isEqualTo("2113150398670966786");
assertThat(result.getTaskId()).isEqualTo("2113150398935207938");
assertThat(result.getUpdatedAt()).isEqualTo(task.getUpdatedAt());
}
@Test