【7.2.5】【role】更新角色授权界面的条件

pull/37/head
fengshuonan 2022-09-29 15:55:45 +08:00
parent d658560b21
commit f17273fd5b
5 changed files with 33 additions and 71 deletions

View File

@ -24,6 +24,7 @@
*/
package cn.stylefeng.roses.kernel.system.api.enums;
import cn.hutool.core.util.ObjectUtil;
import lombok.Getter;
/**
@ -59,4 +60,23 @@ public enum AntdvFrontTypeEnum {
this.message = message;
}
/**
* int
*
* @author fengshuonan
* @date 2022/9/29 15:50
*/
public static AntdvFrontTypeEnum parseToEnum(Integer originValue) {
if (ObjectUtil.isEmpty(originValue)) {
return null;
}
for (AntdvFrontTypeEnum value : AntdvFrontTypeEnum.values()) {
if (value.code.equals(originValue)) {
return value;
}
}
return null;
}
}

View File

@ -1,62 +0,0 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.system.api.enums;
import lombok.Getter;
/**
*
*
* @author fengshuonan
* @date 2022/4/28 11:37
*/
@Getter
public enum MenuFrontTypeEnum {
/**
*
*/
FRONT(1, "前台显示"),
/**
*
*/
BACKEND(2, "后台显示"),
/**
*
*/
TOTAL(3, "全部显示");
private final Integer code;
private final String message;
MenuFrontTypeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}

View File

@ -43,7 +43,6 @@ import cn.stylefeng.roses.kernel.system.api.AppServiceApi;
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
import cn.stylefeng.roses.kernel.system.api.RoleServiceApi;
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
import cn.stylefeng.roses.kernel.system.api.enums.MenuFrontTypeEnum;
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
import cn.stylefeng.roses.kernel.system.api.exception.enums.menu.SysMenuExceptionEnum;
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult;
@ -137,7 +136,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
// 设置如果菜单前后台类型如果为空,则默认为都显示
if (ObjectUtil.isEmpty(sysMenuRequest.getAntdvFrontType())) {
sysMenu.setAntdvFrontType(MenuFrontTypeEnum.TOTAL.getCode());
sysMenu.setAntdvFrontType(AntdvFrontTypeEnum.TOTAL_SHOW.getCode());
}
this.save(sysMenu);
@ -310,7 +309,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
// 获取前台或者后台类型
Integer antdvFrontType = sysMenuRequest.getAntdvFrontType();
if (antdvFrontType == null) {
antdvFrontType = MenuFrontTypeEnum.FRONT.getCode();
antdvFrontType = AntdvFrontTypeEnum.FRONT.getCode();
}
// 获取当前已经启用的应用,并且按排序字段排序的
@ -520,7 +519,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
menuWrapper.eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode());
menuWrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode());
menuWrapper.nested(i -> i.eq(SysMenu::getAntdvFrontType, antdvFrontTypeEnum.getCode()).or().eq(SysMenu::getAntdvFrontType, AntdvFrontTypeEnum.TOTAL_SHOW.getCode()));
if (antdvFrontTypeEnum != null) {
menuWrapper.nested(i -> i.eq(SysMenu::getAntdvFrontType, antdvFrontTypeEnum.getCode()).or().eq(SysMenu::getAntdvFrontType, AntdvFrontTypeEnum.TOTAL_SHOW.getCode()));
}
List<SysMenu> sysMenuList = this.list(menuWrapper);
return sysMenuList.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
@ -567,7 +569,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
// 判断前台还是后台菜单
if (ObjectUtil.isNotEmpty(antdvFrontType)) {
queryWrapper.in(SysMenu::getAntdvFrontType, ListUtil.list(true, antdvFrontType, MenuFrontTypeEnum.TOTAL.getCode()));
queryWrapper.in(SysMenu::getAntdvFrontType, ListUtil.list(true, antdvFrontType, AntdvFrontTypeEnum.TOTAL_SHOW.getCode()));
}
// 如果是不分离版本,则筛选一下不需要显示的菜单

View File

@ -496,7 +496,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
}
// 获取所有前台菜单id
List<Long> totalMenuIdList = this.menuServiceApi.getTotalMenuIdList(AntdvFrontTypeEnum.FRONT);
AntdvFrontTypeEnum antdvFrontTypeEnum = AntdvFrontTypeEnum.parseToEnum(sysRoleRequest.getResourceBizType());
List<Long> totalMenuIdList = this.menuServiceApi.getTotalMenuIdList(antdvFrontTypeEnum);
// 批量保存绑定的菜单集合
List<SysRoleMenu> sysRoleMenus = new ArrayList<>();
@ -529,7 +530,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
}
// 获取所有前台按钮集合
List<SysMenuButtonDTO> totalButtonIds = this.menuServiceApi.getTotalMenuButtonIdList(AntdvFrontTypeEnum.FRONT);
AntdvFrontTypeEnum antdvFrontTypeEnum = AntdvFrontTypeEnum.parseToEnum(sysRoleRequest.getResourceBizType());
List<SysMenuButtonDTO> totalButtonIds = this.menuServiceApi.getTotalMenuButtonIdList(antdvFrontTypeEnum);
// 批量保存绑定的按钮集合
List<SysRoleMenuButton> sysRoleMenuButtons = new ArrayList<>();

View File

@ -31,7 +31,7 @@ import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
import cn.stylefeng.roses.kernel.rule.enums.SexEnum;
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
import cn.stylefeng.roses.kernel.system.api.enums.MenuFrontTypeEnum;
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexRoleInfo;
import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexUserInfoV3;
import cn.stylefeng.roses.kernel.system.modular.user.service.IndexUserInfoService;
@ -111,7 +111,7 @@ public class IndexUserInfoServiceImpl implements IndexUserInfoService {
// 获取用户菜单和权限信息
if (ObjectUtil.isEmpty(menuFrontType)) {
menuFrontType = MenuFrontTypeEnum.FRONT.getCode();
menuFrontType = AntdvFrontTypeEnum.FRONT.getCode();
}
indexUserInfoV3.setAuthorities(menuServiceApi.buildAuthorities(menuFrontType));