diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java index 717f7da0..213300ce 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java @@ -144,4 +144,37 @@ public interface IDepartmentUserBaseService { * @return */ SuccessResultList> listPageUserByDepartmentId(String departmentId, ListPage page); + + /** + * 部门ID列表 + * + * @param userId 用户ID + * @return + */ + List listDepartmentIdByUserId(String userId); + + /** + * 部门ID列表 + * + * @param userIds 用户ID列表 + * @return + */ + List listDepartmentIdByUserIds(List userIds); + + /** + * 部门用户ID列表 + * + * @param userId 用户ID + * @return + */ + List listSameDepartmentUserIdByUserId(String userId); + + /** + * 部门用户ID列表 + * + * @param userIds 用户ID列表 + * @return + */ + List listSameDepartmentUserIdByUserIds(List userIds); + } 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 eeb72034..921bdd5a 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 @@ -125,4 +125,11 @@ public interface IPositionBaseService { */ List listParentByPositionIds(List positionIds); + /** + * 职位列表 + * + * @param positionParentIds 上级职位ID + * @return + */ + List listByPositionParentIds(List positionParentIds); } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java index 2c156a57..3ebd3a7c 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java @@ -60,6 +60,18 @@ public interface IDepartmentUserRemoteService { List listUserByDepartmentId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("departmentId") String departmentId); @RemoteGetMethod("/listpage-user/department-id/{departmentId}") - SuccessResultList> listPageUserByDepartmentId(String userCenter, @RemotePathParams("departmentId") String departmentId, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParams("page") int page, @RemoteQueryParams("rows") int rows, @RemoteQueryParamsMap Map params); + SuccessResultList> listPageUserByDepartmentId(@RemoteServerParams String userCenter, @RemotePathParams("departmentId") String departmentId, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParams("page") int page, @RemoteQueryParams("rows") int rows, @RemoteQueryParamsMap Map params); + + @RemoteGetMethod("/list-department-id/user-id/{userId}") + List listDepartmentIdByUserId(@RemoteServerParams String userCenter, @RemotePathParams("userId") String userId, @RemoteQueryParams("access_token") String accessToken); + + @RemotePostMethod("/list-department-id/user-ids") + List listDepartmentIdByUserIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + + @RemotePostMethod("/list-save-department-user-id/user-id/{userId}") + List listSameDepartmentUserIdByUserId(@RemoteServerParams String userCenter, @RemotePathParams("userId") String userId, @RemoteQueryParams("access_token") String accessToken); + + @RemotePostMethod("/list-save-department-user-ids/user-ids") + List listSameDepartmentUserIdByUserIds(@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/IPositionRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/position/IPositionRemoteService.java index fb8b966c..40a0aef8 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 @@ -60,4 +60,6 @@ public interface IPositionRemoteService { @RemotePostMethod("/list-parent/position-ids") List listParentByPositionIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + @RemotePostMethod("/list/position-parent-ids") + List listByPositionParentIds(@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/department/impl/DepartmentUserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java index 51c6d3c3..f23a06d0 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java @@ -145,4 +145,40 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe return departmentUserRemoteService.listPageUserByDepartmentId(apiPathProperties.getUserCenter(), departmentId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), page.getPage(), page.getRows(), page.getParams()); } + @Override + public List listDepartmentIdByUserId(String userId) { + if (StringUtils.isBlank(userId)) { + return new ArrayList<>(); + } + return departmentUserRemoteService.listDepartmentIdByUserId(apiPathProperties.getUserCenter(), userId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken()); + } + + @Override + public List listDepartmentIdByUserIds(List userIds) { + if (userIds == null && userIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(userIds); + return departmentUserRemoteService.listDepartmentIdByUserIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } + + @Override + public List listSameDepartmentUserIdByUserId(String userId) { + if (StringUtils.isBlank(userId)) { + return new ArrayList<>(); + } + return departmentUserRemoteService.listSameDepartmentUserIdByUserId(apiPathProperties.getUserCenter(), userId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken()); + } + + @Override + public List listSameDepartmentUserIdByUserIds(List userIds) { + if (userIds == null || userIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(userIds); + return departmentUserRemoteService.listSameDepartmentUserIdByUserIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), 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 50e09af6..8f4a16d0 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 @@ -110,11 +110,21 @@ public class PositionServiceImpl extends DefaultBaseService implements IPosition @Override public List listParentByPositionIds(List positionIds) { - if (positionIds.isEmpty()) { + if (positionIds == null && positionIds.isEmpty()) { return new ArrayList<>(); } IdsVO idsVO = new IdsVO(); idsVO.setIds(positionIds); return positionRemoteService.listParentByPositionIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); } + + @Override + public List listByPositionParentIds(List positionParentIds) { + if (positionParentIds == null && positionParentIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(positionParentIds); + return positionRemoteService.listByPositionParentIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } } diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java b/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java index 6ebf2509..9a91eb26 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java @@ -1,6 +1,7 @@ package ink.wgink.service.department.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.department.DepartmentDTO; @@ -156,4 +157,44 @@ public class DepartmentUserResourceController extends DefaultBaseController { return departmentUserService.listPageUserByDepartmentId(departmentId, page); } + @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-department-id/user-id/{userId}") + public List listDepartmentIdByUserId(@PathVariable("userId") String userId) { + return departmentUserService.listDepartmentIdByUserId(userId); + } + + @ApiOperation(value = "部门ID列表", notes = "通过用户ID列表获取部门ID列表") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list-department-id/user-ids") + public List listDepartmentIdByUserIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + return departmentUserService.listDepartmentIdByUserIds(idsVO.getIds()); + } + + @ApiOperation(value = "通过用户ID同部门用户ID列表", notes = "通过用户ID同部门用户ID列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userId", value = "用户ID", paramType = "path", dataType = "String"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-save-department-user-id/user-id/{userId}") + public List listSameDepartmentUserIdByUserId(@PathVariable("userId") String userId) { + return departmentUserService.listSameDepartmentUserIdByUserId(userId); + } + + @ApiOperation(value = "通过用户ID列表同部门用户ID列表", notes = "通过用户ID列表同部门用户ID列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list-save-department-user-ids/user-ids") + public List listSameDepartmentUserIdByUserIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + return departmentUserService.listSameDepartmentUserIdByUserIds(idsVO.getIds()); + } + } diff --git a/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserDao.java b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserDao.java index 9630a543..d549089c 100644 --- a/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserDao.java +++ b/service-department/src/main/java/ink/wgink/service/department/dao/IDepartmentUserDao.java @@ -92,4 +92,14 @@ public interface IDepartmentUserDao extends IInitBaseTable { * @throws SearchException */ List listUser(Map params) throws SearchException; + + /** + * 同部门用户ID列表 + * + * @param params + * @return + * @throws SearchException + */ + List listSameDepartmentUserId(Map params) throws SearchException; + } diff --git a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java index 64f7d013..463c16bd 100644 --- a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java @@ -452,4 +452,32 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe PageInfo pageInfo = new PageInfo<>(userDTOs); return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); } + + @Override + public List listDepartmentIdByUserId(String userId) { + Map params = getHashMap(2); + params.put("userId", userId); + return departmentUserDao.listDepartmentId(params); + } + + @Override + public List listDepartmentIdByUserIds(List userIds) { + Map params = getHashMap(2); + params.put("userIds", userIds); + return departmentUserDao.listDepartmentId(params); + } + + @Override + public List listSameDepartmentUserIdByUserId(String userId) { + Map params = getHashMap(2); + params.put("userId", userId); + return departmentUserDao.listSameDepartmentUserId(params); + } + + @Override + public List listSameDepartmentUserIdByUserIds(List userIds) { + Map params = getHashMap(2); + params.put("userIds", userIds); + return departmentUserDao.listSameDepartmentUserId(params); + } } diff --git a/service-department/src/main/resources/mybatis/mapper/department-user-mapper.xml b/service-department/src/main/resources/mybatis/mapper/department-user-mapper.xml index 69045f68..f4cf644e 100644 --- a/service-department/src/main/resources/mybatis/mapper/department-user-mapper.xml +++ b/service-department/src/main/resources/mybatis/mapper/department-user-mapper.xml @@ -167,17 +167,19 @@ department_id FROM sys_department_user - WHERE + user_id = #{userId} + AND user_id IN ( #{userIds[${index}]} ) + @@ -217,4 +219,31 @@ + + + \ No newline at end of file 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 11353b8d..9eda9cd7 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 @@ -174,5 +174,14 @@ public class PositionResourceController extends DefaultBaseController { return positionService.listParentByPositionIds(idsVO.getIds()); } + @ApiOperation(value = "通过上级职位ID列表获取职位列表", notes = "通过上级职位ID列表获取职位列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list/position-parent-ids") + public List listByPositionParentIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("ids不能为空"); + } + return positionService.listByPositionParentIds(idsVO.getIds()); + } } 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 db53de1a..78b24a5a 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 @@ -162,6 +162,13 @@ public class PositionServiceImpl extends DefaultBaseService implements IPosition return positionDao.listParent(params); } + @Override + public List listByPositionParentIds(List positionParentIds) { + Map params = getHashMap(2); + params.put("positionParentIds", positionParentIds); + return positionDao.list(params); + } + /** * 递归查询子组 * 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 a463d44c..f9d3192c 100644 --- a/service-position/src/main/resources/mybatis/mapper/position-mapper.xml +++ b/service-position/src/main/resources/mybatis/mapper/position-mapper.xml @@ -162,6 +162,13 @@ #{positionIds[${index}]} + + AND + position_parent_id IN + + #{positionParentIds[${index}]} + + ORDER BY 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 2e9c87d8..2f4ffa4e 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 @@ -75,6 +75,7 @@ #{userIds[${index}]} +