fix(iam): 完善对接

This commit is contained in:
yjz
2023-11-21 18:30:28 +08:00
parent f7000760e4
commit 993d0389d6
2 changed files with 173 additions and 211 deletions
@@ -44,6 +44,11 @@ public class ResourceDto {
*/
private String redirect;
/**
* 路径
*/
private String url;
/**
* 类型(0:一级菜单; 1:子菜单:2:按钮权限)
*/
@@ -578,24 +578,18 @@ public class SyncIamService {
* 角色创建
*/
public BpmcResponseDto roleCreateService(RoleDto roleDto){
try {
SysRole sysRole = new SysRole();
sysRole.setId(roleDto.getId());
sysRole.setRoleName(roleDto.getName());
sysRole.setRoleCode(roleDto.getCode());
sysRole.setDescription(roleDto.getDescription());
sysRole.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
sysRole.setCreateTime(roleDto.getCreateTime());
sysRole.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
sysRole.setUpdateTime(roleDto.getModifyTime());
sysRole.setAppId(roleDto.getAppId());
sysRoleService.save(sysRole);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
SysRole sysRole = new SysRole();
sysRole.setId(roleDto.getId());
sysRole.setRoleName(roleDto.getName());
sysRole.setRoleCode(roleDto.getCode());
sysRole.setDescription(roleDto.getDescription());
sysRole.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
sysRole.setCreateTime(roleDto.getCreateTime());
sysRole.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
sysRole.setUpdateTime(roleDto.getModifyTime());
sysRole.setAppId(roleDto.getAppId());
sysRoleService.save(sysRole);
return BpmcResponseDto.success();
}
@@ -603,47 +597,42 @@ public class SyncIamService {
* 角色更新
*/
public BpmcResponseDto roleUpdateService(RoleDto roleDto){
try {
if (CharSequenceUtil.isEmpty(roleDto.getId())){
return BpmcResponseDto.error("角色id为空,无法更新");
}
SysRole sysRole = sysRoleService.getById(roleDto.getId());
if (sysRole == null){
return BpmcResponseDto.error("未找到对应id角色,无法更新");
}else {
sysRole.setId(roleDto.getId());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getName())){
sysRole.setRoleName(roleDto.getName());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getCode())){
sysRole.setRoleCode(roleDto.getCode());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getDescription())){
sysRole.setDescription(roleDto.getDescription());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getAppId())){
sysRole.setAppId(roleDto.getAppId());
}
sysRole.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (roleDto.getModifyTime() != null){
sysRole.setUpdateTime(roleDto.getModifyTime());
}
sysRoleService.updateById(sysRole);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
if (CharSequenceUtil.isEmpty(roleDto.getId())){
return BpmcResponseDto.error("角色id为空,无法更新");
}
SysRole sysRole = sysRoleService.getById(roleDto.getId());
if (sysRole == null){
return BpmcResponseDto.error("未找到对应id角色,无法更新");
}else {
sysRole.setId(roleDto.getId());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getName())){
sysRole.setRoleName(roleDto.getName());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getCode())){
sysRole.setRoleCode(roleDto.getCode());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getDescription())){
sysRole.setDescription(roleDto.getDescription());
}
if (CharSequenceUtil.isNotEmpty(roleDto.getAppId())){
sysRole.setAppId(roleDto.getAppId());
}
sysRole.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (roleDto.getModifyTime() != null){
sysRole.setUpdateTime(roleDto.getModifyTime());
}
sysRoleService.updateById(sysRole);
return BpmcResponseDto.success();
}
@@ -651,17 +640,12 @@ public class SyncIamService {
* 角色删除
*/
public BpmcResponseDto roleDeleteService(RoleDto roleDto){
try {
if (CharSequenceUtil.isEmpty(roleDto.getId())){
return BpmcResponseDto.error("角色id为空,无法删除");
}
sysRoleService.deleteRole(roleDto.getId());
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
if (CharSequenceUtil.isEmpty(roleDto.getId())){
return BpmcResponseDto.error("角色id为空,无法删除");
}
sysRoleService.deleteRole(roleDto.getId());
return BpmcResponseDto.success();
}
@@ -669,69 +653,67 @@ public class SyncIamService {
* 菜单创建
*/
public BpmcResponseDto resourceCreateService(ResourceDto resourceDto){
try {
SysPermission sysPermission = new SysPermission();
sysPermission.setId(resourceDto.getId());
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())){
sysPermission.setPerms(resourceDto.getCode());
}
sysPermission.setComponent(resourceDto.getComponent()); // 组件的路径
if (StringUtils.isNotBlank(resourceDto.getRedirect())){
sysPermission.setUrl(resourceDto.getRedirect()); // 地址栏显示的路径
}
sysPermission.setAppId(resourceDto.getAppId()); // appId
if (!Objects.isNull(resourceDto.getSort())){
sysPermission.setSortNo(Double.valueOf(resourceDto.getSort()));
}else {
sysPermission.setSortNo(1D);
}
// TODO 菜单英文名数据库中没有,需要确认
// sysPermission的 menuType 0:一级菜单;1:子菜单 ;2:按钮权限)
if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()){
if (CharSequenceUtil.isEmpty(resourceDto.getParentId())){
sysPermission.setMenuType(0);
} else {
sysPermission.setMenuType(1);
}
} else {
sysPermission.setMenuType(2);
}
sysPermission.setCreateTime(new Date());
sysPermission.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
if (!Objects.isNull(resourceDto.getModifyTime())){
sysPermission.setUpdateTime(resourceDto.getModifyTime());
}
sysPermission.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
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.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);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
SysPermission sysPermission = new SysPermission();
sysPermission.setId(resourceDto.getId());
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())){
sysPermission.setPerms(resourceDto.getCode());
}
sysPermission.setComponent(resourceDto.getComponent()); // 组件的路径
if (CharSequenceUtil.isNotEmpty(resourceDto.getRedirect())){
sysPermission.setRedirect(resourceDto.getRedirect()); // 地址栏显示的路径
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getUrl())){
sysPermission.setUrl(resourceDto.getUrl()); // 路径
}
sysPermission.setAppId(resourceDto.getAppId()); // appId
if (!Objects.isNull(resourceDto.getSort())){
sysPermission.setSortNo(Double.valueOf(resourceDto.getSort()));
}else {
sysPermission.setSortNo(1D);
}
// TODO 菜单英文名数据库中没有,需要确认
// sysPermission的 menuType 0:一级菜单;1:子菜单 ;2:按钮权限)
if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()){
if (CharSequenceUtil.isEmpty(resourceDto.getParentId())){
sysPermission.setMenuType(0);
} else {
sysPermission.setMenuType(1);
}
} else {
sysPermission.setMenuType(2);
}
sysPermission.setCreateTime(new Date());
sysPermission.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
if (!Objects.isNull(resourceDto.getModifyTime())){
sysPermission.setUpdateTime(resourceDto.getModifyTime());
}
sysPermission.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
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.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);
return BpmcResponseDto.success();
}
@@ -769,7 +751,11 @@ public class SyncIamService {
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getRedirect())){
sysPermission.setUrl(resourceDto.getRedirect()); // 地址栏显示的路径
sysPermission.setRedirect(resourceDto.getRedirect()); // 地址栏显示的路径
}
if (CharSequenceUtil.isNotEmpty(resourceDto.getUrl())){
sysPermission.setUrl(resourceDto.getUrl()); // 路径
}
if (resourceDto.getSort() != null){
@@ -822,17 +808,10 @@ public class SyncIamService {
* 菜单删除(真实删除)
*/
public BpmcResponseDto resourceDeleteService(ResourceDto resourceDto){
try {
if (CharSequenceUtil.isEmpty(resourceDto.getId())){
return BpmcResponseDto.error("菜单id为空,无法删除");
}
sysPermissionService.deletePermission(resourceDto.getId());
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
if (CharSequenceUtil.isEmpty(resourceDto.getId())){
return BpmcResponseDto.error("菜单id为空,无法删除");
}
sysPermissionService.deletePermission(resourceDto.getId());
return BpmcResponseDto.success();
}
@@ -840,38 +819,33 @@ public class SyncIamService {
* 用户角色关联 创建(批量)
*/
public BpmcResponseDto userRoleCreateService(List<UserRoleDto> userRoleDtoList){
try {
List<SysUserRole> userRoleList = new ArrayList<>();
List<SysUserRole> userRoleList = new ArrayList<>();
for (UserRoleDto userRoleDto : userRoleDtoList){
if (CharSequenceUtil.isNotEmpty(userRoleDto.getAccountCode())){
SysUserRole sysUserRole = new SysUserRole();
// 根据 accountCode 字段(即用户名username) 从数据库里查出来用户id,在给到sysUserRole
LoginUser userInfo = sysBaseAPI.getUserByName(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){
continue;
}
sysUserRole.setUserId(userInfo.getId());
sysUserRole.setRoleId(userRoleDto.getArId());
// 角色重复性校验
int count = sysUserRoleService.count(new LambdaQueryWrapper<SysUserRole>()
.eq(SysUserRole::getUserId, sysUserRole.getUserId())
.eq(SysUserRole::getRoleId, sysUserRole.getRoleId()));
if (count > 0){
continue;
}
userRoleList.add(sysUserRole);
if (userInfo == null){
continue;
}
sysUserRole.setUserId(userInfo.getId());
sysUserRole.setRoleId(userRoleDto.getArId());
// 角色重复性校验
int count = sysUserRoleService.count(new LambdaQueryWrapper<SysUserRole>()
.eq(SysUserRole::getUserId, sysUserRole.getUserId())
.eq(SysUserRole::getRoleId, sysUserRole.getRoleId()));
if (count > 0){
continue;
}
userRoleList.add(sysUserRole);
}
this.sysUserRoleService.saveBatch(userRoleList);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
this.sysUserRoleService.saveBatch(userRoleList);
return BpmcResponseDto.success();
}
@@ -880,25 +854,19 @@ public class SyncIamService {
* 用户角色关联 刪除(批量)
*/
public BpmcResponseDto userRoleDeleteService(List<UserRoleDto> userRoleDtoList){
try {
for (UserRoleDto userRoleDto : userRoleDtoList){
QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>();
// 根据 accountCode 字段(即用户名username) 从数据库里查出来用户id,在给到sysUserRole
LoginUser userInfo = sysBaseAPI.getUserByName(userRoleDto.getAccountCode());
if (userInfo == null){
continue;
}
queryWrapper.eq("user_id", userInfo.getId());
queryWrapper.eq("role_id", userRoleDto.getArId());
this.sysUserRoleService.remove(queryWrapper);
for (UserRoleDto userRoleDto : userRoleDtoList){
QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<>();
// 根据 accountCode 字段(即用户名username) 从数据库里查出来用户id,在给到sysUserRole
LoginUser userInfo = sysBaseAPI.getUserByName(userRoleDto.getAccountCode());
if (userInfo == null){
continue;
}
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
}
queryWrapper.eq("user_id", userInfo.getId());
queryWrapper.eq("role_id", userRoleDto.getArId());
this.sysUserRoleService.remove(queryWrapper);
}
return BpmcResponseDto.success();
}
@@ -906,28 +874,22 @@ public class SyncIamService {
* 角色菜单关联 创建(批量)
*/
public BpmcResponseDto roleResourceCreateService(List<RoleResourceDto> roleResourceDtoList){
try {
List<SysRolePermission> sysRolePermissionList = new ArrayList<>();
List<SysRolePermission> sysRolePermissionList = new ArrayList<>();
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){
continue;
}
sysRolePermissionList.add(sysRolePermission);
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){
continue;
}
this.sysRolePermissionService.saveBatch(sysRolePermissionList);
} catch (Exception e){
e.printStackTrace();
return BpmcResponseDto.error(e.getMessage());
sysRolePermissionList.add(sysRolePermission);
}
this.sysRolePermissionService.saveBatch(sysRolePermissionList);
return BpmcResponseDto.success();
}
@@ -935,17 +897,12 @@ public class SyncIamService {
* 用户角色关联 刪除(批量)
*/
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());
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());
this.sysRolePermissionService.remove(queryWrapper);
}
return BpmcResponseDto.success();