diff --git a/service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleUserResourceController.java b/service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleUserResourceController.java index dde15553..bfe57528 100644 --- a/service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleUserResourceController.java +++ b/service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleUserResourceController.java @@ -1,6 +1,7 @@ package ink.wgink.service.role.controller.resources; import ink.wgink.common.base.DefaultBaseController; +import ink.wgink.exceptions.ParamsException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.role.RoleUserDTO; @@ -79,4 +80,17 @@ public class RoleUserResourceController extends DefaultBaseController { return roleUserService.listRolePOByUserId(userId); } + @ApiOperation(value = "用户ID列表", notes = "通过角色和用户ID列表获取用户ID列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path", dataType = "String"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list-user-id/role-id/{roleId}/user-ids") + public List listUserIdByRoleIdAndUserIds(@PathVariable("userId") String roleId, @RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + return roleUserService.listUserIdByRoleIdAndUserIds(roleId, idsVO.getIds()); + } + } diff --git a/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleUserServiceImpl.java b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleUserServiceImpl.java index 0563c30a..681c737b 100644 --- a/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleUserServiceImpl.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleUserServiceImpl.java @@ -2,6 +2,8 @@ package ink.wgink.service.role.service.impl; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.interfaces.role.IRoleUserDeleteAfterHandler; +import ink.wgink.interfaces.role.IRoleUserSaveAfterHandler; import ink.wgink.interfaces.user.IUserBaseService; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.role.RoleSimpleDTO; @@ -40,6 +42,10 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser private IRoleService roleService; @Autowired private IUserBaseService userBaseService; + @Autowired(required = false) + private IRoleUserSaveAfterHandler roleUserSaveAfterHandler; + @Autowired(required = false) + private IRoleUserDeleteAfterHandler roleUserDeleteAfterHandler; @Override public void update(String roleId, List userIds) { @@ -52,6 +58,9 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser roleUserDao.save(params); } } + if (roleUserSaveAfterHandler != null) { + roleUserSaveAfterHandler.handle(roleId, userIds); + } } @Override @@ -60,6 +69,9 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser params.put("roleId", roleId); params.put("userIds", userIds); roleUserDao.delete(params); + if (roleUserDeleteAfterHandler != null) { + roleUserSaveAfterHandler.handle(roleId, userIds); + } } @Override @@ -122,6 +134,20 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser return roleSimpleDTOs; } + @Override + public List listUserIdByRoleIdAndUserIds(String roleId, List userIds) { + if (StringUtils.isBlank(roleId)) { + return new ArrayList<>(); + } + if (userIds == null || userIds.isEmpty()) { + return new ArrayList<>(); + } + Map params = getHashMap(4); + params.put("roleId", roleId); + params.put("userIds", userIds); + return roleUserDao.listUserId(params); + } + private List listGroupUserId(Map params) { return roleUserDao.listGroupUserId(params); diff --git a/service-role/src/main/resources/mybatis/mapper/role-user-mapper.xml b/service-role/src/main/resources/mybatis/mapper/role-user-mapper.xml index cc6f24dd..9ca5ae12 100644 --- a/service-role/src/main/resources/mybatis/mapper/role-user-mapper.xml +++ b/service-role/src/main/resources/mybatis/mapper/role-user-mapper.xml @@ -56,17 +56,25 @@ user_id FROM sys_role_user - WHERE + role_id = #{roleId} - role_id IN ( + AND + role_id IN #{roleIds[${index}]} - ) + + AND + user_id IN + + #{userIds[${index}]} + + +