【7.2.5】【role】更新角色绑定菜单权限

pull/37/head
fengshuonan 2022-09-28 20:40:30 +08:00
parent 88d744e5ad
commit c7d439694f
4 changed files with 52 additions and 13 deletions

View File

@ -51,7 +51,7 @@ public class SysRoleRequest extends BaseRequest {
*
*/
@NotNull(message = "roleId不能为空", groups = {edit.class, delete.class, detail.class, updateStatus.class, grantResource.class, grantResourceV2.class, grantDataScope.class,
grantMenuButton.class, grantMenu.class, grantButton.class, grantMenusAndButtons.class, roleBindMenuList.class})
grantMenuButton.class, grantMenu.class, grantButton.class, grantMenusAndButtons.class, roleBindMenuList.class, grantRoleMenus.class})
@ChineseDescription("主键")
private Long roleId;
@ -137,7 +137,7 @@ public class SysRoleRequest extends BaseRequest {
/**
*
*/
@NotEmpty(message = "授权菜单Id不能为空", groups = {grantMenuButton.class, grantMenusAndButtons.class})
@NotEmpty(message = "授权菜单Id不能为空", groups = {grantMenuButton.class, grantMenusAndButtons.class, grantRoleMenus.class})
@ChineseDescription("授权菜单")
private List<Long> grantMenuIdList;
@ -178,7 +178,7 @@ public class SysRoleRequest extends BaseRequest {
* true-false-
*/
@ChineseDescription("绑定标识true-新增绑定菜单false-取消绑定菜单")
@NotNull(message = "绑定标识不能为空", groups = grantMenusAndButtons.class)
@NotNull(message = "绑定标识不能为空", groups = {grantMenusAndButtons.class, grantRoleMenus.class})
private Boolean selectBindFlag;
/**
@ -235,4 +235,11 @@ public class SysRoleRequest extends BaseRequest {
*/
public @interface roleBindMenuList {
}
/**
*
*/
public @interface grantRoleMenus {
}
}

View File

@ -252,4 +252,15 @@ public class SysRoleController {
return new SuccessResponseData<>(sysRoleService.getRoleSelectList(sysRoleRequest));
}
/**
*
*
* @author fengshuonan
* @date 2022/9/28 20:28
*/
@PostResource(name = "角色权限界面:角色绑定菜单权限", path = "/sysRole/grantRoleMenus")
public ResponseData<List<MenuAndButtonTreeResponse>> grantRoleMenus(@RequestBody @Validated(SysRoleRequest.grantRoleMenus.class) SysRoleRequest sysRoleRequest) {
return new SuccessResponseData<>(sysRoleService.grantRoleMenus(sysRoleRequest));
}
}

View File

@ -167,4 +167,13 @@ public interface SysRoleService extends IService<SysRole>, RoleServiceApi {
* @date 2022/6/27 17:08
*/
List<MenuAndButtonTreeResponse> grantMenusAndButtonsAndGetResult(SysRoleRequest sysRoleRequest);
/**
*
*
* @author fengshuonan
* @date 2022/9/28 20:29
*/
List<MenuAndButtonTreeResponse> grantRoleMenus(SysRoleRequest sysRoleRequest);
}

View File

@ -418,6 +418,26 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
@Override
public void grantMenusAndButtons(SysRoleRequest sysRoleRequest) {
// 授权角色绑定的菜单
this.grantRoleMenus(sysRoleRequest);
// 授权按钮
if (ObjectUtil.isNotEmpty(sysRoleRequest.getModularButtonIds())) {
this.grantButton(sysRoleRequest);
}
}
@Override
public List<MenuAndButtonTreeResponse> grantMenusAndButtonsAndGetResult(SysRoleRequest sysRoleRequest) {
this.grantMenusAndButtons(sysRoleRequest);
return menuServiceApi.getRoleMenuAndButtons(sysRoleRequest);
}
@Override
public List<MenuAndButtonTreeResponse> grantRoleMenus(SysRoleRequest sysRoleRequest) {
// 获取新增绑定还是取消绑定菜单
Boolean selectBindFlag = sysRoleRequest.getSelectBindFlag();
@ -448,16 +468,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
this.roleMenuService.remove(wrapper);
}
// 授权按钮
if (ObjectUtil.isNotEmpty(sysRoleRequest.getModularButtonIds())) {
this.grantButton(sysRoleRequest);
}
}
@Override
public List<MenuAndButtonTreeResponse> grantMenusAndButtonsAndGetResult(SysRoleRequest sysRoleRequest) {
this.grantMenusAndButtons(sysRoleRequest);
return menuServiceApi.getRoleMenuAndButtons(sysRoleRequest);
// 获取当前角色分配的菜单权限
return menuServiceApi.getRoleBindMenuList(sysRoleRequest);
}
@Override