Просмотр исходного кода

[菜单][修改]:系统管理员菜单初始化

release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
26ea9a5c09
1 измененных файлов: 34 добавлений и 53 удалений
  1. +34
    -53
      mallinkSysAdmin/src/main/java/com/iformall/controller/sys/SysMenuController.java

+ 34
- 53
mallinkSysAdmin/src/main/java/com/iformall/controller/sys/SysMenuController.java Просмотреть файл

@@ -154,60 +154,44 @@ public class SysMenuController extends BaseController {
logger.debug("[" + getIpAddr() + "] MallPermissionController::upgradeMenus");
MallUserInfo userInfo = getUser();
if(userInfo.isFmSuperAdmin()) {
// 已有Role
MallRole q = new MallRole();
List<MallRole> mallRoleList = mallRoleService.getList(q);
for(MallRole mallRole: mallRoleList) {
MallRolePermission qRP = new MallRolePermission();
qRP.setRoleId(mallRole.getId());
List<MallRolePermission> mallRolePermissionList = mallRolePermissionService.getList(qRP);
boolean isOld = mallRolePermissionList.stream().allMatch(
(rolePermission->
(rolePermission.getPermissionId().longValue() <= (long)EnumMenuType.PAGE_MAIN.getCode())
)
);
if(mallRolePermissionList.size() == 1) {
MallRolePermission mRP = mallRolePermissionList.get(0);
if(mRP.getPermissionId().longValue() == (long)EnumMenuType.MOBILE_ADMIN.getCode()) {
isOld = false;
}
if(mRP.getPermissionId().longValue() == (long)EnumMenuType.PAGE_MAIN.getCode()) {
isOld = false;
}
}
if(isOld){
// 添加子权限给此role
List<Long> pList = new ArrayList<>();
// 默认用户添加首页
pList.add(Long.valueOf(EnumMenuType.PAGE_MAIN.getCode()));
// 添加原有子菜单
for(MallRolePermission mRP: mallRolePermissionList) {
// 原有权限
pList.add(mRP.getPermissionId());
// 二级菜单
List<MallPermission> subList2 = mallPermissionService.getByParentId(mRP.getPermissionId());
for(MallPermission mp: subList2) {
pList.add(mp.getId());
// 三级菜单
List<MallPermission> subList3 = mallPermissionService.getByParentId(mp.getId());
if(subList3.size() > 0) {
subList3.stream().forEach(smp->{
pList.add(smp.getId());
});
}
}
adminMenuUpgrade();
return new ResultData();
}
return new ResultData(ErrorCode.USER_NO_PERMISSION);
}

private void adminMenuUpgrade() {
// 1. 获取已有管理员
MallRole mrQ = new MallRole();
mrQ.setName("系统管理员");
mrQ.setAvailable("0");
List<MallRole> mallRoleList = mallRoleService.getList(mrQ);
// 2. 获取全部permission
MallPermission mpQ = new MallPermission();
mpQ.setAvailable("Y");
List<MallPermission> mpList = mallPermissionService.getList(mpQ);
for(MallRole mallRole: mallRoleList) {
MallRolePermission qRP = new MallRolePermission();
qRP.setRoleId(mallRole.getId());
List<MallRolePermission> mallRolePermissionList = mallRolePermissionService.getList(qRP);
if (mpList.size() != mallRolePermissionList.size()) {
// 3. permission不一致, 添加到mall_role_permission
for(MallPermission mp: mpList) {
if (mallRolePermissionList.stream().anyMatch(mallRolePermission -> mp.getId().equals(mallRolePermission.getPermissionId())))
continue;
// 3.1 添加到mall_role_permission
try {
mallRolePermissionService.saveOrUpdate(new MallRolePermission(){{
setTenantId(mallRole.getTenantId());
setPermissionId(mp.getId());
setRoleId(mallRole.getId());
}});
} catch (Exception e) {
logger.error(e.getMessage());
}
List<Long> allList = new ArrayList<>();
List<Long> dpList = pList.stream().distinct().collect(Collectors.toList());
allList.addAll(dpList);
Long[] idArray = new Long[allList.size()];
allList.toArray(idArray);
mallRolePermissionService.savePermissions(mallRole.getTenantId(), mallRole.getId(), idArray);
}
}
return new ResultData();
}
return new ResultData(ErrorCode.USER_NO_PERMISSION);
}

@ApiOperation("用户菜单迁移")
@@ -222,9 +206,6 @@ public class SysMenuController extends BaseController {
addMenusForContract();
// 3. 账单
addMenusForBills();



return new ResultData();
}
return new ResultData(ErrorCode.USER_NO_PERMISSION);


Загрузка…
Отмена
Сохранить