diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/position/IPositionBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/position/IPositionBaseService.java index 45a6e07a..eeb72034 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/position/IPositionBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/position/IPositionBaseService.java @@ -108,4 +108,21 @@ public interface IPositionBaseService { * @return */ Integer count(Map params); + + /** + * 上级详情 + * + * @param positionId 职位ID + * @return + */ + PositionDTO getParentByPositionId(String positionId); + + /** + * 上级列表 + * + * @param positionIds 职位ID列表 + * @return + */ + List listParentByPositionIds(List positionIds); + } diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/position/IPositionUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/position/IPositionUserBaseService.java index 1b066fd7..b341b7c7 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/position/IPositionUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/position/IPositionUserBaseService.java @@ -36,6 +36,41 @@ public interface IPositionUserBaseService { */ List listUserId(List positionIds); + /** + * 用户ID列表 + * + * @param positionId + * @param userIds + * @return + */ + List listUserIdByPositionIdAndUserIds(String positionId, List userIds); + + /** + * 用户ID列表 + * + * @param positionIds + * @param userIds + * @return + */ + List listUserIdByPositionIdsAndUserIds(List positionIds, List userIds); + + /** + * 职位ID列表 + * + * @param userId + * @return + */ + List listPositionIdByUserId(String userId); + + /** + * 职位ID列表 + * + * @param userIds + * @return + */ + List listPositionIdByUserIds(List userIds); + + /** * 分页用户组用户 * @@ -68,4 +103,6 @@ public interface IPositionUserBaseService { * @return */ List listSimple(List positionPOs); + + } diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/role/IRoleUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/role/IRoleUserBaseService.java index 872efea3..ba164635 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/role/IRoleUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/role/IRoleUserBaseService.java @@ -80,6 +80,14 @@ public interface IRoleUserBaseService { */ List listUserIdByRoleIdAndUserIds(String roleId, List userIds); + /** + * 用户ID列表 + * @param roleIds 角色ID列表 + * @param userIds 用户ID列表 + * @return + */ + List listUserIdByRoleIdsAndUserIds(List roleIds, List userIds); + /** * 角色ID列表 * diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionRemoteService.java index 87f88fdb..fb8b966c 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionRemoteService.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionRemoteService.java @@ -53,4 +53,11 @@ public interface IPositionRemoteService { @RemoteGetMethod("/count") SuccessResultData count(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParamsMap Map params); + + @RemoteGetMethod("/get-parent/position-id/{positionId}") + PositionDTO getParentByPositionId(@RemoteServerParams String userCenter, @RemotePathParams("positionId") String positionId, @RemoteQueryParams("access_token") String accessToken); + + @RemotePostMethod("/list-parent/position-ids") + List listParentByPositionIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionUserRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionUserRemoteService.java index 9ea1b56e..867f0ed1 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionUserRemoteService.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionUserRemoteService.java @@ -36,4 +36,17 @@ public interface IPositionUserRemoteService { @RemotePostMethod("/list-position-po/user-ids") List listPositionPOByUserIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + + @RemotePostMethod("/list-user-id/position-id/{positionId}/user-ids") + List listUserIdByPositionIdAndUserIds(@RemoteServerParams String userCenter, @RemotePathParams("positionId") String positionId, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + + @RemotePostMethod("/list-user-id/position-ids/user-ids") + List listUserIdByPositionIdsAndUserIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + + @RemoteGetMethod("/list-position-id/user-id/{userId}") + List listPositionIdByUserId(@RemoteServerParams String userCenter, @RemotePathParams("userId") String userId, @RemoteQueryParams("access_token") String accessToken); + + @RemotePostMethod("/list-position-id/user-ids") + List listPositionIdByUserIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/role/IRoleUserRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/role/IRoleUserRemoteService.java index 57aa6cfe..87aceab9 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/role/IRoleUserRemoteService.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/role/IRoleUserRemoteService.java @@ -38,6 +38,9 @@ public interface IRoleUserRemoteService { @RemotePostMethod("/list-user-id/role-id/{roleId}/user-ids") List listUserIdByRoleIdAndUserIds(@RemoteServerParams String userCenter, @RemotePathParams("roleId") String roleId, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + @RemotePostMethod("/list-user-id/role-ids/user-ids") + List listUserIdByRoleIdsAndUserIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + @RemotePostMethod("/list-role-po/role-ids") List listRolePOByRoleIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/position/impl/PositionServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/position/impl/PositionServiceImpl.java index c1ed9f72..50e09af6 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/position/impl/PositionServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/position/impl/PositionServiceImpl.java @@ -12,6 +12,7 @@ import ink.wgink.pojo.result.SuccessResultData; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.vos.IdsVO; import ink.wgink.properties.ApiPathProperties; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -98,4 +99,22 @@ public class PositionServiceImpl extends DefaultBaseService implements IPosition SuccessResultData count = positionRemoteService.count(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), params); return count.getData(); } + + @Override + public PositionDTO getParentByPositionId(String positionId) { + if (StringUtils.isBlank(positionId)) { + return null; + } + return positionRemoteService.getParentByPositionId(apiPathProperties.getUserCenter(), positionId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken()); + } + + @Override + public List listParentByPositionIds(List positionIds) { + if (positionIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(positionIds); + return positionRemoteService.listParentByPositionIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/position/impl/PositionUserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/position/impl/PositionUserServiceImpl.java index 66de8c28..b1c5d17b 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/position/impl/PositionUserServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/position/impl/PositionUserServiceImpl.java @@ -11,6 +11,7 @@ import ink.wgink.pojo.pos.PositionPO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.vos.IdsVO; import ink.wgink.properties.ApiPathProperties; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -39,11 +40,59 @@ public class PositionUserServiceImpl extends DefaultBaseService implements IPosi @Override public List listUserId(List positionIds) { + if (positionIds.isEmpty()) { + return new ArrayList<>(); + } IdsVO idsVO = new IdsVO(); idsVO.setIds(positionIds); return positionUserRemoteService.listUserIdByPositionIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); } + @Override + public List listUserIdByPositionIdAndUserIds(String positionId, List userIds) { + if (StringUtils.isBlank(positionId)) { + return new ArrayList<>(); + } + if (userIds == null || userIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(userIds); + return positionUserRemoteService.listUserIdByPositionIdAndUserIds(apiPathProperties.getUserCenter(), positionId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } + + @Override + public List listUserIdByPositionIdsAndUserIds(List positionIds, List userIds) { + if (positionIds == null || positionIds.isEmpty()) { + return new ArrayList<>(); + } + if (userIds == null || userIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(positionIds); + idsVO.setIds2(userIds); + return positionUserRemoteService.listUserIdByPositionIdsAndUserIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } + + @Override + public List listPositionIdByUserId(String userId) { + if (StringUtils.isBlank(userId)) { + return new ArrayList<>(); + } + return positionUserRemoteService.listPositionIdByUserId(apiPathProperties.getUserCenter(), userId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken()); + } + + @Override + public List listPositionIdByUserIds(List userIds) { + if(userIds == null && userIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(userIds); + return positionUserRemoteService.listPositionIdByUserIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } + @Override public SuccessResultList> listPage(String positionId, ListPage page) { return positionUserRemoteService.listPage(apiPathProperties.getUserCenter(), positionId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), page.getPage(), page.getRows(), page.getParams()); diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleUserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleUserServiceImpl.java index 92ddae12..c784ed63 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleUserServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleUserServiceImpl.java @@ -12,6 +12,7 @@ import ink.wgink.pojo.pos.RolePO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.vos.IdsVO; import ink.wgink.properties.ApiPathProperties; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -86,11 +87,31 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser @Override public List listUserIdByRoleIdAndUserIds(String roleId, List userIds) { + if (StringUtils.isBlank(roleId)) { + return new ArrayList<>(); + } + if (userIds == null || userIds.isEmpty()) { + return new ArrayList<>(); + } IdsVO idsVO = new IdsVO(); idsVO.setIds(userIds); return roleUserRemoteService.listUserIdByRoleIdAndUserIds(apiPathProperties.getUserCenter(), roleId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); } + @Override + public List listUserIdByRoleIdsAndUserIds(List roleIds, List userIds) { + if (roleIds == null || roleIds.isEmpty()) { + return new ArrayList<>(); + } + if (userIds == null || userIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(roleIds); + idsVO.setIds2(userIds); + return roleUserRemoteService.listUserIdByRoleIdsAndUserIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } + @Override public List listRoleIdByUserId(String userId) { return roleUserRemoteService.listRoleIdByUserId(apiPathProperties.getUserCenter(), userId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken()); diff --git a/service-position/src/main/java/ink/wgink/service/position/controller/resources/PositionResourceController.java b/service-position/src/main/java/ink/wgink/service/position/controller/resources/PositionResourceController.java index 476dae42..11353b8d 100644 --- a/service-position/src/main/java/ink/wgink/service/position/controller/resources/PositionResourceController.java +++ b/service-position/src/main/java/ink/wgink/service/position/controller/resources/PositionResourceController.java @@ -1,6 +1,7 @@ package ink.wgink.service.position.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.ZTreeDTO; @@ -152,4 +153,26 @@ public class PositionResourceController extends DefaultBaseController { return new SuccessResultData<>(count); } + + @ApiOperation(value = "通过ID列表获取职位列表", notes = "通过ID列表获取用户职位接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "positionId", value = "职位ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("get-parent/position-id/{positionId}") + public PositionDTO getParentByPositionId(@PathVariable("positionId") String positionId) { + return positionService.getParentByPositionId(positionId); + } + + @ApiOperation(value = "通过职位ID列表获取上级职位列表", notes = "通过职位ID列表获取职位列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list-parent/position-ids") + public List listParentByPositionIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("ids不能为空"); + } + return positionService.listParentByPositionIds(idsVO.getIds()); + } + + } diff --git a/service-position/src/main/java/ink/wgink/service/position/controller/resources/PositionUserResourceController.java b/service-position/src/main/java/ink/wgink/service/position/controller/resources/PositionUserResourceController.java index e39b3fe4..dc5acc4b 100644 --- a/service-position/src/main/java/ink/wgink/service/position/controller/resources/PositionUserResourceController.java +++ b/service-position/src/main/java/ink/wgink/service/position/controller/resources/PositionUserResourceController.java @@ -1,6 +1,7 @@ package ink.wgink.service.position.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.position.PositionUserDTO; @@ -89,4 +90,50 @@ public class PositionUserResourceController extends DefaultBaseController { return positionUserService.listPositionPOByUserIds(idsVO.getIds()); } + @ApiOperation(value = "用户ID列表", notes = "通过职位ID和用户ID列表获取用户ID列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path", dataType = "String"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list-user-id/position-id/{positionId}/user-ids") + public List listUserIdByPositionIdAndUserIds(@PathVariable("positionId") String positionId, @RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + return positionUserService.listUserIdByPositionIdAndUserIds(positionId, idsVO.getIds()); + } + + @ApiOperation(value = "用户ID列表", notes = "通过职位ID列表和用户ID列表获取用户ID列表") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list-user-id/position-ids/user-ids") + public List listUserIdByPositionIdAndUserIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + if (idsVO.getIds2().isEmpty()) { + throw new ParamsException("id2列表不能为空"); + } + return positionUserService.listUserIdByPositionIdsAndUserIds(idsVO.getIds(), idsVO.getIds2()); + } + + @ApiOperation(value = "职位ID列表", notes = "通过用户ID获取职位ID列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userId", value = "用户ID", paramType = "path", dataType = "String"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-position-id/user-id/{userId}") + public List listPositionIdByUserId(@PathVariable("userId") String userId) { + return positionUserService.listPositionIdByUserId(userId); + } + + @ApiOperation(value = "职位ID列表", notes = "通过用户ID列表获取职位ID列表") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list-position-id/user-ids") + public List listPositionIdByUserIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + return positionUserService.listPositionIdByUserIds(idsVO.getIds()); + } + } diff --git a/service-position/src/main/java/ink/wgink/service/position/dao/IPositionDao.java b/service-position/src/main/java/ink/wgink/service/position/dao/IPositionDao.java index 75e3a2f0..040a50d2 100644 --- a/service-position/src/main/java/ink/wgink/service/position/dao/IPositionDao.java +++ b/service-position/src/main/java/ink/wgink/service/position/dao/IPositionDao.java @@ -109,4 +109,22 @@ public interface IPositionDao extends IInitBaseTable { * @throws SearchException */ List listPO(Map params) throws SearchException; + + /** + * 上级职位 + * + * @param params + * @return + * @throws SearchException + */ + PositionDTO getParent(Map params) throws SearchException; + + /** + * 上级职位列表 + * + * @param params + * @return + * @throws SearchException + */ + List listParent(Map params) throws SearchException; } diff --git a/service-position/src/main/java/ink/wgink/service/position/service/impl/PositionServiceImpl.java b/service-position/src/main/java/ink/wgink/service/position/service/impl/PositionServiceImpl.java index 67f006db..db53de1a 100644 --- a/service-position/src/main/java/ink/wgink/service/position/service/impl/PositionServiceImpl.java +++ b/service-position/src/main/java/ink/wgink/service/position/service/impl/PositionServiceImpl.java @@ -4,16 +4,17 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.interfaces.consts.ISystemConstant; -import ink.wgink.pojo.pos.PositionPO; -import ink.wgink.service.position.pojo.vos.PositionVO; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.ZTreeDTO; import ink.wgink.pojo.dtos.position.PositionDTO; +import ink.wgink.pojo.pos.PositionPO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.service.position.dao.IPositionDao; +import ink.wgink.service.position.pojo.vos.PositionVO; import ink.wgink.service.position.service.IPositionService; import ink.wgink.util.UUIDUtil; import ink.wgink.util.map.HashMapUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -141,6 +142,26 @@ public class PositionServiceImpl extends DefaultBaseService implements IPosition return count == null ? 0 : count; } + @Override + public PositionDTO getParentByPositionId(String positionId) { + if (StringUtils.isBlank(positionId)) { + return null; + } + Map params = getHashMap(2); + params.put("positionId", positionId); + return positionDao.getParent(params); + } + + @Override + public List listParentByPositionIds(List positionIds) { + if (positionIds == null || positionIds.isEmpty()) { + return new ArrayList<>(); + } + Map params = getHashMap(2); + params.put("positionIds", positionIds); + return positionDao.listParent(params); + } + /** * 递归查询子组 * diff --git a/service-position/src/main/java/ink/wgink/service/position/service/impl/PositionUserServiceImpl.java b/service-position/src/main/java/ink/wgink/service/position/service/impl/PositionUserServiceImpl.java index 0b30e02f..50acc6cb 100644 --- a/service-position/src/main/java/ink/wgink/service/position/service/impl/PositionUserServiceImpl.java +++ b/service-position/src/main/java/ink/wgink/service/position/service/impl/PositionUserServiceImpl.java @@ -78,6 +78,36 @@ public class PositionUserServiceImpl extends DefaultBaseService implements IPosi return positionUserDao.listUserId(params); } + @Override + public List listUserIdByPositionIdAndUserIds(String positionId, List userIds) { + Map params = getHashMap(4); + params.put("positionId", positionId); + params.put("userIds", userIds); + return positionUserDao.listUserId(params); + } + + @Override + public List listUserIdByPositionIdsAndUserIds(List positionIds, List userIds) { + Map params = getHashMap(4); + params.put("positionIds", positionIds); + params.put("userIds", userIds); + return positionUserDao.listUserId(params); + } + + @Override + public List listPositionIdByUserId(String userId) { + Map params = getHashMap(2); + params.put("userId", userId); + return positionUserDao.listPositionId(params); + } + + @Override + public List listPositionIdByUserIds(List userIds) { + Map params = getHashMap(2); + params.put("userIds", userIds); + return positionUserDao.listPositionId(params); + } + @Override public SuccessResultList> listPage(String positionId, ListPage page) { SuccessResultList> successResultList; diff --git a/service-position/src/main/resources/mybatis/mapper/position-mapper.xml b/service-position/src/main/resources/mybatis/mapper/position-mapper.xml index 15bcc86b..a463d44c 100644 --- a/service-position/src/main/resources/mybatis/mapper/position-mapper.xml +++ b/service-position/src/main/resources/mybatis/mapper/position-mapper.xml @@ -256,4 +256,56 @@ + + + + + \ No newline at end of file diff --git a/service-position/src/main/resources/mybatis/mapper/position-user-mapper.xml b/service-position/src/main/resources/mybatis/mapper/position-user-mapper.xml index 4e7a731c..2e9c87d8 100644 --- a/service-position/src/main/resources/mybatis/mapper/position-user-mapper.xml +++ b/service-position/src/main/resources/mybatis/mapper/position-user-mapper.xml @@ -56,17 +56,25 @@ user_id FROM sys_position_user - WHERE + position_id = #{positionId} + AND position_id IN ( #{positionIds[${index}]} ) + + AND + user_id IN + + #{userIds[${index}]} + + 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 b44481d2..24886fec 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 @@ -81,19 +81,32 @@ public class RoleUserResourceController extends DefaultBaseController { return roleUserService.listRolePOByUserId(userId); } - @ApiOperation(value = "用户ID列表", notes = "通过角色和用户ID列表获取用户ID列表") + @ApiOperation(value = "用户ID列表", notes = "通过角色ID和用户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) { + public List listUserIdByRoleIdAndUserIds(@PathVariable("roleId") String roleId, @RequestBody IdsVO idsVO) { if (idsVO.getIds().isEmpty()) { throw new ParamsException("id列表不能为空"); } return roleUserService.listUserIdByRoleIdAndUserIds(roleId, idsVO.getIds()); } + @ApiOperation(value = "用户ID列表", notes = "通过角色ID列表和用户ID列表获取用户ID列表") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list-user-id/role-ids/user-ids") + public List listUserIdByRoleIdAndUserIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + if (idsVO.getIds2().isEmpty()) { + throw new ParamsException("id2列表不能为空"); + } + return roleUserService.listUserIdByRoleIdsAndUserIds(idsVO.getIds(), idsVO.getIds2()); + } + @ApiOperation(value = "角色ID列表", notes = "通过用户ID列表获取角色ID列表") @ApiImplicitParams({ @ApiImplicitParam(name = "userId", value = "用户ID", paramType = "path", dataType = "String"), 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 3e18d236..f7bd8e88 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 @@ -201,6 +201,20 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser return roleUserDao.listUserId(params); } + @Override + public List listUserIdByRoleIdsAndUserIds(List roleIds, List userIds) { + if (roleIds == null || roleIds.isEmpty()) { + return new ArrayList<>(); + } + if (userIds == null || userIds.isEmpty()) { + return new ArrayList<>(); + } + Map params = getHashMap(4); + params.put("roleIds", roleIds); + params.put("userIds", userIds); + return roleUserDao.listUserId(params); + } + @Override public List listRoleIdByUserId(String userId) { Map params = getHashMap(2);