package com.music.controller; import com.music.common.Result; import com.music.dto.MergeRequest; import com.music.exception.BusinessException; import com.music.service.LibraryMergeService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.UUID; /** * 整理入库任务控制器 */ @RestController @RequestMapping("/api/merge") @Validated public class MergeController { private final LibraryMergeService libraryMergeService; public MergeController(LibraryMergeService libraryMergeService) { this.libraryMergeService = libraryMergeService; } /** * 启动整理入库任务 */ @PostMapping("/start") public Result start(@Valid @RequestBody MergeRequest request) { String taskId = UUID.randomUUID().toString(); libraryMergeService.merge( taskId, request.getSrcDir(), request.getDstDir(), request.isSmartUpgrade(), request.isKeepBackup() ); return Result.success(new StartResponse(taskId)); } public static class StartResponse { private String taskId; public StartResponse(String taskId) { this.taskId = taskId; } public String getTaskId() { return taskId; } public void setTaskId(String taskId) { this.taskId = taskId; } } }