From b508e05b0c90656d25fd8aaaaa05d8d95501e09a Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sat, 21 Mar 2026 12:41:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysMenuController.java | 14 +++++ .../ruoyi/system/mapper/SysMenuMapper.java | 7 +++ .../ruoyi/system/service/ISysMenuService.java | 8 +++ .../service/impl/SysMenuServiceImpl.java | 29 ++++++++++ .../resources/mapper/system/SysMenuMapper.xml | 6 +- ruoyi-ui/src/api/system/menu.js | 9 +++ ruoyi-ui/src/views/system/menu/index.vue | 56 ++++++++++++++++++- 7 files changed, 126 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java index eecf3cc9..f197828f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.system; import java.util.List; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -129,6 +130,19 @@ public class SysMenuController extends BaseController return toAjax(menuService.updateMenu(menu)); } + /** + * 保存菜单排序 + */ + @Log(title = "保存菜单排序", businessType = BusinessType.UPDATE) + @PutMapping("/updateSort") + public AjaxResult updateSort(@RequestBody Map params) + { + String[] menuIds = params.get("menuIds").split(","); + String[] orderNums = params.get("orderNums").split(","); + menuService.updateMenuSort(menuIds, orderNums); + return success(); + } + /** * 删除菜单 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index 387931e0..ba66cf95 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -106,6 +106,13 @@ public interface SysMenuMapper */ public int updateMenu(SysMenu menu); + /** + * 保存菜单排序 + * + * @param menu 菜单信息 + */ + public void updateMenuSort(SysMenu menu); + /** * 删除菜单管理信息 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 422e620d..31541fec 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -126,6 +126,14 @@ public interface ISysMenuService */ public int updateMenu(SysMenu menu); + /** + * 保存菜单排序 + * + * @param menuIds 菜单ID + * @param orderNums 排序ID + */ + public void updateMenuSort(String[] menuIds, String[] orderNums); + /** * 删除菜单管理信息 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 16466c97..131861ac 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -12,11 +12,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.vo.MetaVo; @@ -321,6 +324,32 @@ public class SysMenuServiceImpl implements ISysMenuService return menuMapper.updateMenu(menu); } + /** + * 保存菜单排序 + * + * @param menuIds 菜单ID + * @param orderNums 排序ID + */ + @Override + @Transactional + public void updateMenuSort(String[] menuIds, String[] orderNums) + { + try + { + for (int i = 0; i < menuIds.length; i++) + { + SysMenu menu = new SysMenu(); + menu.setMenuId(Convert.toLong(menuIds[i])); + menu.setOrderNum(Convert.toInt(orderNums[i])); + menuMapper.updateMenuSort(menu); + } + } + catch (Exception e) + { + throw new ServiceException("保存排序异常,请联系管理员"); + } + } + /** * 删除菜单管理信息 * diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index bc80401b..f7f0c638 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -203,7 +203,11 @@ sysdate() ) - + + + update sys_menu set order_num = #{orderNum} where menu_id = #{menuId} + + delete from sys_menu where menu_id = #{menuId} diff --git a/ruoyi-ui/src/api/system/menu.js b/ruoyi-ui/src/api/system/menu.js index 97258ee6..2fdeb215 100644 --- a/ruoyi-ui/src/api/system/menu.js +++ b/ruoyi-ui/src/api/system/menu.js @@ -51,6 +51,15 @@ export function updateMenu(data) { }) } +// 保存菜单排序 +export function updateMenuSort(data) { + return request({ + url: '/system/menu/updateSort', + method: 'put', + data: data + }) +} + // 删除菜单 export function delMenu(menuId) { return request({ diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/ruoyi-ui/src/views/system/menu/index.vue index 9577d3ec..11a99161 100644 --- a/ruoyi-ui/src/views/system/menu/index.vue +++ b/ruoyi-ui/src/views/system/menu/index.vue @@ -36,6 +36,16 @@ v-hasPermi="['system:menu:add']" >新增 + + 保存排序 + - + + + @@ -299,7 +313,7 @@