fix: 修复Spring Boot兼容性问题并添加链接删除功能
主要修改: 1. 降级Spring Boot版本到2.7.18以兼容MyBatis-Plus 2. 修复所有validation包导入路径 (jakarta -> javax) 3. 修复ResponseStatusException API调用 4. 降级Swagger版本以兼容Spring Boot 2.x 5. 添加单个和批量删除链接功能 6. 修复JWT认证中的Claims获取方式 7. 优化代码格式和日志输出 技术细节: - Spring Boot: 3.3.3 -> 2.7.18 - Swagger: springdoc-openapi-starter-webflux-ui:2.3.0 -> springdoc-openapi-webflux-ui:1.7.0 - 所有javax.validation包路径修复 - 新增BatchDeleteRequest和BatchDeleteResponse DTO类 - LinkController中添加DELETE和POST批量删除接口
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package com.gameplatform.server.model.dto.link;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 批量删除链接请求DTO
|
||||
*
|
||||
* @author GamePlatform
|
||||
*/
|
||||
@Schema(description = "批量删除链接请求")
|
||||
public class BatchDeleteRequest {
|
||||
|
||||
@NotEmpty(message = "删除的链接编号列表不能为空")
|
||||
@Size(max = 100, message = "单次最多只能删除100个链接")
|
||||
@Schema(description = "要删除的链接编号列表", example = "[\"EPRGF7ZJ\", \"XKLD9F2M\", \"QWER5TYU\"]", required = true)
|
||||
private List<String> codeNos;
|
||||
|
||||
public BatchDeleteRequest() {}
|
||||
|
||||
public BatchDeleteRequest(List<String> codeNos) {
|
||||
this.codeNos = codeNos;
|
||||
}
|
||||
|
||||
public List<String> getCodeNos() {
|
||||
return codeNos;
|
||||
}
|
||||
|
||||
public void setCodeNos(List<String> codeNos) {
|
||||
this.codeNos = codeNos;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.gameplatform.server.model.dto.link;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 批量删除链接响应DTO
|
||||
*
|
||||
* @author GamePlatform
|
||||
*/
|
||||
@Schema(description = "批量删除链接响应")
|
||||
public class BatchDeleteResponse {
|
||||
|
||||
@Schema(description = "成功删除的数量", example = "3")
|
||||
private int successCount;
|
||||
|
||||
@Schema(description = "删除失败的数量", example = "1")
|
||||
private int failedCount;
|
||||
|
||||
@Schema(description = "总数量", example = "4")
|
||||
private int totalCount;
|
||||
|
||||
@Schema(description = "成功删除的链接编号列表", example = "[\"EPRGF7ZJ\", \"XKLD9F2M\"]")
|
||||
private List<String> successCodeNos;
|
||||
|
||||
@Schema(description = "删除失败的链接编号列表", example = "[\"QWER5TYU\"]")
|
||||
private List<String> failedCodeNos;
|
||||
|
||||
@Schema(description = "删除失败的原因列表", example = "[\"链接不存在或无权删除\"]")
|
||||
private List<String> failedReasons;
|
||||
|
||||
@Schema(description = "是否全部成功", example = "false")
|
||||
private boolean allSuccess;
|
||||
|
||||
public BatchDeleteResponse() {}
|
||||
|
||||
public BatchDeleteResponse(int successCount, int failedCount, int totalCount,
|
||||
List<String> successCodeNos, List<String> failedCodeNos,
|
||||
List<String> failedReasons) {
|
||||
this.successCount = successCount;
|
||||
this.failedCount = failedCount;
|
||||
this.totalCount = totalCount;
|
||||
this.successCodeNos = successCodeNos;
|
||||
this.failedCodeNos = failedCodeNos;
|
||||
this.failedReasons = failedReasons;
|
||||
this.allSuccess = failedCount == 0;
|
||||
}
|
||||
|
||||
// Getters and Setters
|
||||
public int getSuccessCount() {
|
||||
return successCount;
|
||||
}
|
||||
|
||||
public void setSuccessCount(int successCount) {
|
||||
this.successCount = successCount;
|
||||
}
|
||||
|
||||
public int getFailedCount() {
|
||||
return failedCount;
|
||||
}
|
||||
|
||||
public void setFailedCount(int failedCount) {
|
||||
this.failedCount = failedCount;
|
||||
}
|
||||
|
||||
public int getTotalCount() {
|
||||
return totalCount;
|
||||
}
|
||||
|
||||
public void setTotalCount(int totalCount) {
|
||||
this.totalCount = totalCount;
|
||||
}
|
||||
|
||||
public List<String> getSuccessCodeNos() {
|
||||
return successCodeNos;
|
||||
}
|
||||
|
||||
public void setSuccessCodeNos(List<String> successCodeNos) {
|
||||
this.successCodeNos = successCodeNos;
|
||||
}
|
||||
|
||||
public List<String> getFailedCodeNos() {
|
||||
return failedCodeNos;
|
||||
}
|
||||
|
||||
public void setFailedCodeNos(List<String> failedCodeNos) {
|
||||
this.failedCodeNos = failedCodeNos;
|
||||
}
|
||||
|
||||
public List<String> getFailedReasons() {
|
||||
return failedReasons;
|
||||
}
|
||||
|
||||
public void setFailedReasons(List<String> failedReasons) {
|
||||
this.failedReasons = failedReasons;
|
||||
}
|
||||
|
||||
public boolean isAllSuccess() {
|
||||
return allSuccess;
|
||||
}
|
||||
|
||||
public void setAllSuccess(boolean allSuccess) {
|
||||
this.allSuccess = allSuccess;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user