Refactor backend and frontend modules for architecture alignment

This commit is contained in:
yoyuzh
2026-04-12 00:32:21 +08:00
parent f59515f5dd
commit 30a9bbc1e7
253 changed files with 25462 additions and 4786 deletions

View File

@@ -34,18 +34,47 @@ import java.util.List;
@PreAuthorize("@adminAccessEvaluator.isAdmin(authentication)")
public class AdminController {
private final AdminService adminService;
private final AdminInspectionQueryService adminInspectionQueryService;
private final AdminTaskQueryService adminTaskQueryService;
private final AdminStoragePolicyQueryService adminStoragePolicyQueryService;
private final AdminAuditQueryService adminAuditQueryService;
private final AdminResourceGovernanceService adminResourceGovernanceService;
private final AdminStorageGovernanceService adminStorageGovernanceService;
private final AdminConfigSnapshotService adminConfigSnapshotService;
private final AdminMutableSettingsService adminMutableSettingsService;
private final AdminUserGovernanceService adminUserGovernanceService;
private final CustomUserDetailsService userDetailsService;
@GetMapping("/summary")
public ApiResponse<AdminSummaryResponse> summary() {
return ApiResponse.success(adminService.getSummary());
return ApiResponse.success(adminInspectionQueryService.getSummary());
}
@GetMapping("/settings")
public ApiResponse<AdminSettingsResponse> settings() {
return ApiResponse.success(adminConfigSnapshotService.getSettings());
}
@PatchMapping("/settings/registration/invite-code")
public ApiResponse<AdminRegistrationInviteCodeResponse> updateRegistrationInviteCode(
@Valid @RequestBody AdminRegistrationInviteCodeUpdateRequest request) {
return ApiResponse.success(adminMutableSettingsService.updateRegistrationInviteCode(request.inviteCode()));
}
@PostMapping("/settings/registration/invite-code/rotate")
public ApiResponse<AdminRegistrationInviteCodeResponse> rotateRegistrationInviteCode() {
return ApiResponse.success(adminMutableSettingsService.rotateRegistrationInviteCode());
}
@GetMapping("/filesystem")
public ApiResponse<AdminFilesystemResponse> filesystem() {
return ApiResponse.success(adminConfigSnapshotService.getFilesystem());
}
@PatchMapping("/settings/offline-transfer-storage-limit")
public ApiResponse<AdminOfflineTransferStorageLimitResponse> updateOfflineTransferStorageLimit(
@Valid @RequestBody AdminOfflineTransferStorageLimitUpdateRequest request) {
return ApiResponse.success(adminService.updateOfflineTransferStorageLimit(
return ApiResponse.success(adminMutableSettingsService.updateOfflineTransferStorageLimit(
request.offlineTransferStorageLimitBytes()
));
}
@@ -54,7 +83,7 @@ public class AdminController {
public ApiResponse<PageResponse<AdminUserResponse>> users(@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "") String query) {
return ApiResponse.success(adminService.listUsers(page, size, query));
return ApiResponse.success(adminUserGovernanceService.listUsers(page, size, query));
}
@GetMapping("/files")
@@ -62,7 +91,7 @@ public class AdminController {
@RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "") String query,
@RequestParam(defaultValue = "") String ownerQuery) {
return ApiResponse.success(adminService.listFiles(page, size, query, ownerQuery));
return ApiResponse.success(adminInspectionQueryService.listFiles(page, size, query, ownerQuery));
}
@GetMapping("/file-blobs")
@@ -72,7 +101,7 @@ public class AdminController {
@RequestParam(required = false) Long storagePolicyId,
@RequestParam(defaultValue = "") String objectKey,
@RequestParam(required = false) FileEntityType entityType) {
return ApiResponse.success(adminService.listFileBlobs(page, size, userQuery, storagePolicyId, objectKey, entityType));
return ApiResponse.success(adminInspectionQueryService.listFileBlobs(page, size, userQuery, storagePolicyId, objectKey, entityType));
}
@GetMapping("/shares")
@@ -83,12 +112,12 @@ public class AdminController {
@RequestParam(defaultValue = "") String token,
@RequestParam(required = false) Boolean passwordProtected,
@RequestParam(required = false) Boolean expired) {
return ApiResponse.success(adminService.listShares(page, size, userQuery, fileName, token, passwordProtected, expired));
return ApiResponse.success(adminInspectionQueryService.listShares(page, size, userQuery, fileName, token, passwordProtected, expired));
}
@DeleteMapping("/shares/{shareId}")
public ApiResponse<Void> deleteShare(@PathVariable Long shareId) {
adminService.deleteShare(shareId);
adminResourceGovernanceService.deleteShare(shareId);
return ApiResponse.success();
}
@@ -100,37 +129,54 @@ public class AdminController {
@RequestParam(required = false) BackgroundTaskStatus status,
@RequestParam(required = false) BackgroundTaskFailureCategory failureCategory,
@RequestParam(required = false) AdminTaskLeaseState leaseState) {
return ApiResponse.success(adminService.listTasks(page, size, userQuery, type, status, failureCategory, leaseState));
return ApiResponse.success(adminTaskQueryService.listTasks(page, size, userQuery, type, status, failureCategory, leaseState));
}
@GetMapping("/tasks/{taskId}")
public ApiResponse<AdminTaskResponse> task(@PathVariable Long taskId) {
return ApiResponse.success(adminService.getTask(taskId));
return ApiResponse.success(adminTaskQueryService.getTask(taskId));
}
@GetMapping("/storage-policies")
public ApiResponse<List<AdminStoragePolicyResponse>> storagePolicies() {
return ApiResponse.success(adminService.listStoragePolicies());
return ApiResponse.success(adminStoragePolicyQueryService.listStoragePolicies());
}
@GetMapping("/audits")
public ApiResponse<PageResponse<AdminAuditLogResponse>> audits(@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size,
@RequestParam(defaultValue = "") String actorQuery,
@RequestParam(defaultValue = "") String actionType,
@RequestParam(defaultValue = "") String targetType,
@RequestParam(required = false) Long targetId) {
return ApiResponse.success(adminAuditQueryService.listAuditLogs(
page,
size,
actorQuery,
actionType,
targetType,
targetId
));
}
@PostMapping("/storage-policies")
public ApiResponse<AdminStoragePolicyResponse> createStoragePolicy(
@Valid @RequestBody AdminStoragePolicyUpsertRequest request) {
return ApiResponse.success(adminService.createStoragePolicy(request));
return ApiResponse.success(adminStorageGovernanceService.createStoragePolicy(request));
}
@PutMapping("/storage-policies/{policyId}")
public ApiResponse<AdminStoragePolicyResponse> updateStoragePolicy(
@PathVariable Long policyId,
@Valid @RequestBody AdminStoragePolicyUpsertRequest request) {
return ApiResponse.success(adminService.updateStoragePolicy(policyId, request));
return ApiResponse.success(adminStorageGovernanceService.updateStoragePolicy(policyId, request));
}
@PatchMapping("/storage-policies/{policyId}/status")
public ApiResponse<AdminStoragePolicyResponse> updateStoragePolicyStatus(
@PathVariable Long policyId,
@Valid @RequestBody AdminStoragePolicyStatusUpdateRequest request) {
return ApiResponse.success(adminService.updateStoragePolicyStatus(policyId, request.enabled()));
return ApiResponse.success(adminStorageGovernanceService.updateStoragePolicyStatus(policyId, request.enabled()));
}
@PostMapping("/storage-policies/migrations")
@@ -138,48 +184,48 @@ public class AdminController {
@AuthenticationPrincipal UserDetails userDetails,
@Valid @RequestBody AdminStoragePolicyMigrationCreateRequest request) {
User user = userDetailsService.loadDomainUser(userDetails.getUsername());
return ApiResponse.success(toTaskResponse(adminService.createStoragePolicyMigrationTask(user, request)));
return ApiResponse.success(toTaskResponse(adminStorageGovernanceService.createStoragePolicyMigrationTask(user, request)));
}
@DeleteMapping("/files/{fileId}")
public ApiResponse<Void> deleteFile(@PathVariable Long fileId) {
adminService.deleteFile(fileId);
adminResourceGovernanceService.deleteFile(fileId);
return ApiResponse.success();
}
@PatchMapping("/users/{userId}/role")
public ApiResponse<AdminUserResponse> updateUserRole(@PathVariable Long userId,
@Valid @RequestBody AdminUserRoleUpdateRequest request) {
return ApiResponse.success(adminService.updateUserRole(userId, request.role()));
return ApiResponse.success(adminUserGovernanceService.updateUserRole(userId, request.role()));
}
@PatchMapping("/users/{userId}/status")
public ApiResponse<AdminUserResponse> updateUserStatus(@PathVariable Long userId,
@Valid @RequestBody AdminUserStatusUpdateRequest request) {
return ApiResponse.success(adminService.updateUserBanned(userId, request.banned()));
return ApiResponse.success(adminUserGovernanceService.updateUserBanned(userId, request.banned()));
}
@PutMapping("/users/{userId}/password")
public ApiResponse<AdminUserResponse> updateUserPassword(@PathVariable Long userId,
@Valid @RequestBody AdminUserPasswordUpdateRequest request) {
return ApiResponse.success(adminService.updateUserPassword(userId, request.newPassword()));
return ApiResponse.success(adminUserGovernanceService.updateUserPassword(userId, request.newPassword()));
}
@PatchMapping("/users/{userId}/storage-quota")
public ApiResponse<AdminUserResponse> updateUserStorageQuota(@PathVariable Long userId,
@Valid @RequestBody AdminUserStorageQuotaUpdateRequest request) {
return ApiResponse.success(adminService.updateUserStorageQuota(userId, request.storageQuotaBytes()));
return ApiResponse.success(adminUserGovernanceService.updateUserStorageQuota(userId, request.storageQuotaBytes()));
}
@PatchMapping("/users/{userId}/max-upload-size")
public ApiResponse<AdminUserResponse> updateUserMaxUploadSize(@PathVariable Long userId,
@Valid @RequestBody AdminUserMaxUploadSizeUpdateRequest request) {
return ApiResponse.success(adminService.updateUserMaxUploadSize(userId, request.maxUploadSizeBytes()));
return ApiResponse.success(adminUserGovernanceService.updateUserMaxUploadSize(userId, request.maxUploadSizeBytes()));
}
@PostMapping("/users/{userId}/password/reset")
public ApiResponse<AdminPasswordResetResponse> resetUserPassword(@PathVariable Long userId) {
return ApiResponse.success(adminService.resetUserPassword(userId));
return ApiResponse.success(adminUserGovernanceService.resetUserPassword(userId));
}
private BackgroundTaskResponse toTaskResponse(BackgroundTask task) {