60 lines
1.5 KiB
Java
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;
|
|
}
|
|
}
|
|
}
|