fix: 修复升级遗漏的 CrudApi 替换(单个删除和批量删除已拆分为两个API,由于项目前端之前已经统一改造为批量删除,所以需要调整)

This commit is contained in:
2025-07-06 21:38:11 +08:00
parent fcc31ec429
commit c5092aa618
16 changed files with 22 additions and 23 deletions

View File

@@ -67,7 +67,7 @@ public class BaseController<S extends BaseService<L, D, Q, C>, L, D, Q, C> exten
CrudRequestMapping crudRequestMapping = targetClass.getDeclaredAnnotation(CrudRequestMapping.class);
String path = crudRequestMapping.value();
String prefix = String.join(StringConstants.COLON, CharSequenceUtil.splitTrim(path, StringConstants.SLASH));
String apiName = this.getApiName(crudApi.value());
String apiName = getApiName(crudApi.value());
StpUtil.checkPermission("%s:%s".formatted(prefix, apiName.toLowerCase()));
}
@@ -77,7 +77,7 @@ public class BaseController<S extends BaseService<L, D, Q, C>, L, D, Q, C> exten
* @param api API
* @return API 名称
*/
private String getApiName(Api api) {
public static String getApiName(Api api) {
return switch (api) {
case PAGE, TREE, LIST -> Api.LIST.name();
case DELETE, BATCH_DELETE -> Api.DELETE.name();

View File

@@ -21,10 +21,10 @@ import cn.dev33.satoken.annotation.SaCheckRole;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.text.CharSequenceUtil;
import org.springframework.web.method.HandlerMethod;
import top.continew.admin.common.base.controller.BaseController;
import top.continew.starter.core.constant.StringConstants;
import top.continew.starter.extension.crud.annotation.CrudApi;
import top.continew.starter.extension.crud.annotation.CrudRequestMapping;
import top.continew.starter.extension.crud.enums.Api;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
@@ -164,17 +164,14 @@ public class OperationDescriptionCustomizer {
private String getCrudPermissionInfo(HandlerMethod handlerMethod) {
CrudRequestMapping crudRequestMapping = handlerMethod.getBeanType().getAnnotation(CrudRequestMapping.class);
CrudApi crudApi = handlerMethod.getMethodAnnotation(CrudApi.class);
if (crudRequestMapping == null || crudApi == null) {
return "";
return StringConstants.EMPTY;
}
String path = crudRequestMapping.value();
String prefix = String.join(StringConstants.COLON, CharSequenceUtil.splitTrim(path, StringConstants.SLASH));
Api api = crudApi.value();
String apiName = Api.PAGE.equals(api) || Api.TREE.equals(api) ? Api.LIST.name() : api.name();
String apiName = BaseController.getApiName(crudApi.value());
String permission = "%s:%s".formatted(prefix, apiName.toLowerCase());
return "<font style=\"color:red\" class=\"light-red\">CRUD 权限校验:</font></br><font style=\"color:red\" class=\"light-red\">方法:</font><font style=\"color:red\" class=\"light-red\">" + permission + "</font>";
}
}