From 6bc4eb0cbdefc419e384030621778c8f568d7c41 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Sat, 16 Nov 2024 20:08:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/bunny/dao/pojo/result/ResultCodeEnum.java | 1 + .../service/system/impl/RouterServiceImpl.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/dao/src/main/java/cn/bunny/dao/pojo/result/ResultCodeEnum.java b/dao/src/main/java/cn/bunny/dao/pojo/result/ResultCodeEnum.java index a70cc3c..cf2503d 100644 --- a/dao/src/main/java/cn/bunny/dao/pojo/result/ResultCodeEnum.java +++ b/dao/src/main/java/cn/bunny/dao/pojo/result/ResultCodeEnum.java @@ -73,6 +73,7 @@ public enum ResultCodeEnum { LOGGED_IN_FROM_ANOTHER_DEVICE(403, "没有权限访问"), TOKEN_PARSING_FAILED(403, "token解析失败"), FAIL_NO_ACCESS_DENIED_USER_LOCKED(403, "该账户已封禁"), + ROUTER_RANK_NEED_LARGER_THAN_THE_PARENT(219, "设置路由等级需要大于或等于父级的路由等级"), // 系统错误 500 UNKNOWN_EXCEPTION(500, "服务异常"), diff --git a/service/src/main/java/cn/bunny/services/service/system/impl/RouterServiceImpl.java b/service/src/main/java/cn/bunny/services/service/system/impl/RouterServiceImpl.java index 1856b96..f4516e0 100644 --- a/service/src/main/java/cn/bunny/services/service/system/impl/RouterServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/system/impl/RouterServiceImpl.java @@ -217,6 +217,14 @@ public class RouterServiceImpl extends ServiceImpl impleme */ @Override public void updateMenu(RouterUpdateDto dto) { + // 查询当前路由和父级路由 + Router routerParent = getOne(Wrappers.lambdaQuery().eq(Router::getId, dto.getParentId())); + + // 设置路由等级需要大于或等于父级的路由等级 + if (routerParent != null && (dto.getRouterRank() < routerParent.getRouterRank())) { + throw new BunnyException(ResultCodeEnum.ROUTER_RANK_NEED_LARGER_THAN_THE_PARENT); + } + // 如果设置的不是外部页面 if (!dto.getMenuType().equals(2)) dto.setFrameSrc(""); @@ -258,6 +266,14 @@ public class RouterServiceImpl extends ServiceImpl impleme // 判断更新数据是否存在 if (router == null) throw new BunnyException(ResultCodeEnum.DATA_NOT_EXIST); + // 查询当前路由和父级路由 + Router routerParent = getOne(Wrappers.lambdaQuery().eq(Router::getId, router.getParentId())); + + // 设置路由等级需要大于或等于父级的路由等级 + if (routerParent != null && (dto.getRouterRank() < routerParent.getRouterRank())) { + throw new BunnyException(ResultCodeEnum.ROUTER_RANK_NEED_LARGER_THAN_THE_PARENT); + } + // 更新排序 router = new Router(); router.setId(dto.getId());