【添加】用户角色关联、角色权限关联全部代码处理完毕

This commit is contained in:
zer0Black
2023-10-02 23:18:43 +08:00
parent 8835e61f4e
commit e341614792
2 changed files with 111 additions and 10 deletions
@@ -2,6 +2,7 @@ package com.jero.modules.docking.iam.controller;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jero.modules.docking.iam.dto.bpmc.*;
import com.jero.modules.docking.iam.dto.IamCommonAcceptDto;
@@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* IAM同步的控制器,提供用户、组织、菜单和权限的同步
@@ -300,13 +302,23 @@ public class SyncIamController {
}
if (bpmcAcceptDto.getType().equals(DockingConstant.BPMC_TYPE_USER_ROLE)){
UserRoleDto userRoleDto = objectMapper.readValue(bpmcAcceptDto.getEntity(), UserRoleDto.class);
List<UserRoleDto> userRoleDtoList = objectMapper.readValue(bpmcAcceptDto.getEntity(), new TypeReference<List<UserRoleDto>>() {});
// 根据新增/编辑/删除调用不同的业务处理代码
if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_ADD)){
bpmcResponseDto = this.syncIamService.userRoleCreateService(userRoleDtoList);
} else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_DELETE)) {
bpmcResponseDto = this.syncIamService.userRoleDeleteService(userRoleDtoList);
}
}
if (bpmcAcceptDto.getType().equals(DockingConstant.BPMC_TYPE_ROLE_RESOURCE)){
RoleResourceDto roleResourceDto = objectMapper.readValue(bpmcAcceptDto.getEntity(), RoleResourceDto.class);
List<RoleResourceDto> roleResourceDtoList = objectMapper.readValue(bpmcAcceptDto.getEntity(), new TypeReference<List<RoleResourceDto>>() {});
// 根据新增/编辑/删除调用不同的业务处理代码
if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_ADD)){
bpmcResponseDto = this.syncIamService.roleResourceCreateService(roleResourceDtoList);
} else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_DELETE)) {
bpmcResponseDto = this.syncIamService.roleResourceDeleteService(roleResourceDtoList);
}
}
return bpmcResponseDto;
@@ -4,6 +4,7 @@ import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.bamboocloud.codec.BamboocloudFacade;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jero.common.aspect.annotation.Translation;
@@ -18,20 +19,16 @@ import com.jero.modules.docking.iam.dto.IamOrgAcceptDto;
import com.jero.modules.docking.iam.dto.IamUserAcceptDto;
import com.jero.modules.docking.iam.dto.bpmc.ResourceDto;
import com.jero.modules.docking.iam.dto.bpmc.RoleDto;
import com.jero.modules.docking.iam.dto.bpmc.RoleResourceDto;
import com.jero.modules.docking.iam.dto.bpmc.UserRoleDto;
import com.jero.modules.docking.iam.dto.response.*;
import com.jero.modules.docking.iam.exception.IamGlobalException;
import com.jero.modules.docking.iam.po.MessageHeader;
import com.jero.modules.docking.iam.po.SendPoSystemPo;
import com.jero.modules.docking.iam.po.SendReturnsPo;
import com.jero.modules.docking.utils.DockingConstant;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.entity.SysPermission;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysPermissionService;
import com.jero.modules.system.service.ISysRoleService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.entity.*;
import com.jero.modules.system.service.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.parameters.P;
@@ -71,6 +68,12 @@ public class SyncIamService {
@Resource
private ISysPermissionService sysPermissionService;
@Resource
private ISysUserRoleService sysUserRoleService;
@Resource
private ISysRolePermissionService sysRolePermissionService;
/**
* 校验IAM调用时的账号密码是否正确
* 校验通过了正常走后续,不通过直接返回
@@ -810,4 +813,90 @@ public class SyncIamService {
return BpmcResponseDto.success();
}
/**
* 用户角色关联 创建(批量)
*/
public BpmcResponseDto userRoleCreateService(List<UserRoleDto> userRoleDtoList){
try {
List<SysUserRole> userRoleList = new ArrayList<>();
for (UserRoleDto userRoleDto : userRoleDtoList){
SysUserRole sysUserRole = new SysUserRole();
sysUserRole.setUserId(userRoleDto.getUserId());
sysUserRole.setRoleId(userRoleDto.getArId());
userRoleList.add(sysUserRole);
}
this.sysUserRoleService.saveBatch(userRoleList);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
return BpmcResponseDto.success();
}
/**
* 用户角色关联 刪除(批量)
*/
public BpmcResponseDto userRoleDeleteService(List<UserRoleDto> userRoleDtoList){
try {
for (UserRoleDto userRoleDto : userRoleDtoList){
QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper();
queryWrapper.eq("user_id", userRoleDto.getUserId());
queryWrapper.eq("role_id", userRoleDto.getArId());
this.sysUserRoleService.remove(queryWrapper);
}
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
return BpmcResponseDto.success();
}
/**
* 角色菜单关联 创建(批量)
*/
public BpmcResponseDto roleResourceCreateService(List<RoleResourceDto> roleResourceDtoList){
try {
List<SysRolePermission> sysRolePermissionList = new ArrayList<>();
for (RoleResourceDto roleResourceDto : roleResourceDtoList){
SysRolePermission sysRolePermission = new SysRolePermission();
sysRolePermission.setPermissionId(roleResourceDto.getAmId());
sysRolePermission.setRoleId(roleResourceDto.getArId());
sysRolePermissionList.add(sysRolePermission);
}
this.sysRolePermissionService.saveBatch(sysRolePermissionList);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
return BpmcResponseDto.success();
}
/**
* 用户角色关联 刪除(批量)
*/
public BpmcResponseDto roleResourceDeleteService(List<RoleResourceDto> roleResourceDtoList){
try {
for (RoleResourceDto roleResourceDto : roleResourceDtoList){
QueryWrapper<SysRolePermission> queryWrapper = new QueryWrapper();
queryWrapper.eq("permission_id", roleResourceDto.getAmId());
queryWrapper.eq("role_id", roleResourceDto.getArId());
this.sysRolePermissionService.remove(queryWrapper);
}
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
return BpmcResponseDto.success();
}
}