From f2f9cb308ba689828f8d093b94a4886cd398e20e Mon Sep 17 00:00:00 2001 From: weitang Date: Fri, 27 Jun 2025 11:22:33 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E5=A4=8D=E5=88=B6=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=8A=A0=E4=B8=8A=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/controller/ModuleController.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/core/core-backend/src/main/java/io/gisbi/application/module/controller/ModuleController.java b/core/core-backend/src/main/java/io/gisbi/application/module/controller/ModuleController.java index 4bff6eb..437a3c0 100644 --- a/core/core-backend/src/main/java/io/gisbi/application/module/controller/ModuleController.java +++ b/core/core-backend/src/main/java/io/gisbi/application/module/controller/ModuleController.java @@ -15,7 +15,6 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Map; - /** *

* 应用_系统模块 前端控制器 @@ -36,8 +35,8 @@ public class ModuleController { @GetMapping("/list") public ResponseResult page(@RequestParam String appId) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("app_id",appId); - wrapper.orderByAsc("pid","sort"); // 按编码倒序排列 + wrapper.eq("app_id", appId); + wrapper.orderByAsc("pid", "sort"); // 按编码倒序排列 List> list = moduleService.listMaps(wrapper); return ResponseResult.successData(list); } @@ -64,6 +63,7 @@ public class ModuleController { try { Module module = BeanUtil.toBean(moduleMap, Module.class); module.setId(null); + module.setName(module.getName() + "(复制)"); module.setCreateTime(LocalDateTime.now()); module.setCreateBy(AuthUtils.getUser().getUserId().toString()); @@ -78,7 +78,6 @@ public class ModuleController { } } - // 修改模块 @PostMapping("/update") public ResponseResult update(@RequestBody Module module) { @@ -94,7 +93,7 @@ public class ModuleController { // 获取模块详情 @GetMapping("/{id}") public ResponseResult getById(@PathVariable String id) { - Map moduleMap=null; + Map moduleMap = null; try { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Module::getId, id); @@ -107,8 +106,8 @@ public class ModuleController { // 新增:根据pid判断是否有子节点 @GetMapping("/checkHasChildren") - public boolean checkHasChildren(@RequestParam String appId,@RequestParam String pid) { - boolean hasChildren = moduleService.existsChildrenByPid(appId,pid); + public boolean checkHasChildren(@RequestParam String appId, @RequestParam String pid) { + boolean hasChildren = moduleService.existsChildrenByPid(appId, pid); return hasChildren; } } From ca3c5fd2c940345042a23fbc65d93b9798dad690 Mon Sep 17 00:00:00 2001 From: weitang Date: Fri, 27 Jun 2025 11:39:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E9=80=BB=E8=BE=91=20=E6=96=B0=E5=A2=9E=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E4=B8=8A=E7=A7=BB=E5=92=8C=E4=B8=8B=E7=A7=BB=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/MenuController.java | 13 +++++ .../system/service/IMenuService.java | 3 ++ .../system/service/impl/MenuServiceImpl.java | 50 +++++++++++++++++++ 3 files changed, 66 insertions(+) diff --git a/core/core-backend/src/main/java/io/gisbi/application/system/controller/MenuController.java b/core/core-backend/src/main/java/io/gisbi/application/system/controller/MenuController.java index b8d6038..713f343 100644 --- a/core/core-backend/src/main/java/io/gisbi/application/system/controller/MenuController.java +++ b/core/core-backend/src/main/java/io/gisbi/application/system/controller/MenuController.java @@ -47,6 +47,19 @@ public class MenuController { } } + /** + * 上移/下移菜单 + */ + @PostMapping("/changeOrder") + public ResponseResult changeOrder(@RequestParam String menuId, @RequestParam String direction) { + boolean result = menuService.changeOrder(menuId, direction); + if (result) { + return ResponseResult.success(); + } else { + return ResponseResult.error(); + } + } + /*********************************** * 用途说明:修改菜单及按钮根据ID * 参数说明 diff --git a/core/core-backend/src/main/java/io/gisbi/application/system/service/IMenuService.java b/core/core-backend/src/main/java/io/gisbi/application/system/service/IMenuService.java index 0e7d950..5bcb013 100644 --- a/core/core-backend/src/main/java/io/gisbi/application/system/service/IMenuService.java +++ b/core/core-backend/src/main/java/io/gisbi/application/system/service/IMenuService.java @@ -49,4 +49,7 @@ public interface IMenuService extends IService

{ * 返回值说明: 菜单结构树集合 ***********************************/ List> permissionAssignment(String appId ,String roleId); + + boolean changeOrder(String menuId, String direction); + } diff --git a/core/core-backend/src/main/java/io/gisbi/application/system/service/impl/MenuServiceImpl.java b/core/core-backend/src/main/java/io/gisbi/application/system/service/impl/MenuServiceImpl.java index f2c836a..c7f5459 100644 --- a/core/core-backend/src/main/java/io/gisbi/application/system/service/impl/MenuServiceImpl.java +++ b/core/core-backend/src/main/java/io/gisbi/application/system/service/impl/MenuServiceImpl.java @@ -214,6 +214,56 @@ public class MenuServiceImpl extends ServiceImpl implements IM return listTree; } + @Override + public boolean changeOrder(String menuId, String direction) { + Menu currentMenu = menuMapper.selectById(menuId); + if (currentMenu == null) { + return false; + } + + String parentId = currentMenu.getParentid(); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("parentid", parentId); + wrapper.orderByAsc("orderno"); + + List siblings = menuMapper.selectList(wrapper); + + int index = -1; + for (int i = 0; i < siblings.size(); i++) { + if (siblings.get(i).getId().equals(menuId)) { + index = i; + break; + } + } + + if ("up".equals(direction)) { + if (index > 0) { + swapOrder(siblings.get(index), siblings.get(index - 1)); + } else { + return false; // 已是第一个,无法上移 + } + } else if ("down".equals(direction)) { + if (index < siblings.size() - 1) { + swapOrder(siblings.get(index), siblings.get(index + 1)); + } else { + return false; // 已是最后一个,无法下移 + } + } else { + return false; // 方向错误 + } + return true; + } + + private void swapOrder(Menu m1, Menu m2) { + Integer temp = m1.getOrderno(); + m1.setOrderno(m2.getOrderno()); + m2.setOrderno(temp); + + menuMapper.updateById(m1); + menuMapper.updateById(m2); + } + /********************************** * 用途说明: 生成权菜单权限树 * 参数说明 sysMenus