♻️ 重构代码:为前端菜单级联选中提供支持

This commit is contained in:
lishangbu committed 2018-07-29 13:47:28 +08:00
1 parent 47e51a686c
commit c18544ece6
3 files changed
+20 -8

No files matched your search

@@ -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<Boolean> roleMenuUpd(Integer roleId, @RequestParam("menuIds[]") Integer[] menuIds) {
public R<Boolean> roleMenuUpd(Integer roleId, @RequestParam(value = "menuIds",required = false) String menuIds) {
SysRole sysRole = sysRoleService.selectById(roleId);
return new R<>(sysRoleMenuService.insertRoleMenus(sysRole.getRoleCode(), roleId, menuIds));
}
@@ -38,8 +38,8 @@ public interface SysRoleMenuService extends IService<SysRoleMenu> {
*
* @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);
}
@@ -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<SysRoleMenuMapper, SysRoleMenu> 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<SysRoleMenu> roleMenuList = new ArrayList<>();
for (Integer menuId : menuIds) {
List<String> 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);