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);