mirror of https://gitee.com/stylefeng/roses
【7.2.3】更新角色授权菜单接口,返回授权后信息
parent
946b2f7f9d
commit
b5af67d1fe
|
@ -25,6 +25,8 @@
|
|||
package cn.stylefeng.roses.kernel.system.api;
|
||||
|
||||
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.role.request.SysRoleRequest;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
@ -90,4 +92,13 @@ public interface MenuServiceApi {
|
|||
*/
|
||||
List<IndexMenuInfo> buildAuthorities(Integer menuFrontType);
|
||||
|
||||
|
||||
/**
|
||||
* 获取角色绑定菜单和按钮权限的树
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/8/10 22:23
|
||||
*/
|
||||
List<MenuAndButtonTreeResponse> getRoleMenuAndButtons(SysRoleRequest sysRoleRequest);
|
||||
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ import cn.stylefeng.roses.kernel.rule.tree.ztree.ZTreeNode;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.SysMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdMenuSelectTreeNode;
|
||||
|
@ -59,6 +60,9 @@ public class SysMenuController {
|
|||
@Resource
|
||||
private SysMenuService sysMenuService;
|
||||
|
||||
@Resource
|
||||
private MenuServiceApi menuServiceApi;
|
||||
|
||||
/**
|
||||
* 添加系统菜单
|
||||
*
|
||||
|
@ -196,7 +200,7 @@ public class SysMenuController {
|
|||
*/
|
||||
@GetResource(name = "新版角色分配菜单和按钮界面使用的接口(v2)", path = "/sysMenu/menuAndButtonTreeChildrenV2")
|
||||
public ResponseData<List<MenuAndButtonTreeResponse>> menuAndButtonTreeChildrenV2(SysRoleRequest sysRoleRequest) {
|
||||
List<MenuAndButtonTreeResponse> treeResponseList = sysMenuService.getRoleMenuAndButtons(sysRoleRequest);
|
||||
List<MenuAndButtonTreeResponse> treeResponseList = menuServiceApi.getRoleMenuAndButtons(sysRoleRequest);
|
||||
return new SuccessResponseData<>(treeResponseList);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.menu.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.tree.ztree.ZTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse;
|
||||
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;
|
||||
|
@ -146,14 +145,6 @@ public interface SysMenuService extends IService<SysMenu> {
|
|||
*/
|
||||
List<LayuiMenuAndButtonTreeResponse> getMenuAndButtonTree(SysRoleRequest sysRoleRequest, Boolean lateralFlag);
|
||||
|
||||
/**
|
||||
* 获取角色绑定菜单和按钮权限的树
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/8/10 22:23
|
||||
*/
|
||||
List<MenuAndButtonTreeResponse> getRoleMenuAndButtons(SysRoleRequest sysRoleRequest);
|
||||
|
||||
/**
|
||||
* 获取当前用户的某个应用下的菜单
|
||||
*
|
||||
|
|
|
@ -71,6 +71,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Isolation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -433,6 +434,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
@Transactional(isolation = Isolation.READ_UNCOMMITTED)
|
||||
public List<MenuAndButtonTreeResponse> getRoleMenuAndButtons(SysRoleRequest sysRoleRequest) {
|
||||
List<MenuAndButtonTreeResponse> menuTreeNodeList = CollectionUtil.newArrayList();
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRole;
|
||||
|
@ -189,9 +190,8 @@ public class SysRoleController {
|
|||
* @date 2021/8/11 9:58
|
||||
*/
|
||||
@PostResource(name = "角色绑定或取消绑定菜单和按钮", path = "/sysRole/grantMenusAndButtons")
|
||||
public ResponseData<?> grantMenusAndButtons(@RequestBody @Validated(SysRoleRequest.grantMenusAndButtons.class) SysRoleRequest sysRoleRequest) {
|
||||
sysRoleService.grantMenusAndButtons(sysRoleRequest);
|
||||
return new SuccessResponseData<>();
|
||||
public ResponseData<List<MenuAndButtonTreeResponse>> grantMenusAndButtons(@RequestBody @Validated(SysRoleRequest.grantMenusAndButtons.class) SysRoleRequest sysRoleRequest) {
|
||||
return new SuccessResponseData<>(sysRoleService.grantMenusAndButtonsAndGetResult(sysRoleRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -27,6 +27,7 @@ package cn.stylefeng.roses.kernel.system.modular.role.service;
|
|||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
||||
import cn.stylefeng.roses.kernel.system.api.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRole;
|
||||
|
@ -158,4 +159,12 @@ public interface SysRoleService extends IService<SysRole>, RoleServiceApi {
|
|||
* @date 2022/6/21 9:55
|
||||
*/
|
||||
void grantMenusAndButtons(SysRoleRequest sysRoleRequest);
|
||||
|
||||
/**
|
||||
* 授权菜单和按钮集合,并获取结果
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/6/27 17:08
|
||||
*/
|
||||
List<MenuAndButtonTreeResponse> grantMenusAndButtonsAndGetResult(SysRoleRequest sysRoleRequest);
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ import cn.stylefeng.roses.kernel.system.api.UserServiceApi;
|
|||
import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants;
|
||||
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.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;
|
||||
|
@ -426,6 +427,10 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
|
||||
// 如果是新增绑定菜单
|
||||
if (selectBindFlag) {
|
||||
// 获取所有菜单的父级节点,把选中状态的菜单的所有父级节点都选择上
|
||||
Set<Long> allParentMenuId = menuServiceApi.getMenuAllParentMenuId(new HashSet<>(grantMenuIdList));
|
||||
grantMenuIdList.addAll(allParentMenuId);
|
||||
|
||||
// 批量保存绑定的菜单集合
|
||||
List<SysRoleMenu> sysRoleMenus = new ArrayList<>();
|
||||
for (Long menuId : grantMenuIdList) {
|
||||
|
@ -449,6 +454,12 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MenuAndButtonTreeResponse> grantMenusAndButtonsAndGetResult(SysRoleRequest sysRoleRequest) {
|
||||
this.grantMenusAndButtons(sysRoleRequest);
|
||||
return menuServiceApi.getRoleMenuAndButtons(sysRoleRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysRoleDTO> getRolesByIds(List<Long> roleIds) {
|
||||
ArrayList<SysRoleDTO> sysRoleResponses = new ArrayList<>();
|
||||
|
|
Loading…
Reference in New Issue