From c18544ece670fe57052fcd97bfed87da7c549d1e Mon Sep 17 00:00:00 2001 From: lishangbu Date: Sun, 29 Jul 2018 13:47:28 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20=E9=87=8D=E6=9E=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81:=E4=B8=BA=E5=89=8D=E7=AB=AF=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=BA=A7=E8=81=94=E9=80=89=E4=B8=AD=E6=8F=90=E4=BE=9B=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pigx/admin/controller/RoleController.java | 4 ++-- .../admin/service/SysRoleMenuService.java | 4 ++-- .../service/impl/SysRoleMenuServiceImpl.java | 20 +++++++++++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java index f0d49681c..bb86b9da3 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RoleController.java @@ -118,12 +118,12 @@ public class RoleController { * 更新角色菜单 * * @param roleId 角色ID - * @param menuIds 菜单结合 + * @param menuIds 菜单ID拼成的字符串,每个id之间根据逗号分隔 * @return success、false */ @PutMapping("/roleMenuUpd") @PreAuthorize("@pms.hasPermission('sys_role_perm')") - public R roleMenuUpd(Integer roleId, @RequestParam("menuIds[]") Integer[] menuIds) { + public R roleMenuUpd(Integer roleId, @RequestParam(value = "menuIds",required = false) String menuIds) { SysRole sysRole = sysRoleService.selectById(roleId); return new R<>(sysRoleMenuService.insertRoleMenus(sysRole.getRoleCode(), roleId, menuIds)); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleMenuService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleMenuService.java index acf41d0fa..4a451c610 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleMenuService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysRoleMenuService.java @@ -38,8 +38,8 @@ public interface SysRoleMenuService extends IService { * * @param role * @param roleId 角色 - * @param menuIds 菜单列表 + * @param menuIds 菜单ID拼成的字符串,每个id之间根据逗号分隔 * @return */ - Boolean insertRoleMenus(String role, Integer roleId, Integer[] menuIds); + Boolean insertRoleMenus(String role, Integer roleId, String menuIds); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java index 0363aadda..cfee15397 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRoleMenuServiceImpl.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.entity.SysRoleMenu; @@ -28,6 +29,7 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -40,18 +42,28 @@ import java.util.List; */ @Service public class SysRoleMenuServiceImpl extends ServiceImpl implements SysRoleMenuService { + /** + * + * @param role + * @param roleId 角色 + * @param menuIds 菜单ID拼成的字符串,每个id之间根据逗号分隔 + * @return + */ @Override @CacheEvict(value = "menu_details", key = "#role + '_menu'") - public Boolean insertRoleMenus(String role, Integer roleId, Integer[] menuIds) { + public Boolean insertRoleMenus(String role, Integer roleId, String menuIds) { SysRoleMenu condition = new SysRoleMenu(); condition.setRoleId(roleId); this.delete(new EntityWrapper<>(condition)); - List roleMenuList = new ArrayList<>(); - for (Integer menuId : menuIds) { + List menuIdList = Arrays.asList(menuIds.split(",")); + if(CollUtil.isEmpty(menuIdList)){ + return Boolean.TRUE; + } + for (String menuId : menuIdList) { SysRoleMenu roleMenu = new SysRoleMenu(); roleMenu.setRoleId(roleId); - roleMenu.setMenuId(menuId); + roleMenu.setMenuId(Integer.valueOf(menuId)); roleMenuList.add(roleMenu); } return this.insertBatch(roleMenuList);