权限分配逻辑
This commit is contained in:
parent
994b2c36fa
commit
dfb13e28a8
@ -1,11 +1,8 @@
|
|||||||
package com.cdzy.staff.controller;
|
package com.cdzy.staff.controller;
|
||||||
|
|
||||||
import com.cdzy.common.model.request.PageParam;
|
|
||||||
import com.cdzy.common.model.response.JsonResult;
|
import com.cdzy.common.model.response.JsonResult;
|
||||||
import com.cdzy.staff.model.entity.EbikeRolePermission;
|
|
||||||
import com.cdzy.staff.model.vo.EbikeRolePermissionVo;
|
import com.cdzy.staff.model.vo.EbikeRolePermissionVo;
|
||||||
import com.cdzy.staff.service.EbikeRolePermissionService;
|
import com.cdzy.staff.service.EbikeRolePermissionService;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
@ -50,6 +47,7 @@ public class EbikeRolePermissionController {
|
|||||||
@GetMapping("list")
|
@GetMapping("list")
|
||||||
public JsonResult<?> list(@NotNull(message = "角色ID不能为空") Long roleId) {
|
public JsonResult<?> list(@NotNull(message = "角色ID不能为空") Long roleId) {
|
||||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||||
|
.select(EBIKE_ROLE_PERMISSION.PERMISSION_ID)
|
||||||
.where(EBIKE_ROLE_PERMISSION.ROLE_ID.eq(roleId))
|
.where(EBIKE_ROLE_PERMISSION.ROLE_ID.eq(roleId))
|
||||||
.where(EBIKE_ROLE_PERMISSION.IS_EMPOWER.eq(Boolean.FALSE));
|
.where(EBIKE_ROLE_PERMISSION.IS_EMPOWER.eq(Boolean.FALSE));
|
||||||
List<Long> list = ebikeRolePermissionService.listAs(queryWrapper, Long.class);
|
List<Long> list = ebikeRolePermissionService.listAs(queryWrapper, Long.class);
|
||||||
|
|||||||
@ -47,40 +47,41 @@ public class EbikeRolePermissionServiceImpl extends ServiceImpl<EbikeRolePermiss
|
|||||||
checkRole(roleId);
|
checkRole(roleId);
|
||||||
List<Long> permissionIds = ebikeRolePermission.getPermissionIds();
|
List<Long> permissionIds = ebikeRolePermission.getPermissionIds();
|
||||||
long loginId = StpUtil.getLoginIdAsLong();
|
long loginId = StpUtil.getLoginIdAsLong();
|
||||||
if (permissionIds != null && !permissionIds.isEmpty()) {
|
if (permissionIds != null) {
|
||||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||||
.where(EBIKE_ROLE_PERMISSION.ROLE_ID.eq(roleId));
|
.where(EBIKE_ROLE_PERMISSION.ROLE_ID.eq(roleId));
|
||||||
rolePermissionMapper.deleteByQuery(queryWrapper);
|
rolePermissionMapper.deleteByQuery(queryWrapper);
|
||||||
|
if (!permissionIds.isEmpty()) {
|
||||||
|
//获取所有有效权限id
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.where(EBIKE_PERMISSION.PERMISSION_ID.in(permissionIds));
|
||||||
|
List<EbikePermission> ebikePermissions = permissionMapper.selectListByQuery(queryWrapper);
|
||||||
|
|
||||||
//获取所有有效权限id
|
permissionIds.clear();
|
||||||
queryWrapper.clear();
|
if (ebikePermissions != null && !ebikePermissions.isEmpty()) {
|
||||||
queryWrapper.where(EBIKE_PERMISSION.PERMISSION_ID.in(permissionIds));
|
List<Long> parentIds = new ArrayList<>();
|
||||||
List<EbikePermission> ebikePermissions = permissionMapper.selectListByQuery(queryWrapper);
|
//父级授权
|
||||||
|
for (EbikePermission ebikePermission : ebikePermissions) {
|
||||||
permissionIds.clear();
|
permissionIds.add(ebikePermission.getPermissionId());
|
||||||
if (ebikePermissions != null && !ebikePermissions.isEmpty()) {
|
if (ebikePermission.getParentId() != null) {
|
||||||
List<Long> parentIds = new ArrayList<>();
|
parentIds.add(ebikePermission.getParentId());
|
||||||
//父级授权
|
}
|
||||||
for (EbikePermission ebikePermission : ebikePermissions) {
|
|
||||||
permissionIds.add(ebikePermission.getPermissionId());
|
|
||||||
if (ebikePermission.getParentId() != null) {
|
|
||||||
parentIds.add(ebikePermission.getParentId());
|
|
||||||
}
|
}
|
||||||
|
List<EbikeRolePermission> rolePermissions = permissionIds.stream().map(permissionId -> EbikeRolePermission.builder()
|
||||||
|
.roleId(roleId)
|
||||||
|
.permissionId(permissionId)
|
||||||
|
.createBy(loginId)
|
||||||
|
.isEmpower(false)
|
||||||
|
.build()).toList();
|
||||||
|
List<EbikeRolePermission> parentRolePermissions = parentIds.stream().map(permissionId -> EbikeRolePermission.builder()
|
||||||
|
.roleId(roleId)
|
||||||
|
.permissionId(permissionId)
|
||||||
|
.createBy(loginId)
|
||||||
|
.isEmpower(true)
|
||||||
|
.build()).toList();
|
||||||
|
rolePermissionMapper.insertBatch(rolePermissions);
|
||||||
|
rolePermissionMapper.insertBatch(parentRolePermissions);
|
||||||
}
|
}
|
||||||
List<EbikeRolePermission> rolePermissions = permissionIds.stream().map(permissionId -> EbikeRolePermission.builder()
|
|
||||||
.roleId(roleId)
|
|
||||||
.permissionId(permissionId)
|
|
||||||
.createBy(loginId)
|
|
||||||
.isEmpower(false)
|
|
||||||
.build()).toList();
|
|
||||||
List<EbikeRolePermission> parentRolePermissions = parentIds.stream().map(permissionId -> EbikeRolePermission.builder()
|
|
||||||
.roleId(roleId)
|
|
||||||
.permissionId(permissionId)
|
|
||||||
.createBy(loginId)
|
|
||||||
.isEmpower(true)
|
|
||||||
.build()).toList();
|
|
||||||
rolePermissionMapper.insertBatch(rolePermissions);
|
|
||||||
rolePermissionMapper.insertBatch(parentRolePermissions);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user