feature(权限点): 增加BizEx异常处理

This commit is contained in:
zhansihu 2023-09-19 18:52:57 +08:00
parent abf3bd7c0a
commit 5909b04e27
3 changed files with 43 additions and 10 deletions

View File

@ -14,8 +14,8 @@ import cn.axzo.framework.domain.web.code.IRespCode;
*/
public class Throws {
/** 用于抛出请求参数类异常 **/
public static BizException paramException(IRespCode code, String message) {
/** 用于抛出请求参数类异常 - 避免msg丢失 **/
public static BizException bizException(IRespCode code, String message) {
throw new BizException(ErrorLevel.P2, ErrorType.ERROR_BUSINESS, code, message);
}
}

View File

@ -0,0 +1,33 @@
package cn.axzo.tyr.server.config.exception;
import cn.axzo.framework.autoconfigure.web.exception.RespErrorCodeMappingProperties;
import cn.axzo.framework.autoconfigure.web.exception.handler.AbstractExceptionApiResultHandler;
import cn.axzo.framework.domain.web.BizException;
import cn.axzo.framework.domain.web.code.IRespCode;
import cn.axzo.framework.domain.web.code.RespCode;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
/**
* 业务异常处理器
* 避免返回http 500造成封装多余的消息
* @version V1.0
* @author: ZhanSiHu
* @date: 2023/9/19 16:12
*/
@Component
public class BizExceptionResultHandler extends AbstractExceptionApiResultHandler<BizException> {
public BizExceptionResultHandler(RespErrorCodeMappingProperties properties) {
super(properties);
}
@Override
protected IRespCode decode(BizException ex, IRespCode fallbackCode) {
return new RespCode(ex.getCode(), ex.getMessage());
}
@Override
protected HttpStatus mappingHttpStatus(String code, BizException ex) {
return HttpStatus.OK;
}
}

View File

@ -171,7 +171,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
SaasFeature parent = this.saasFeatureDao.getById(request.getParentId());
if (parent == null) {
log.error("指定的父级节点不存在:{}", request.getParentId());
throw new BizException(BaseCode.BAD_REQUEST);
Throws.bizException(BaseCode.BAD_REQUEST, "父级节点不存在");
}
//追加条件path左匹配
queryWrapper.likeRight(SaasFeature::getPath, parent.getPath() + parent.getId() + FEATURE_PATH_DELIMITER);
@ -326,7 +326,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
SaasFeature feature = this.saasFeatureDao.getById(permissionId);
if (feature == null) {
log.error("未查询到权限点:{}", permissionId);
throw new BizException(BaseCode.BAD_REQUEST, "未查询到权限点");
Throws.bizException(BaseCode.BAD_REQUEST, "未查询到权限点");
}
return feature;
}
@ -363,7 +363,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
switch (featureType) {
case MODULE:
if (parent != null) {
Throws.paramException(BaseCode.BAD_REQUEST, "菜单必须为顶级");
Throws.bizException(BaseCode.BAD_REQUEST, "菜单必须为顶级");
}
break;
case MENU:
@ -371,18 +371,18 @@ public class PermissionPointServiceImpl implements PermissionPointService {
case PAGE:
if (parent == null
|| FeatureType.apply(parent.getFeatureType()) == BUTTON) {
Throws.paramException(BaseCode.BAD_REQUEST, "页面层级错误");
Throws.bizException(BaseCode.BAD_REQUEST, "页面层级错误");
}
break;
case BUTTON:
if (parent == null
|| FeatureType.apply(parent.getFeatureType()) == MODULE
|| FeatureType.apply(parent.getFeatureType()) == BUTTON) {
Throws.paramException(BaseCode.BAD_REQUEST, "按钮层级错误");
Throws.bizException(BaseCode.BAD_REQUEST, "按钮层级错误");
}
break;
default:
Throws.paramException(BaseCode.BAD_REQUEST, "不支持的元素类型");
Throws.bizException(BaseCode.BAD_REQUEST, "不支持的元素类型");
}
}
@ -489,10 +489,10 @@ public class PermissionPointServiceImpl implements PermissionPointService {
if (parentId > 0) {
parent = this.saasFeatureDao.getById(parentId);
if (!StrUtil.equals(feature.getTerminal(), parent.getTerminal())) {
throw new BizException(BaseCode.BAD_REQUEST, "不允许跨工作台");
Throws.bizException(BaseCode.BAD_REQUEST, "不允许跨工作台");
}
if (parent.getPath().contains(String.valueOf(request.getPermissionId()))) {
throw new BizException(BaseCode.BAD_REQUEST, "不允许移到子级");
Throws.bizException(BaseCode.BAD_REQUEST, "不允许移到子级");
}
}
//检查元素类型层级