|
@@ -61,8 +61,9 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
* 获取所有启用的菜单列表(树状结构返回)
|
|
|
*/
|
|
|
@Override
|
|
|
- public ResponseJson<List<SysMenuTree>> getMenuTree() {
|
|
|
- List<SysMenuTree> menus = systemMapper.getMenuTree("0");
|
|
|
+ public ResponseJson<List<SysMenuTree>> getMenuTree(Integer menuType) {
|
|
|
+ menuType = null == menuType ? 1 : menuType;
|
|
|
+ List<SysMenuTree> menus = systemMapper.getMenuTree("0", menuType);
|
|
|
// 递归设置子菜单
|
|
|
setSubMenusData(menus);
|
|
|
return ResponseJson.success(menus);
|
|
@@ -75,7 +76,7 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
if (!CollectionUtils.isEmpty(menus)) {
|
|
|
for (SysMenuTree menu : menus) {
|
|
|
// 获取子菜单
|
|
|
- List<SysMenuTree> submenus = systemMapper.getMenuTree(menu.getId());
|
|
|
+ List<SysMenuTree> submenus = systemMapper.getMenuTree(menu.getId(), null);
|
|
|
if (!CollectionUtils.isEmpty(submenus)) {
|
|
|
setSubMenusData(submenus);
|
|
|
menu.setSubMenus(submenus);
|
|
@@ -131,7 +132,7 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
removeMenuRoleRelation(menu, dbMenu);
|
|
|
if (1 == baseParentMenu.getBaseFlag()) {
|
|
|
// 供应商基础菜单
|
|
|
- addShopRoleRelation(menu.getId(), permissionList);
|
|
|
+ addShopRoleRelation(menu, permissionList);
|
|
|
} else {
|
|
|
// 供应商会员菜单
|
|
|
ResponseJson<Void> saveResult = saveVipMenu(menu, permissionList);
|
|
@@ -216,7 +217,7 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
menu.setBaseParentId(baseParentId);
|
|
|
if (1 == baseParentMenu.getBaseFlag()) {
|
|
|
// 会员基础菜单
|
|
|
- addShopRoleRelation(menuId, permissionList);
|
|
|
+ addShopRoleRelation(menu, permissionList);
|
|
|
} else {
|
|
|
// 会员订制菜单
|
|
|
ResponseJson<Void> saveResult = saveVipMenu(menu, permissionList);
|
|
@@ -251,7 +252,7 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
@Override
|
|
|
public ResponseJson<Void> saveVipMenu(SysMenu menu, List<SysPermission> permissionList) {
|
|
|
if (0 == menu.getParentId()) {
|
|
|
- // 供应商订制首层菜单
|
|
|
+ // 供应商订制顶层菜单
|
|
|
// 保存会员菜单角色
|
|
|
SysRole vipMenuRole = new SysRole();
|
|
|
vipMenuRole.setRoleName(menu.getTitle() + "会员菜单角色");
|
|
@@ -259,11 +260,14 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
vipMenuRole.setMenuIds(menu.getId().toString());
|
|
|
vipMenuRole.setRoleType(2);
|
|
|
Integer dbVipRoleId = systemMapper.getVipRoleIdByMenuId(menu.getId());
|
|
|
+ vipMenuRole.setId(dbVipRoleId);
|
|
|
+ vipMenuRole.setDelFlag(0);
|
|
|
ResponseJson<Void> result = null;
|
|
|
if (null == dbVipRoleId) {
|
|
|
result = sysRoleService.addRole(vipMenuRole);
|
|
|
} else {
|
|
|
- result = sysRoleService.updateRole(dbVipRoleId, vipMenuRole);
|
|
|
+ systemMapper.updateRole(vipMenuRole);
|
|
|
+ result = ResponseJson.success();
|
|
|
}
|
|
|
if (0 != result.getCode()) {
|
|
|
return result;
|
|
@@ -281,7 +285,8 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
return ResponseJson.success();
|
|
|
}
|
|
|
|
|
|
- private void addShopRoleRelation(Integer menuId, List<SysPermission> permissionList) {
|
|
|
+ private void addShopRoleRelation(SysMenu menu, List<SysPermission> permissionList) {
|
|
|
+ Integer menuId = menu.getId();
|
|
|
// 添加供应商基础菜单时将该菜单与供应商基础角色关联
|
|
|
// 根据角色ID获取菜单Ids
|
|
|
List<Integer> menuIdList = systemMapper.getMenuIdsByRoleId(1);
|
|
@@ -291,12 +296,10 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
String menuIds = CommonUtil.idListToString(menuIdList, ",");
|
|
|
sysRole.setMenuIds(menuIds);
|
|
|
sysRoleService.updateRole(1, sysRole);
|
|
|
- sysRoleService.updateRole(2, sysRole);
|
|
|
}
|
|
|
// 添加权限关联
|
|
|
permissionList.forEach(permission->{
|
|
|
systemMapper.insertRolePermissionRelation(1,permission.getId());
|
|
|
- systemMapper.insertRolePermissionRelation(2,permission.getId());
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -312,7 +315,6 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
SysRole sysRole = new SysRole();
|
|
|
sysRole.setMenuIds(menuIds);
|
|
|
sysRoleService.updateRole(1, sysRole);
|
|
|
- sysRoleService.updateRole(2, sysRole);
|
|
|
} else {
|
|
|
// 之前是订制菜单
|
|
|
Integer roleId = systemMapper.getVipRoleIdByMenuId(menuId);
|
|
@@ -320,7 +322,8 @@ public class SysMenuServiceImpl implements SysMenuService {
|
|
|
// 只有顶层订制菜单更改为基础菜单才删除原角色
|
|
|
systemMapper.deleteRole(roleId);
|
|
|
systemMapper.deleteMenuRoleRelation(menuId);
|
|
|
- } else {
|
|
|
+ } else if (0 != menu.getParentId()) {
|
|
|
+ // 子菜单删除菜单角色关联
|
|
|
systemMapper.deleteMenuRoleRelation(menuId);
|
|
|
}
|
|
|
}
|