Files
MyTool/backend/src/main/java/com/music/controller/MergeController.java
2026-01-30 00:04:31 +08:00

60 lines
1.5 KiB
Java

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<StartResponse> 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;
}
}
}