【7.2.5】【role】更新获取所有菜单按钮id集合接口

pull/37/head
fengshuonan 2022-09-29 11:52:08 +08:00
parent 160f21b06b
commit 4c5ef6a0fe
4 changed files with 67 additions and 7 deletions

View File

@ -27,6 +27,7 @@ package cn.stylefeng.roses.kernel.system.api;
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexMenuInfo;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuButtonDTO;
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
import java.util.List;
@ -133,6 +134,6 @@ public interface MenuServiceApi {
* @author fengshuonan
* @date 2022/9/29 9:56
*/
List<Long> getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum);
List<SysMenuButtonDTO> getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum);
}

View File

@ -0,0 +1,48 @@
/*
* 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.pojo.menu;
import lombok.Data;
/**
* DTO
*
* @author fengshuonan
* @date 2022/9/29 11:48
*/
@Data
public class SysMenuButtonDTO {
/**
*
*/
private Long buttonId;
/**
*
*/
private String buttonCode;
}

View File

@ -49,6 +49,7 @@ import cn.stylefeng.roses.kernel.system.api.exception.enums.menu.SysMenuExceptio
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult;
import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexMenuInfo;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuButtonDTO;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuRequest;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdMenuSelectTreeNode;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdSysMenuDTO;
@ -526,7 +527,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
}
@Override
public List<Long> getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum) {
public List<SysMenuButtonDTO> getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum) {
List<Long> totalMenuIdList = this.getTotalMenuIdList(antdvFrontTypeEnum);
@ -536,12 +537,20 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
// 获取所有按钮id集合
LambdaQueryWrapper<SysMenuButton> wrapper = new LambdaQueryWrapper<>();
wrapper.select(SysMenuButton::getButtonId);
wrapper.select(SysMenuButton::getButtonId, SysMenuButton::getButtonCode);
wrapper.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
wrapper.in(SysMenuButton::getMenuId, totalMenuIdList);
List<SysMenuButton> list = this.sysMenuButtonService.list(wrapper);
return list.stream().map(SysMenuButton::getButtonId).collect(Collectors.toList());
ArrayList<SysMenuButtonDTO> menuButtonDTOS = new ArrayList<>();
for (SysMenuButton sysMenuButton : list) {
SysMenuButtonDTO sysMenuButtonDTO = new SysMenuButtonDTO();
sysMenuButtonDTO.setButtonId(sysMenuButton.getButtonId());
sysMenuButtonDTO.setButtonCode(sysMenuButton.getButtonCode());
menuButtonDTOS.add(sysMenuButtonDTO);
}
return menuButtonDTOS;
}
@Override

View File

@ -48,6 +48,7 @@ import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
import cn.stylefeng.roses.kernel.system.api.exception.enums.role.SysRoleExceptionEnum;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuButtonDTO;
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleMenuButtonDTO;
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleMenuDTO;
@ -528,14 +529,15 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
}
// 获取所有前台按钮集合
List<Long> totalButtonIds = this.menuServiceApi.getTotalMenuButtonIdList(AntdvFrontTypeEnum.FRONT);
List<SysMenuButtonDTO> totalButtonIds = this.menuServiceApi.getTotalMenuButtonIdList(AntdvFrontTypeEnum.FRONT);
// 批量保存绑定的按钮集合
List<SysRoleMenuButton> sysRoleMenuButtons = new ArrayList<>();
for (Long buttonId : totalButtonIds) {
for (SysMenuButtonDTO buttonDTO : totalButtonIds) {
SysRoleMenuButton item = new SysRoleMenuButton();
item.setRoleId(sysRoleRequest.getRoleId());
item.setButtonId(buttonId);
item.setButtonId(buttonDTO.getButtonId());
item.setButtonCode(buttonDTO.getButtonCode());
sysRoleMenuButtons.add(item);
}
this.sysRoleMenuButtonService.saveBatch(sysRoleMenuButtons);