fix:备份恢复修改

This commit is contained in:
waner
2026-04-15 13:59:21 +08:00
parent 8c38c0bfbe
commit 16578208bc
12 changed files with 861 additions and 946 deletions
@@ -17,6 +17,8 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@@ -27,22 +29,13 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/v1/resource-restores")
@Tag(name = "资源恢复", description = "资源恢复预检、任务创建、详情和步骤日志接口")
@RequiredArgsConstructor
public class ResourceRestoreController {
private final ResourcePrecheckService resourcePrecheckService;
private final ResourceRestoreService resourceRestoreService;
private final ResourceTaskQueryService resourceTaskQueryService;
public ResourceRestoreController(
ResourcePrecheckService resourcePrecheckService,
ResourceRestoreService resourceRestoreService,
ResourceTaskQueryService resourceTaskQueryService
) {
this.resourcePrecheckService = resourcePrecheckService;
this.resourceRestoreService = resourceRestoreService;
this.resourceTaskQueryService = resourceTaskQueryService;
}
@PostMapping("/precheck")
@Operation(summary = "预检资源恢复请求", description = "根据 fileId 校验备份包头、签名和恢复范围摘要。")
public ApiResponse<ResourceRestorePrecheckResponse> precheck(@Valid @RequestBody ResourceRestorePrecheckRequest request) {
@@ -5,6 +5,7 @@ import com.cisd.tms.modules.backup.repository.ResourceRestoreTaskRepository;
import com.cisd.tms.modules.backup.support.file.ResourceRestoreStateFileStore;
import java.time.LocalDateTime;
import java.util.function.Supplier;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@@ -14,6 +15,7 @@ public class RestoreStateReconciler {
private final ResourceRestoreStateFileStore resourceRestoreStateFileStore;
private final Supplier<LocalDateTime> nowSupplier;
@Autowired
public RestoreStateReconciler(
ResourceRestoreTaskRepository resourceRestoreTaskRepository,
ResourceRestoreStateFileStore resourceRestoreStateFileStore
@@ -24,9 +24,13 @@ import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class ResourceBackupServiceImpl implements ResourceBackupService {
private final InitTaskRepository initTaskRepository;
@@ -36,22 +40,6 @@ public class ResourceBackupServiceImpl implements ResourceBackupService {
private final ResourceTaskIdGenerator resourceTaskIdGenerator;
private final com.cisd.tms.modules.backup.config.ResourceBackupProperties resourceBackupProperties;
public ResourceBackupServiceImpl(
InitTaskRepository initTaskRepository,
ResourceDiscoveryService resourceDiscoveryService,
ResourcePackageService resourcePackageService,
ResourceBackupTaskRepository resourceBackupTaskRepository,
ResourceTaskIdGenerator resourceTaskIdGenerator,
com.cisd.tms.modules.backup.config.ResourceBackupProperties resourceBackupProperties
) {
this.initTaskRepository = initTaskRepository;
this.resourceDiscoveryService = resourceDiscoveryService;
this.resourcePackageService = resourcePackageService;
this.resourceBackupTaskRepository = resourceBackupTaskRepository;
this.resourceTaskIdGenerator = resourceTaskIdGenerator;
this.resourceBackupProperties = resourceBackupProperties;
}
@Override
public ResourceKeysetStatusResponse getKeysetStatus() {
ResourceKeysetStatusResponse response = new ResourceKeysetStatusResponse();
@@ -17,9 +17,12 @@ import com.cisd.tms.modules.file.repository.FileRecordRepository;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class ResourcePrecheckServiceImpl implements ResourcePrecheckService {
private final FileRecordRepository fileRecordRepository;
@@ -29,22 +32,6 @@ public class ResourcePrecheckServiceImpl implements ResourcePrecheckService {
private final CisdPresetProperties cisdPresetProperties;
private final ResourceBackupProperties resourceBackupProperties;
public ResourcePrecheckServiceImpl(
FileRecordRepository fileRecordRepository,
ResourcePackageService resourcePackageService,
ResourcePrecheckStateStore resourcePrecheckStateStore,
ResourceTaskIdGenerator resourceTaskIdGenerator,
CisdPresetProperties cisdPresetProperties,
ResourceBackupProperties resourceBackupProperties
) {
this.fileRecordRepository = fileRecordRepository;
this.resourcePackageService = resourcePackageService;
this.resourcePrecheckStateStore = resourcePrecheckStateStore;
this.resourceTaskIdGenerator = resourceTaskIdGenerator;
this.cisdPresetProperties = cisdPresetProperties;
this.resourceBackupProperties = resourceBackupProperties;
}
@Override
public ResourceRestorePrecheckResponse precheck(ResourceRestorePrecheckRequest request) {
FileRecordEntity fileRecord = fileRecordRepository.findByFileId(trim(request.getFileId()))
@@ -20,9 +20,12 @@ import com.cisd.tms.modules.file.repository.FileRecordRepository;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class ResourceRestoreServiceImpl implements ResourceRestoreService {
private final ResourceRestoreTaskRepository resourceRestoreTaskRepository;
@@ -34,47 +37,6 @@ public class ResourceRestoreServiceImpl implements ResourceRestoreService {
private final ResourceBackupProperties resourceBackupProperties;
private final ResourceRestoreRunnerLauncher resourceRestoreRunnerLauncher;
public ResourceRestoreServiceImpl(
ResourceRestoreTaskRepository resourceRestoreTaskRepository,
FileRecordRepository fileRecordRepository,
ResourcePrecheckStateStore resourcePrecheckStateStore,
ResourceTaskIdGenerator resourceTaskIdGenerator,
HandoffFileStore handoffFileStore,
ResourceRestoreStateFileStore resourceRestoreStateFileStore,
ResourceBackupProperties resourceBackupProperties,
ResourceRestoreRunnerLauncher resourceRestoreRunnerLauncher
) {
this.resourceRestoreTaskRepository = resourceRestoreTaskRepository;
this.fileRecordRepository = fileRecordRepository;
this.resourcePrecheckStateStore = resourcePrecheckStateStore;
this.resourceTaskIdGenerator = resourceTaskIdGenerator;
this.handoffFileStore = handoffFileStore;
this.resourceRestoreStateFileStore = resourceRestoreStateFileStore;
this.resourceBackupProperties = resourceBackupProperties;
this.resourceRestoreRunnerLauncher = resourceRestoreRunnerLauncher;
}
public ResourceRestoreServiceImpl(
ResourceRestoreTaskRepository resourceRestoreTaskRepository,
FileRecordRepository fileRecordRepository,
ResourcePrecheckStateStore resourcePrecheckStateStore,
ResourceTaskIdGenerator resourceTaskIdGenerator,
HandoffFileStore handoffFileStore,
ResourceRestoreStateFileStore resourceRestoreStateFileStore,
ResourceBackupProperties resourceBackupProperties
) {
this(
resourceRestoreTaskRepository,
fileRecordRepository,
resourcePrecheckStateStore,
resourceTaskIdGenerator,
handoffFileStore,
resourceRestoreStateFileStore,
resourceBackupProperties,
handoffFile -> {
}
);
}
@Override
public CreateResourceRestoreResponse createRestoreTask(CreateResourceRestoreRequest request) {
@@ -19,9 +19,12 @@ import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class ResourceTaskQueryServiceImpl implements ResourceTaskQueryService {
private final ResourceRestoreTaskRepository resourceRestoreTaskRepository;
@@ -29,26 +32,6 @@ public class ResourceTaskQueryServiceImpl implements ResourceTaskQueryService {
private final ObjectMapper objectMapper;
private final ResourceTaskStepLogService resourceTaskStepLogService;
public ResourceTaskQueryServiceImpl(
ResourceRestoreTaskRepository resourceRestoreTaskRepository,
ResourceRestoreStateFileStore resourceRestoreStateFileStore,
ObjectMapper objectMapper
) {
this(resourceRestoreTaskRepository, resourceRestoreStateFileStore, objectMapper, new FileSystemResourceTaskStepLogService());
}
public ResourceTaskQueryServiceImpl(
ResourceRestoreTaskRepository resourceRestoreTaskRepository,
ResourceRestoreStateFileStore resourceRestoreStateFileStore,
ObjectMapper objectMapper,
ResourceTaskStepLogService resourceTaskStepLogService
) {
this.resourceRestoreTaskRepository = resourceRestoreTaskRepository;
this.resourceRestoreStateFileStore = resourceRestoreStateFileStore;
this.objectMapper = objectMapper;
this.resourceTaskStepLogService = resourceTaskStepLogService;
}
@Override
public ResourceRestoreTaskDetailResponse getRestoreTask(String taskId) {
ResourceRestoreTaskEntity entity = resourceRestoreTaskRepository.findByTaskId(trim(taskId))