From ddfe612c8e52a7d2dcbc32ec3b7f8a49497d0e1f Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Tue, 4 Jan 2022 22:38:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=83=A8=E9=97=A8=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=80=89=E6=8B=A9=E6=97=B6=EF=BC=8C=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E7=AD=9B=E9=80=89=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E9=83=A8=E9=97=A8=E7=94=A8=E6=88=B7=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E4=B8=8E?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../role/IRoleDepartmentUserBaseService.java | 11 ++ .../interfaces/user/IUserBaseService.java | 21 +++ .../IRoleDepartmentUserRemoteService.java | 28 ++++ .../impl/RoleDepartmentUserServiceImpl.java | 16 +- .../service/user/impl/UserServiceImpl.java | 14 ++ .../route/DepartmentUserRouteController.java | 9 +- .../service/IDepartmentUserService.java | 36 +++++ .../impl/DepartmentUserServiceImpl.java | 36 ++--- .../department/user/select-user.html | 140 ++++++++++++++---- .../api/RoleDepartmentUserController.java | 19 +++ .../RoleDepartmentUserResourceController.java | 51 +++++++ .../impl/RoleDepartmentUserServiceImpl.java | 73 +++++++++ .../main/resources/templates/role/list.html | 1 + .../user/service/impl/UserServiceImpl.java | 20 +++ 14 files changed, 420 insertions(+), 55 deletions(-) create mode 100644 login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/role/IRoleDepartmentUserRemoteService.java create mode 100644 service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleDepartmentUserResourceController.java diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/role/IRoleDepartmentUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/role/IRoleDepartmentUserBaseService.java index bd3d6609..22100ab7 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/role/IRoleDepartmentUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/role/IRoleDepartmentUserBaseService.java @@ -1,6 +1,8 @@ package ink.wgink.interfaces.role; +import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.result.SuccessResultList; import java.util.List; @@ -32,4 +34,13 @@ public interface IRoleDepartmentUserBaseService { */ List listUserByDepartmentIdAndRoleId(String departmentId, String roleId); + /** + * 用户分页列表 + * + * @param departmentId 部门ID + * @param roleId 角色ID + * @param page 分页参数 + * @return + */ + SuccessResultList> listPageUserByDepartmentIdAndRoleId(String departmentId, String roleId, ListPage page); } diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java index ccdcda1c..4f0afbd6 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/user/IUserBaseService.java @@ -95,6 +95,16 @@ public interface IUserBaseService { */ SuccessResultList> listPageByExcludeIds(List excludeUserIds, ListPage page); + /** + * 不包含与包含的用户分页列表 + * + * @param excludeUserIds 不包含用户id列表 + * @param includeUserIds 包含的用户id列表 + * @param page + * @return + */ + SuccessResultList> listPageByExcludeIdsAndIncludeIds(List excludeUserIds, List includeUserIds, ListPage page); + /** * 不包含的用户分页列表 * @@ -104,6 +114,16 @@ public interface IUserBaseService { */ List listByExcludeIds(List excludeUserIds, Map params); + /** + * 不包含和包含的用户分页列表 + * + * @param excludeUserIds 不包含用户ID列表 + * @param includeUserIds 包含用户ID列表 + * @param params + * @return + */ + List listByExcludeIds(List excludeUserIds, List includeUserIds, Map params); + /** * 用户统计 @@ -167,4 +187,5 @@ public interface IUserBaseService { * @return */ List listUserIds(List userDTOs); + } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/role/IRoleDepartmentUserRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/role/IRoleDepartmentUserRemoteService.java new file mode 100644 index 00000000..5679faff --- /dev/null +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/role/IRoleDepartmentUserRemoteService.java @@ -0,0 +1,28 @@ +package ink.wgink.login.oauth2.client.remote.role; + +import ink.wgink.annotation.rpc.rest.RemoteService; +import ink.wgink.annotation.rpc.rest.method.RemoteGetMethod; +import ink.wgink.annotation.rpc.rest.params.RemotePathParams; +import ink.wgink.annotation.rpc.rest.params.RemoteQueryParams; +import ink.wgink.annotation.rpc.rest.params.RemoteQueryParamsMap; +import ink.wgink.annotation.rpc.rest.params.RemoteServerParams; +import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.result.SuccessResultList; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: IRoleDepartmentUserRemoteService + * @Description: 角色部门用户列表 + * @Author: wanggeng + * @Date: 2022/1/4 6:33 PM + * @Version: 1.0 + */ +@RemoteService("/resource/role/department/user") +public interface IRoleDepartmentUserRemoteService { + + @RemoteGetMethod("listpage-user/{departmentId}/{roleId}") + SuccessResultList> listPageUserByDepartmentIdAndRoleId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("departmentId") String departmentId, @RemotePathParams("roleId") String roleId, @RemoteQueryParams("page") int page, @RemoteQueryParams("page") int rows, @RemoteQueryParamsMap Map params); + +} diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleDepartmentUserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleDepartmentUserServiceImpl.java index b43093e4..3cea9640 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleDepartmentUserServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleDepartmentUserServiceImpl.java @@ -3,10 +3,15 @@ package ink.wgink.login.oauth2.client.service.role.impl; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.interfaces.department.IDepartmentBaseService; import ink.wgink.interfaces.department.IDepartmentUserBaseService; +import ink.wgink.login.oauth2.client.remote.role.IRoleDepartmentUserRemoteService; import ink.wgink.login.oauth2.client.service.role.IRoleDepartmentUserService; import ink.wgink.login.oauth2.client.service.role.IRoleUserService; +import ink.wgink.module.oauth2.manager.OAuth2ClientTokenManager; +import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.pos.DepartmentPO; +import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.properties.ApiPathProperties; import ink.wgink.util.ArrayListUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -25,14 +30,16 @@ import java.util.List; @Service public class RoleDepartmentUserServiceImpl extends DefaultBaseService implements IRoleDepartmentUserService { - @Autowired - private IRoleUserService userService; @Autowired private IRoleUserService roleUserService; @Autowired private IDepartmentBaseService departmentBaseService; @Autowired private IDepartmentUserBaseService departmentUserBaseService; + @Autowired + private IRoleDepartmentUserRemoteService roleDepartmentUserRemoteService; + @Autowired + private ApiPathProperties apiPathProperties; @Override public List listUserByRoleIdAndAreaCode(String roleId, String areaCode) { @@ -68,6 +75,11 @@ public class RoleDepartmentUserServiceImpl extends DefaultBaseService implements return departmentUserDTOs; } + @Override + public SuccessResultList> listPageUserByDepartmentIdAndRoleId(String departmentId, String roleId, ListPage page) { + return roleDepartmentUserRemoteService.listPageUserByDepartmentIdAndRoleId(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), departmentId, roleId, page.getPage(), page.getRows(), page.getParams()); + } + /** * 清除没有角色的用户 * diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/user/impl/UserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/user/impl/UserServiceImpl.java index 00bc44ac..69f0f473 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/user/impl/UserServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/user/impl/UserServiceImpl.java @@ -86,12 +86,26 @@ public class UserServiceImpl extends DefaultBaseService implements IUserService return userRemoteService.listPage(apiPathProperties.getUserCenter(), page.getPage(), page.getRows(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), page.getParams()); } + @Override + public SuccessResultList> listPageByExcludeIdsAndIncludeIds(List excludeUserIds, List includeUserIds, ListPage page) { + page.getParams().put("excludeUserIds", excludeUserIds); + page.getParams().put("userIds", includeUserIds); + return userRemoteService.listPage(apiPathProperties.getUserCenter(), page.getPage(), page.getRows(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), page.getParams()); + } + @Override public List listByExcludeIds(List excludeUserIds, Map params) { params.put("excludeUserIds", excludeUserIds); return userRemoteService.list(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), params); } + @Override + public List listByExcludeIds(List excludeUserIds, List includeUserIds, Map params) { + params.put("excludeUserIds", excludeUserIds); + params.put("userIds", excludeUserIds); + return userRemoteService.list(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), params); + } + @Override public int countDateRange(String startDate, String endDate) { SuccessResultData successResultData = userRemoteService.countDateRange(apiPathProperties.getUserCenter(), startDate, endDate, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken()); diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentUserRouteController.java b/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentUserRouteController.java index c3979e6b..eb7cc937 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentUserRouteController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentUserRouteController.java @@ -1,7 +1,9 @@ package ink.wgink.service.department.controller.route; import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.interfaces.role.IRoleBaseService; import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -22,6 +24,9 @@ import org.springframework.web.servlet.ModelAndView; @RequestMapping(ISystemConstant.ROUTE_PREFIX + "/department/user") public class DepartmentUserRouteController { + @Autowired(required = false) + private IRoleBaseService roleBaseService; + @GetMapping("list") public ModelAndView list() { return new ModelAndView("department/user/list"); @@ -29,7 +34,9 @@ public class DepartmentUserRouteController { @GetMapping("select-user") public ModelAndView selectUser() { - return new ModelAndView("department/user/select-user"); + ModelAndView modelAndView = new ModelAndView("department/user/select-user"); + modelAndView.addObject("hasRoleService", (roleBaseService != null)); + return modelAndView; } } diff --git a/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserService.java b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserService.java index d10fb04d..68fc1c1f 100644 --- a/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserService.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/IDepartmentUserService.java @@ -3,7 +3,9 @@ package ink.wgink.service.department.service; import ink.wgink.interfaces.department.IDepartmentUserBaseService; import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.pos.DepartmentPO; +import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.service.department.pojo.vos.DepartmentUserSortVO; import java.util.List; @@ -71,6 +73,14 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService { */ void updateSort(String departmentId, DepartmentUserSortVO departmentUserSortVO); + /** + * + * @param departmentId + * @param userIds + * @return + */ + List listByDepartmentIdAndUserIds(String departmentId, List userIds); + /** * 部门列表 * @@ -95,4 +105,30 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService { */ List listWithUser(Map params); + /** + * 机构用户分页列表 + * + * @param successResultList + * @return + */ + SuccessResultList> listPageExcludeDepartmentUser(SuccessResultList> successResultList); + + /** + * 机构用户分页列表 + * + * @param userDTOs + * @return + */ + List listExcludeDepartmentUser(List userDTOs); + + /** + * 机构用户分页列表 + * + * @param successResultList + * @param hasDepartmentUsers + * @return + */ + SuccessResultList> listPageDepartmentUser(SuccessResultList> successResultList, List hasDepartmentUsers); + + } 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 ed29689d..dffe65e8 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 @@ -168,6 +168,14 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe return list(params); } + @Override + public List listByDepartmentIdAndUserIds(String departmentId, List userIds) { + Map params = getHashMap(2); + params.put("departmentId", departmentId); + params.put("userIds", userIds); + return list(params); + } + @Override public List list(List departmentIds) { Map params = getHashMap(2); @@ -304,26 +312,16 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe return listDepartmentUser(userDTOs, hasDepartmentUsers); } - /** - * 机构用户分页列表 - * - * @param successResultList - * @return - */ - private SuccessResultList> listPageExcludeDepartmentUser(SuccessResultList> successResultList) { + @Override + public SuccessResultList> listPageExcludeDepartmentUser(SuccessResultList> successResultList) { // 查询用户排序 List userDTOs = successResultList.getRows(); List departmentUserDTOs = listExcludeDepartmentUser(userDTOs); return new SuccessResultList<>(departmentUserDTOs, successResultList.getPage(), successResultList.getTotal()); } - /** - * 机构用户分页列表 - * - * @param userDTOs - * @return - */ - private List listExcludeDepartmentUser(List userDTOs) { + @Override + public List listExcludeDepartmentUser(List userDTOs) { // 查询用户排序 List departmentUserDTOs = new ArrayList<>(); for (UserDTO userDTO : userDTOs) { @@ -335,14 +333,8 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe return departmentUserDTOs; } - /** - * 机构用户分页列表 - * - * @param successResultList - * @param hasDepartmentUsers - * @return - */ - private SuccessResultList> listPageDepartmentUser(SuccessResultList> successResultList, List hasDepartmentUsers) { + @Override + public SuccessResultList> listPageDepartmentUser(SuccessResultList> successResultList, List hasDepartmentUsers) { // 查询用户排序 List userDTOs = successResultList.getRows(); List departmentUserDTOs = listDepartmentUser(userDTOs, hasDepartmentUsers); diff --git a/service-department/src/main/resources/templates/department/user/select-user.html b/service-department/src/main/resources/templates/department/user/select-user.html index fb45baa7..e1e1d0ce 100644 --- a/service-department/src/main/resources/templates/department/user/select-user.html +++ b/service-department/src/main/resources/templates/department/user/select-user.html @@ -10,9 +10,21 @@ - + @@ -25,15 +37,42 @@
-
+
+
角色树
-
    +
      -
      +
      +
      组织机构树
      +
      +
        +
        +
        +
        +
        组织机构树
        +
        +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          +
          + -