fix: iam控制角色权限空指针

This commit is contained in:
2024-08-01 20:02:48 +08:00
parent 444d981956
commit 50c6005d78
@@ -88,20 +88,22 @@ public class SyncIamService {
/**
* 校验IAM调用时的账号密码是否正确
* 校验通过了正常走后续,不通过直接返回
*
* @return
*/
public void validateUserAndPwd(IamCommonAcceptDto commonAcceptDto) {
if (!bimRemoteUser.equals(commonAcceptDto.getBimRemoteUser())
|| !bimRemotePwd.equals(commonAcceptDto.getBimRemotePwd())){
|| !bimRemotePwd.equals(commonAcceptDto.getBimRemotePwd())) {
throw new IamGlobalException(commonAcceptDto.getBimRequestId(), "用户名或密码不对,无法调用接口");
}
}
/**
* 生成Schema的信息
*
* @return
*/
public IamSchemaResponse getSchemaInfo(IamCommonAcceptDto commonAcceptDto){
public IamSchemaResponse getSchemaInfo(IamCommonAcceptDto commonAcceptDto) {
// 获取用户同步的字段
List<SchemaResponseInner> accountFiledList = new ArrayList<>();
Field[] userFields = IamUserAcceptDto.class.getDeclaredFields();
@@ -123,6 +125,7 @@ public class SyncIamService {
/**
* 抽取含有IamProperty注解的字段元属性
*
* @param filedList
* @param fields
*/
@@ -151,10 +154,11 @@ public class SyncIamService {
/**
* 转换Iam传来的用户数据,进行转换后存储
*
* @param userAcceptDto
* @return
*/
public IamUserCreateResponse userCreateService(IamUserAcceptDto userAcceptDto){
public IamUserCreateResponse userCreateService(IamUserAcceptDto userAcceptDto) {
log.info("用户创建收到的解密后数据:{}", userAcceptDto.toString());
IamUserCreateResponse iamUserCreateResponse = new IamUserCreateResponse();
@@ -172,14 +176,14 @@ public class SyncIamService {
sysUser.setSalt(salt);
String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), sysUser.getPassword(), salt);
sysUser.setPassword(passwordEncode);
if (NumberUtil.isInteger(userAcceptDto.getSrmsSex())){
if (NumberUtil.isInteger(userAcceptDto.getSrmsSex())) {
sysUser.setSex(Integer.valueOf(userAcceptDto.getSrmsSex()));
}
sysUser.setEmail(userAcceptDto.getSrmsEmail());
sysUser.setPhone(userAcceptDto.getSrmsPhone());
if ("1".equals(userAcceptDto.getSrmsStatus())){
if ("1".equals(userAcceptDto.getSrmsStatus())) {
sysUser.setStatus(CommonConstant.USER_UNFREEZE);
sysUser.setDelFlag(CommonConstant.DEL_FLAG_0);
} else {
@@ -191,12 +195,12 @@ public class SyncIamService {
sysUser.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
sysUser.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsCreateTime())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsCreateTime())) {
Date createTime = DateUtils.str2Date(userAcceptDto.getSrmsCreateTime(), new SimpleDateFormat(DATE_FORMAT));
sysUser.setCreateTime(createTime);
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsUpdateTime())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsUpdateTime())) {
Date updateTime = DateUtils.str2Date(userAcceptDto.getSrmsUpdateTime(), new SimpleDateFormat(DATE_FORMAT));
sysUser.setCreateTime(updateTime);
}
@@ -224,32 +228,33 @@ public class SyncIamService {
}
/**
*根据传过来看的bimUid标识用户的唯一id,取出后修改新传递的字符串
* 根据传过来看的bimUid标识用户的唯一id,取出后修改新传递的字符串
*
* @param userAcceptDto
* @return
*/
public IamCommonResponseDto userUpdateService(IamUserAcceptDto userAcceptDto){
public IamCommonResponseDto userUpdateService(IamUserAcceptDto userAcceptDto) {
log.info("用户更新收到的解密后数据:{}", userAcceptDto.toString());
if (userAcceptDto == null || CharSequenceUtil.isEmpty(userAcceptDto.getBimUid())){
if (userAcceptDto == null || CharSequenceUtil.isEmpty(userAcceptDto.getBimUid())) {
throw new IamGlobalException(userAcceptDto.getBimRequestId(), "用户id(bimUid)为空,无法进行用户信息更新");
}
// 取出对应的SysUser数据,将iam的数据全部抓取进行判空赋值后存入
SysUser sysUser = this.sysUserService.getById(userAcceptDto.getBimUid());
if (sysUser == null){
if (sysUser == null) {
throw new IamGlobalException(userAcceptDto.getBimRequestId(), "未查询到id为(" + userAcceptDto.getBimUid() + ")用户,无法更新");
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsUsername())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsUsername())) {
sysUser.setUsername(userAcceptDto.getSrmsUsername());
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsRealname())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsRealname())) {
sysUser.setRealname(userAcceptDto.getSrmsRealname());
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsSex()) && NumberUtil.isInteger(userAcceptDto.getSrmsSex())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsSex()) && NumberUtil.isInteger(userAcceptDto.getSrmsSex())) {
sysUser.setSex(Integer.valueOf(userAcceptDto.getSrmsSex()));
}
@@ -258,8 +263,8 @@ public class SyncIamService {
sysUser.setEmail(userAcceptDto.getSrmsEmail());
sysUser.setPhone(userAcceptDto.getSrmsPhone());
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsStatus())){
if ("1".equals(userAcceptDto.getSrmsStatus())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsStatus())) {
if ("1".equals(userAcceptDto.getSrmsStatus())) {
sysUser.setStatus(CommonConstant.USER_UNFREEZE);
sysUser.setDelFlag(CommonConstant.DEL_FLAG_0);
} else {
@@ -268,46 +273,46 @@ public class SyncIamService {
}
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsOfficePhone())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsOfficePhone())) {
sysUser.setTelephone(userAcceptDto.getSrmsOfficePhone());
}
sysUser.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsUpdateTime())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsUpdateTime())) {
Date updateTime = DateUtils.str2Date(userAcceptDto.getSrmsUpdateTime(), new SimpleDateFormat(DATE_FORMAT));
sysUser.setCreateTime(updateTime);
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsTypeId())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsTypeId())) {
sysUser.setTypeId(userAcceptDto.getSrmsTypeId());
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsPost())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsPost())) {
sysUser.setPost(userAcceptDto.getSrmsPost());
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsDutyLevelId())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsDutyLevelId())) {
sysUser.setDutyLevelId(userAcceptDto.getSrmsDutyLevelId());
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsDirectLeadership())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsDirectLeadership())) {
sysUser.setDirectLeadership(userAcceptDto.getSrmsDirectLeadership());
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsPostStatus())){
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsPostStatus())) {
sysUser.setPostStatus(userAcceptDto.getSrmsPostStatus());
}
// 获取组织机构(多个逗号分隔)
String orgCode = userAcceptDto.getSrmsOrgCode();
String selectedDeparts = null;
if (CharSequenceUtil.isNotEmpty(orgCode)){
if (CharSequenceUtil.isNotEmpty(orgCode)) {
List<SysDepart> sysDepartList = sysDepartService.list(
new LambdaQueryWrapper<SysDepart>()
.in(SysDepart::getOrgCode, Arrays.asList(orgCode.split(","))));
if (CollectionUtils.isNotEmpty(sysDepartList)){
new LambdaQueryWrapper<SysDepart>()
.in(SysDepart::getOrgCode, Arrays.asList(orgCode.split(","))));
if (CollectionUtils.isNotEmpty(sysDepartList)) {
selectedDeparts = sysDepartList.stream().map(SysDepart::getId)
.collect(Collectors.joining(","));
}
@@ -326,11 +331,12 @@ public class SyncIamService {
/**
* 删除用户
*
* @param userAcceptDto
* @return
*/
public IamCommonResponseDto userDeleteService(IamUserAcceptDto userAcceptDto){
if (userAcceptDto == null || CharSequenceUtil.isEmpty(userAcceptDto.getBimUid())){
public IamCommonResponseDto userDeleteService(IamUserAcceptDto userAcceptDto) {
if (userAcceptDto == null || CharSequenceUtil.isEmpty(userAcceptDto.getBimUid())) {
String bimRequestId = null;
if (userAcceptDto != null) {
bimRequestId = userAcceptDto.getBimRequestId();
@@ -353,11 +359,12 @@ public class SyncIamService {
/**
* 转换Iam传来的组织数据,进行转换后存储
*
* @param orgAcceptDto
* @return
*/
public IamOrgCreateResponse orgCreateService(IamOrgAcceptDto orgAcceptDto){
if (orgAcceptDto == null || CharSequenceUtil.isEmpty(orgAcceptDto.getSrmsOrgCode())){
public IamOrgCreateResponse orgCreateService(IamOrgAcceptDto orgAcceptDto) {
if (orgAcceptDto == null || CharSequenceUtil.isEmpty(orgAcceptDto.getSrmsOrgCode())) {
String bimRequestId = null;
if (orgAcceptDto != null) {
bimRequestId = orgAcceptDto.getBimRequestId();
@@ -386,7 +393,7 @@ public class SyncIamService {
sysDepart.setDepartOrder(100); // 接入数据无排序,都设置为100
// 1为单位,2为部门,转映射到 本系统内的数据 1公司,2组织机构,映射关系一致。如下代码是为了后续修改方便
if ("1".equals(orgAcceptDto.getSrmsOrgCategory())){
if ("1".equals(orgAcceptDto.getSrmsOrgCategory())) {
sysDepart.setOrgCategory("1");
} else {
sysDepart.setOrgCategory("2");
@@ -395,7 +402,7 @@ public class SyncIamService {
sysDepart.setOrgType(orgAcceptDto.getSrmsType());
sysDepart.setOrgCode(orgAcceptDto.getSrmsOrgCode());
if ("1".equals(orgAcceptDto.getSrmsStatus())){
if ("1".equals(orgAcceptDto.getSrmsStatus())) {
sysDepart.setStatus(CommonConstant.STATUS_1);
sysDepart.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
} else {
@@ -404,13 +411,13 @@ public class SyncIamService {
}
sysDepart.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsCreateTime())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsCreateTime())) {
Date createTime = DateUtils.str2Date(orgAcceptDto.getSrmsCreateTime(), new SimpleDateFormat(DATE_FORMAT));
sysDepart.setCreateTime(createTime);
}
sysDepart.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsUpdateTime())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsUpdateTime())) {
Date updateTime = DateUtils.str2Date(orgAcceptDto.getSrmsUpdateTime(), new SimpleDateFormat(DATE_FORMAT));
sysDepart.setCreateTime(updateTime);
}
@@ -430,13 +437,14 @@ public class SyncIamService {
/**
* 更新组织机构
*
* @param orgAcceptDto
* @return
*/
public IamCommonResponseDto orgUpdateService(IamOrgAcceptDto orgAcceptDto){
public IamCommonResponseDto orgUpdateService(IamOrgAcceptDto orgAcceptDto) {
log.info("组织更新收到的解密后数据:{}", orgAcceptDto.toString());
if (orgAcceptDto == null || CharSequenceUtil.isEmpty(orgAcceptDto.getBimOrgId())){
if (orgAcceptDto == null || CharSequenceUtil.isEmpty(orgAcceptDto.getBimOrgId())) {
throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "机构id为空,无法进行组织信息更新");
}
@@ -447,37 +455,37 @@ public class SyncIamService {
// 将iam的数据转换成sysDepart数据存入数据库
SysDepart sysDepart = this.sysDepartService.getById(orgAcceptDto.getBimOrgId());
if (sysDepart == null){
if (sysDepart == null) {
throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "未查询到id为(" + orgAcceptDto.getBimOrgId() + ")组织,无法更新");
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsParentCode())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsParentCode())) {
sysDepart.setParentId(orgAcceptDto.getSrmsParentCode());
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsDepartName())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsDepartName())) {
sysDepart.setDepartName(orgAcceptDto.getSrmsDepartName());
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsOrgCategory())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsOrgCategory())) {
// 1为单位,2为部门,转映射到 本系统内的数据 1公司,2组织机构,映射关系一致。如下代码是为了后续修改方便
if ("1".equals(orgAcceptDto.getSrmsOrgCategory())){
if ("1".equals(orgAcceptDto.getSrmsOrgCategory())) {
sysDepart.setOrgCategory("1");
} else {
sysDepart.setOrgCategory("2");
}
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsType())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsType())) {
sysDepart.setOrgType(orgAcceptDto.getSrmsType());
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsOrgCode())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsOrgCode())) {
sysDepart.setOrgCode(orgAcceptDto.getSrmsOrgCode());
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsStatus())){
if ("1".equals(orgAcceptDto.getSrmsStatus())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsStatus())) {
if ("1".equals(orgAcceptDto.getSrmsStatus())) {
sysDepart.setStatus(CommonConstant.STATUS_1);
sysDepart.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
} else {
@@ -487,24 +495,24 @@ public class SyncIamService {
}
sysDepart.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsUpdateTime())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsUpdateTime())) {
Date updateTime = DateUtils.str2Date(orgAcceptDto.getSrmsUpdateTime(), new SimpleDateFormat(DATE_FORMAT));
sysDepart.setCreateTime(updateTime);
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsCompany())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsCompany())) {
sysDepart.setCompany(orgAcceptDto.getSrmsCompany());
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsHeadOfDepartment())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsHeadOfDepartment())) {
sysDepart.setHeadOfDepartment(orgAcceptDto.getSrmsHeadOfDepartment());
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsLeadersInCharge())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsLeadersInCharge())) {
sysDepart.setLeadersInCharge(orgAcceptDto.getSrmsLeadersInCharge());
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsDeputyLeader())){
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsDeputyLeader())) {
sysDepart.setDeputyLeader(orgAcceptDto.getSrmsDeputyLeader());
}
@@ -516,11 +524,12 @@ public class SyncIamService {
/**
* 删除组织机构
*
* @param orgAcceptDto
* @return
*/
public IamCommonResponseDto orgDeleteService(IamOrgAcceptDto orgAcceptDto){
if (orgAcceptDto == null || CharSequenceUtil.isEmpty(orgAcceptDto.getBimOrgId())){
public IamCommonResponseDto orgDeleteService(IamOrgAcceptDto orgAcceptDto) {
if (orgAcceptDto == null || CharSequenceUtil.isEmpty(orgAcceptDto.getBimOrgId())) {
String bimRequestId = null;
if (orgAcceptDto != null) {
bimRequestId = orgAcceptDto.getBimRequestId();
@@ -543,6 +552,7 @@ public class SyncIamService {
/**
* 处理统一响应PO层,并加密业务字段
*
* @param acceptMessageHeader
* @param object
* @return
@@ -556,7 +566,7 @@ public class SyncIamService {
ObjectMapper objectMapper = new ObjectMapper();
String returnData = objectMapper.writeValueAsString(object);
// 加密PO层外的业务数据
String encryptData = BamboocloudFacade.encrypt(returnData, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE);
String encryptData = BamboocloudFacade.encrypt(returnData, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE);
sendPoEncryptPo.setMessageHeader(sendMessageHeader);
sendPoEncryptPo.setReturns(new SendEncryptReturnsPo(encryptData));
@@ -587,7 +597,7 @@ public class SyncIamService {
/**
* 角色创建
*/
public BpmcResponseDto roleCreateService(RoleDto roleDto){
public BpmcResponseDto roleCreateService(RoleDto roleDto) {
SysRole sysRole = new SysRole();
sysRole.setId(roleDto.getId());
sysRole.setRoleName(roleDto.getName());
@@ -606,38 +616,38 @@ public class SyncIamService {
/**
* 角色更新
*/
public BpmcResponseDto roleUpdateService(RoleDto roleDto){
if (CharSequenceUtil.isEmpty(roleDto.getId())){
public BpmcResponseDto roleUpdateService(RoleDto roleDto) {
if (CharSequenceUtil.isEmpty(roleDto.getId())) {
return BpmcResponseDto.error("角色id为空,无法更新");
}
SysRole sysRole = sysRoleService.getById(roleDto.getId());
if (sysRole == null){
if (sysRole == null) {
return BpmcResponseDto.error("未找到对应id角色,无法更新");
}else {
} else {
sysRole.setId(roleDto.getId());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getName())){
if (CharSequenceUtil.isNotEmpty(roleDto.getName())) {
sysRole.setRoleName(roleDto.getName());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getCode())){
if (CharSequenceUtil.isNotEmpty(roleDto.getCode())) {
sysRole.setRoleCode(roleDto.getCode());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getDescription())){
if (CharSequenceUtil.isNotEmpty(roleDto.getDescription())) {
sysRole.setDescription(roleDto.getDescription());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getAppId())){
if (CharSequenceUtil.isNotEmpty(roleDto.getAppId())) {
sysRole.setAppId(roleDto.getAppId());
}
sysRole.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (roleDto.getModifyTime() != null){
if (roleDto.getModifyTime() != null) {
sysRole.setUpdateTime(roleDto.getModifyTime());
}
@@ -649,8 +659,8 @@ public class SyncIamService {
/**
* 角色删除
*/
public BpmcResponseDto roleDeleteService(RoleDto roleDto){
if (CharSequenceUtil.isEmpty(roleDto.getId())){
public BpmcResponseDto roleDeleteService(RoleDto roleDto) {
if (CharSequenceUtil.isEmpty(roleDto.getId())) {
return BpmcResponseDto.error("角色id为空,无法删除");
}
@@ -662,29 +672,29 @@ public class SyncIamService {
/**
* 菜单创建
*/
public BpmcResponseDto resourceCreateService(ResourceDto resourceDto){
public BpmcResponseDto resourceCreateService(ResourceDto resourceDto) {
SysPermission sysPermission = new SysPermission();
sysPermission.setId(resourceDto.getId());
if (StringUtils.isNotBlank(resourceDto.getParentId())){
if (StringUtils.isNotBlank(resourceDto.getParentId())) {
sysPermission.setParentId(resourceDto.getParentId());
}
sysPermission.setName(resourceDto.getName());
sysPermission.setPermsType("1"); // 1显示2禁用,固定为1
sysPermission.setIcon("copy"); //IAM 没有icon字段,设定为固定值
if (StringUtils.isNotBlank(resourceDto.getCode())){
if (StringUtils.isNotBlank(resourceDto.getCode())) {
sysPermission.setPerms(resourceDto.getCode());
}
sysPermission.setComponent(resourceDto.getComponent()); // 组件的路径
if (CharSequenceUtil.isNotEmpty(resourceDto.getRedirect())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getRedirect())) {
sysPermission.setRedirect(resourceDto.getRedirect()); // 地址栏显示的路径
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getUrl())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getUrl())) {
sysPermission.setUrl(resourceDto.getUrl()); // 路径
}
sysPermission.setAppId(resourceDto.getAppId()); // appId
if (!Objects.isNull(resourceDto.getSort())){
if (!Objects.isNull(resourceDto.getSort())) {
sysPermission.setSortNo(Double.valueOf(resourceDto.getSort()));
}else {
} else {
sysPermission.setSortNo(1D);
}
@@ -692,8 +702,8 @@ public class SyncIamService {
// TODO 菜单英文名数据库中没有,需要确认
// sysPermission的 menuType 0:一级菜单;1:子菜单 ;2:按钮权限)
if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()){
if (CharSequenceUtil.isEmpty(resourceDto.getParentId())){
if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()) {
if (CharSequenceUtil.isEmpty(resourceDto.getParentId())) {
sysPermission.setMenuType(0);
} else {
sysPermission.setMenuType(1);
@@ -704,24 +714,25 @@ public class SyncIamService {
sysPermission.setCreateTime(new Date());
sysPermission.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
if (!Objects.isNull(resourceDto.getModifyTime())){
if (!Objects.isNull(resourceDto.getModifyTime())) {
sysPermission.setUpdateTime(resourceDto.getModifyTime());
}
sysPermission.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (StringUtils.isNotBlank(resourceDto.getDescription())){
if (StringUtils.isNotBlank(resourceDto.getDescription())) {
sysPermission.setDescription(resourceDto.getDescription());
}
// 以下为IAM没有的属性,设置默认值
sysPermission.setRoute(resourceDto.getIs_route() == 0 ? false : true); // 是否路由,设固定值
sysPermission.setKeepAlive(resourceDto.getKeep_alive() == 0 ? false : true); // 是否缓存,设固定值
sysPermission.setRoute(resourceDto.getIs_route() != null && resourceDto.getIs_route() != 0); // 是否路由,设固定值
sysPermission.setKeepAlive(resourceDto.getKeep_alive() != null && resourceDto.getKeep_alive() != 0); // 是否缓存,设固定值
sysPermission.setHidden(resourceDto.getHidden() != null && resourceDto.getHidden() != 0); // 是否配置菜单的数据权限 1是0否 默认0
sysPermission.setInternalOrExternal(resourceDto.getInternal_or_external() != null && resourceDto.getInternal_or_external() != 0); // 是否内部或外部资源
// 处理其他需要检查的属性
sysPermission.setDelFlag(CommonConstant.DEL_FLAG_0);
sysPermission.setRuleFlag(0); // 是否配置菜单的数据权限 1是0否 默认0
sysPermission.setHidden(resourceDto.getHidden() == 0 ? false : true); // 是否配置菜单的数据权限 1是0否 默认0
sysPermission.setStatus("1"); // 按钮权限状态(0无效1有效)
sysPermission.setAlwaysShow(false);
sysPermission.setInternalOrExternal(resourceDto.getInternal_or_external() == 0 ? false : true);
sysPermissionService.addPermission(sysPermission);
@@ -731,54 +742,54 @@ public class SyncIamService {
/**
* 菜单更新
*/
public BpmcResponseDto resourceUpdateService(ResourceDto resourceDto){
if (CharSequenceUtil.isEmpty(resourceDto.getId())){
public BpmcResponseDto resourceUpdateService(ResourceDto resourceDto) {
if (CharSequenceUtil.isEmpty(resourceDto.getId())) {
return BpmcResponseDto.error("菜单id为空,无法更新");
}
SysPermission sysPermission = sysPermissionService.getById(resourceDto.getId());
if (sysPermission == null){
if (sysPermission == null) {
return BpmcResponseDto.error("未找到对应id功能权限,无法更新");
}else {
} else {
sysPermission.setId(resourceDto.getId());
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getParentId())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getParentId())) {
sysPermission.setParentId(resourceDto.getParentId());
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getName())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getName())) {
sysPermission.setName(resourceDto.getName());
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getCode())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getCode())) {
sysPermission.setPerms(resourceDto.getCode());
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getComponent())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getComponent())) {
sysPermission.setComponent(resourceDto.getComponent()); // 组件的路径
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getRedirect())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getRedirect())) {
sysPermission.setRedirect(resourceDto.getRedirect()); // 地址栏显示的路径
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getUrl())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getUrl())) {
sysPermission.setUrl(resourceDto.getUrl()); // 路径
}
if (resourceDto.getSort() != null){
if (resourceDto.getSort() != null) {
sysPermission.setSortNo(Double.valueOf(resourceDto.getSort()));
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getAppId())){
if (CharSequenceUtil.isNotEmpty(resourceDto.getAppId())) {
sysPermission.setAppId(resourceDto.getAppId());
}
// sysPermission的 menuType 0:一级菜单;1:子菜单 ;2:按钮权限)
if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()){
if (CharSequenceUtil.isEmpty(resourceDto.getParentId())){
if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()) {
if (CharSequenceUtil.isEmpty(resourceDto.getParentId())) {
sysPermission.setMenuType(0);
} else {
sysPermission.setMenuType(1);
@@ -786,27 +797,27 @@ public class SyncIamService {
} else {
sysPermission.setMenuType(2);
}
if (!Objects.isNull(resourceDto.getModifyTime())){
if (!Objects.isNull(resourceDto.getModifyTime())) {
sysPermission.setUpdateTime(resourceDto.getModifyTime());
}
sysPermission.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (StringUtils.isNotBlank(resourceDto.getDescription())){
if (StringUtils.isNotBlank(resourceDto.getDescription())) {
sysPermission.setDescription(resourceDto.getDescription());
}
if (resourceDto.getIs_route() != null){
if (resourceDto.getIs_route() != null) {
sysPermission.setRoute(resourceDto.getIs_route() == 0 ? false : true);
}
if (resourceDto.getKeep_alive() != null){
if (resourceDto.getKeep_alive() != null) {
sysPermission.setKeepAlive(resourceDto.getKeep_alive() == 0 ? false : true);
}
if (resourceDto.getHidden() != null){
if (resourceDto.getHidden() != null) {
sysPermission.setHidden(resourceDto.getKeep_alive() == 0 ? false : true);
}
if (resourceDto.getInternal_or_external() != null){
if (resourceDto.getInternal_or_external() != null) {
sysPermission.setInternalOrExternal(resourceDto.getInternal_or_external() == 0 ? false : true);
}
@@ -817,8 +828,8 @@ public class SyncIamService {
/**
* 菜单删除(真实删除)
*/
public BpmcResponseDto resourceDeleteService(ResourceDto resourceDto){
if (CharSequenceUtil.isEmpty(resourceDto.getId())){
public BpmcResponseDto resourceDeleteService(ResourceDto resourceDto) {
if (CharSequenceUtil.isEmpty(resourceDto.getId())) {
return BpmcResponseDto.error("菜单id为空,无法删除");
}
sysPermissionService.deletePermission(resourceDto.getId());
@@ -828,16 +839,16 @@ public class SyncIamService {
/**
* 用户角色关联 创建(批量)
*/
public BpmcResponseDto userRoleCreateService(List<UserRoleDto> userRoleDtoList){
public BpmcResponseDto userRoleCreateService(List<UserRoleDto> userRoleDtoList) {
List<SysUserRole> userRoleList = new ArrayList<>();
for (UserRoleDto userRoleDto : userRoleDtoList){
if (CharSequenceUtil.isNotEmpty(userRoleDto.getAccountCode())){
for (UserRoleDto userRoleDto : userRoleDtoList) {
if (CharSequenceUtil.isNotEmpty(userRoleDto.getAccountCode())) {
SysUserRole sysUserRole = new SysUserRole();
// 根据 accountCode 字段(即用户名username) 从数据库里查出来用户id,在给到sysUserRole
LoginUser userInfo = sysBaseAPI.getUserByName(userRoleDto.getAccountCode());
if (userInfo == null){
if (userInfo == null) {
continue;
}
@@ -848,7 +859,7 @@ public class SyncIamService {
int count = sysUserRoleService.count(new LambdaQueryWrapper<SysUserRole>()
.eq(SysUserRole::getUserId, sysUserRole.getUserId())
.eq(SysUserRole::getRoleId, sysUserRole.getRoleId()));
if (count > 0){
if (count > 0) {
continue;
}
@@ -863,12 +874,12 @@ public class SyncIamService {
/**
* 用户角色关联 刪除(批量)
*/
public BpmcResponseDto userRoleDeleteService(List<UserRoleDto> userRoleDtoList){
for (UserRoleDto userRoleDto : userRoleDtoList){
public BpmcResponseDto userRoleDeleteService(List<UserRoleDto> userRoleDtoList) {
for (UserRoleDto userRoleDto : userRoleDtoList) {
QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<>();
// 根据 accountCode 字段(即用户名username) 从数据库里查出来用户id,在给到sysUserRole
LoginUser userInfo = sysBaseAPI.getUserByName(userRoleDto.getAccountCode());
if (userInfo == null){
if (userInfo == null) {
continue;
}
@@ -883,18 +894,18 @@ public class SyncIamService {
/**
* 角色菜单关联 创建(批量)
*/
public BpmcResponseDto roleResourceCreateService(List<RoleResourceDto> roleResourceDtoList){
public BpmcResponseDto roleResourceCreateService(List<RoleResourceDto> roleResourceDtoList) {
List<SysRolePermission> sysRolePermissionList = new ArrayList<>();
for (RoleResourceDto roleResourceDto : roleResourceDtoList){
for (RoleResourceDto roleResourceDto : roleResourceDtoList) {
SysRolePermission sysRolePermission = new SysRolePermission();
sysRolePermission.setPermissionId(roleResourceDto.getAmId());
sysRolePermission.setRoleId(roleResourceDto.getArId());
// 重复性校验
int count = sysRolePermissionService.count(new LambdaQueryWrapper<SysRolePermission>()
.eq(SysRolePermission::getRoleId, sysRolePermission.getRoleId())
.eq(SysRolePermission::getPermissionId, sysRolePermission.getPermissionId()));
if (count > 0){
.eq(SysRolePermission::getRoleId, sysRolePermission.getRoleId())
.eq(SysRolePermission::getPermissionId, sysRolePermission.getPermissionId()));
if (count > 0) {
continue;
}
sysRolePermissionList.add(sysRolePermission);
@@ -906,8 +917,8 @@ public class SyncIamService {
/**
* 用户角色关联 刪除(批量)
*/
public BpmcResponseDto roleResourceDeleteService(List<RoleResourceDto> roleResourceDtoList){
for (RoleResourceDto roleResourceDto : roleResourceDtoList){
public BpmcResponseDto roleResourceDeleteService(List<RoleResourceDto> roleResourceDtoList) {
for (RoleResourceDto roleResourceDto : roleResourceDtoList) {
QueryWrapper<SysRolePermission> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("permission_id", roleResourceDto.getAmId());
queryWrapper.eq("role_id", roleResourceDto.getArId());
@@ -920,9 +931,10 @@ public class SyncIamService {
/**
* 返回全部用户的id
*
* @return
*/
public IamUserIdListResponse getAllUserIds(IamCommonAcceptDto commonAcceptDto){
public IamUserIdListResponse getAllUserIds(IamCommonAcceptDto commonAcceptDto) {
QueryWrapper<SysUser> userQueryWrapper = new QueryWrapper<SysUser>();
userQueryWrapper.select("id");
userQueryWrapper.ne("username", "admin");
@@ -940,9 +952,10 @@ public class SyncIamService {
/**
* 返回全部组织的id
*
* @return
*/
public IamOrgIdListResponse getAllOrgIds(IamCommonAcceptDto commonAcceptDto){
public IamOrgIdListResponse getAllOrgIds(IamCommonAcceptDto commonAcceptDto) {
QueryWrapper<SysDepart> departQueryWrapper = new QueryWrapper<SysDepart>();
departQueryWrapper.select("id");
// 获取全部用户的id,得到一个String的list
@@ -959,13 +972,14 @@ public class SyncIamService {
/**
* 根据id查询用户信息
*
* @return
*/
public IamUserInfoResponse getUserInfoById(IamUserAcceptDto iamUserAcceptDto){
public IamUserInfoResponse getUserInfoById(IamUserAcceptDto iamUserAcceptDto) {
LoginUser userInfo = sysBaseAPI.getUserById(iamUserAcceptDto.getBimUid());
SysUser sysUser = sysUserService.getById(iamUserAcceptDto.getBimUid());
if (userInfo == null || "admin".equals(userInfo.getUsername())){
if (userInfo == null || "admin".equals(userInfo.getUsername())) {
throw new IamGlobalException(iamUserAcceptDto.getBimRequestId(), "查询用户不存在");
}
@@ -974,16 +988,16 @@ public class SyncIamService {
userAcceptDto.setSrmsUsername(userInfo.getUsername());
userAcceptDto.setSrmsRealname(userInfo.getRealname());
userAcceptDto.setSrmsOrgCode(userInfo.getOrgCode());
if (!Objects.isNull(userInfo.getSex())){
if (!Objects.isNull(userInfo.getSex())) {
userAcceptDto.setSrmsSex(String.valueOf(userInfo.getSex()));
}
userAcceptDto.setSrmsEmail(userInfo.getEmail());
userAcceptDto.setSrmsPhone(userInfo.getPhone());
userAcceptDto.setSrmsOfficePhone(userInfo.getTelephone());
if (!Objects.isNull(userInfo.getCreateTime())){
if (!Objects.isNull(userInfo.getCreateTime())) {
userAcceptDto.setSrmsCreateTime(new SimpleDateFormat(DATE_FORMAT).format(userInfo.getCreateTime()));
}
if (!Objects.isNull(sysUser.getUpdateTime())){
if (!Objects.isNull(sysUser.getUpdateTime())) {
userAcceptDto.setSrmsUpdateTime(new SimpleDateFormat(DATE_FORMAT).format(sysUser.getUpdateTime()));
}
userAcceptDto.setSrmsTypeId(sysUser.getTypeId());
@@ -1003,12 +1017,13 @@ public class SyncIamService {
/**
* 根据id查询用户信息
*
* @return
*/
public IamOrgInfoResponse getOrgInfoById(IamOrgAcceptDto iamOrgAcceptDto){
public IamOrgInfoResponse getOrgInfoById(IamOrgAcceptDto iamOrgAcceptDto) {
SysDepart sysDepart = this.sysDepartService.getById(iamOrgAcceptDto.getBimOrgId());
if (sysDepart == null){
if (sysDepart == null) {
throw new IamGlobalException(iamOrgAcceptDto.getBimRequestId(), "查询组织不存在");
}