From b06317db275e68b4e63f66b5c6de72e90cc57d5f Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Thu, 10 Feb 2022 16:24:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=83=A8=E9=97=A8=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=80=89=E6=8B=A9=E7=9A=84=E4=B8=9A=E5=8A=A1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IDepartmentUserBaseService.java | 18 +++ .../role/IRoleDepartmentUserBaseService.java | 5 +- .../interfaces/role/IRoleUserBaseService.java | 19 ++- .../IDepartmentUserRemoteService.java | 8 + .../IRoleDepartmentUserRemoteService.java | 10 +- .../remote/role/IRoleUserRemoteService.java | 6 + .../impl/DepartmentUserServiceImpl.java | 10 ++ .../impl/RoleDepartmentUserServiceImpl.java | 23 ++- .../role/impl/RoleUserServiceImpl.java | 13 ++ .../DepartmentUserResourceController.java | 21 +++ .../department/dao/IDepartmentUserDao.java | 9 ++ .../service/IDepartmentUserService.java | 1 - .../impl/DepartmentUserServiceImpl.java | 16 ++ .../mybatis/mapper/department-user-mapper.xml | 45 +++++- .../department/user/select-user.html | 25 ++- .../api/RoleDepartmentUserController.java | 19 ++- .../RoleDepartmentUserResourceController.java | 25 ++- .../resources/RoleUserResourceController.java | 17 ++ .../wgink/service/role/dao/IRoleUserDao.java | 10 ++ .../role/service/IRoleUserService.java | 9 ++ .../impl/RoleDepartmentUserServiceImpl.java | 108 ++++++++----- .../service/impl/RoleUserServiceImpl.java | 26 +++ .../mybatis/mapper/role-user-mapper.xml | 148 +++++++++++++++++- .../resources/mybatis/mapper/user-mapper.xml | 12 ++ .../main/resources/templates/user/list.html | 13 +- .../main/resources/templates/user/save.html | 7 + .../main/resources/templates/user/update.html | 7 + 27 files changed, 529 insertions(+), 101 deletions(-) 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 5b70319f..717f7da0 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 @@ -3,6 +3,7 @@ package ink.wgink.interfaces.department; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.SuccessResultList; import java.util.List; @@ -126,4 +127,21 @@ public interface IDepartmentUserBaseService { * @return */ List listDepartmentByUserId(String userId); + + /** + * 用户分页列表 + * + * @param departmentId + * @return + */ + List listUserByDepartmentId(String departmentId); + + /** + * 用户分页列表 + * + * @param departmentId 部门ID + * @param page + * @return + */ + SuccessResultList> listPageUserByDepartmentId(String departmentId, ListPage page); } 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 22100ab7..a7adc8fd 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 @@ -30,9 +30,10 @@ public interface IRoleDepartmentUserBaseService { * * @param departmentId 部门ID * @param roleId 角色ID + * @param keywords 关键字 * @return */ - List listUserByDepartmentIdAndRoleId(String departmentId, String roleId); + List listDepartmentUserByDepartmentIdAndRoleIdAndKeywords(String departmentId, String roleId, String keywords); /** * 用户分页列表 @@ -42,5 +43,5 @@ public interface IRoleDepartmentUserBaseService { * @param page 分页参数 * @return */ - SuccessResultList> listPageUserByDepartmentIdAndRoleId(String departmentId, String roleId, ListPage page); + SuccessResultList> listPageDepartmentUserByDepartmentIdAndRoleId(String departmentId, String roleId, ListPage page); } 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 a6b5e34b..e75705cd 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 @@ -8,6 +8,7 @@ import ink.wgink.pojo.pos.RolePO; import ink.wgink.pojo.result.SuccessResultList; import java.util.List; +import java.util.Map; /** * When you feel like quitting. Think about why you started @@ -74,7 +75,7 @@ public interface IRoleUserBaseService { /** * 用户列表 * - * @param roleId + * @param roleId 角色ID * @return */ List listUserByRoleId(String roleId); @@ -87,4 +88,20 @@ public interface IRoleUserBaseService { * @return */ SuccessResultList> listPageUserByRoleId(String roleId, ListPage page); + + /** + * 无部门无角色用户 + * + * @param params + * @return + */ + List listUserNoDepartmentAndNoRole(Map params); + + /** + * 没有角色并且没有组织机构的用户分页列表 + * + * @param page + * @return + */ + SuccessResultList> listPageUserNoDepartmentAndNoRole(ListPage page); } 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 05db47ee..2c156a57 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 @@ -6,6 +6,7 @@ import ink.wgink.annotation.rpc.rest.method.RemotePostMethod; import ink.wgink.annotation.rpc.rest.params.*; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.vos.IdsVO; @@ -54,4 +55,11 @@ public interface IDepartmentUserRemoteService { @RemoteGetMethod("/list-department/user-id/{userId}") List listDepartmentByUserId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("userId") String userId); + + @RemoteGetMethod("/list-user/department-id/{departmentId}") + 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); + } 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 index 5679faff..e3537324 100644 --- 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 @@ -22,7 +22,13 @@ import java.util.Map; @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); + @RemoteGetMethod("listpage-department-user/department-id/{departmentId}/role-id/{roleId}") + SuccessResultList> listPageDepartmentUserByDepartmentIdAndRoleId(@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); + @RemoteGetMethod("list-department-user/department-id/{departmentId}/role-id/{roleId}") + List listDepartmentUserByDepartmentIdAndRoleIdAndKeywords(@RemoteServerParams String userCenter, + @RemotePathParams("departmentId") String departmentId, + @RemotePathParams("roleId") String roleId, + @RemoteQueryParams("access_token") String accessToken, + @RemoteQueryParams("keywords") String keywords); } 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 8c50b1f0..382def98 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 @@ -43,4 +43,10 @@ public interface IRoleUserRemoteService { @RemoteGetMethod("/listpage-user/role-id/{roleId}") SuccessResultList> listPageUserByRoleId(@RemoteServerParams String userCenter, @RemotePathParams("roleId") String roleId, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParams("page") int page, @RemoteQueryParams("rows") int rows, @RemoteQueryParamsMap Map params); + + @RemoteGetMethod("/list-user/no-department/no-role") + List listUserNoDepartmentAndNoRole(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParamsMap Map params); + + @RemoteGetMethod("/listpage-user/no-department/no-role") + SuccessResultList> listPageUserNoDepartmentAndNoRole(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParams("page") int page, @RemoteQueryParams("rows") int rows, @RemoteQueryParamsMap Map params); } 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 6449048e..51c6d3c3 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 @@ -135,4 +135,14 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe return departmentUserRemoteService.listDepartmentByUserId(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), userId); } + @Override + public List listUserByDepartmentId(String departmentId) { + return departmentUserRemoteService.listUserByDepartmentId(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), departmentId); + } + + @Override + public SuccessResultList> listPageUserByDepartmentId(String departmentId, ListPage page) { + return departmentUserRemoteService.listPageUserByDepartmentId(apiPathProperties.getUserCenter(), departmentId, 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/RoleDepartmentUserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleDepartmentUserServiceImpl.java index 3cea9640..b8ff8b39 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 @@ -1,6 +1,8 @@ package ink.wgink.login.oauth2.client.service.role.impl; import ink.wgink.common.base.DefaultBaseService; +import ink.wgink.exceptions.SearchException; +import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.interfaces.department.IDepartmentBaseService; import ink.wgink.interfaces.department.IDepartmentUserBaseService; import ink.wgink.login.oauth2.client.remote.role.IRoleDepartmentUserRemoteService; @@ -17,6 +19,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -62,22 +66,17 @@ public class RoleDepartmentUserServiceImpl extends DefaultBaseService implements } @Override - public List listUserByDepartmentIdAndRoleId(String departmentId, String roleId) { - List departmentUserDTOs = departmentUserBaseService.list(departmentId); - if (departmentUserDTOs.isEmpty()) { - return new ArrayList<>(); + public List listDepartmentUserByDepartmentIdAndRoleIdAndKeywords(String departmentId, String roleId, String keywords) { + try { + return roleDepartmentUserRemoteService.listDepartmentUserByDepartmentIdAndRoleIdAndKeywords(apiPathProperties.getUserCenter(), departmentId, roleId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), StringUtils.isBlank(keywords) ? "" : URLEncoder.encode(keywords, ISystemConstant.CHARSET_UTF8)); + } catch (UnsupportedEncodingException e) { + throw new SearchException(e); } - List roleUserIds = roleUserService.listUserId(roleId); - if (roleUserIds.isEmpty()) { - return new ArrayList<>(); - } - clearNoRoleUser(departmentUserDTOs, roleUserIds); - 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()); + public SuccessResultList> listPageDepartmentUserByDepartmentIdAndRoleId(String departmentId, String roleId, ListPage page) { + return roleDepartmentUserRemoteService.listPageDepartmentUserByDepartmentIdAndRoleId(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/role/impl/RoleUserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/role/impl/RoleUserServiceImpl.java index 054e1794..b6fbef73 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 @@ -17,6 +17,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @ClassName: RoleUserServiceImpl @@ -89,4 +90,16 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser public SuccessResultList> listPageUserByRoleId(String roleId, ListPage page) { return roleUserRemoteService.listPageUserByRoleId(apiPathProperties.getUserCenter(), roleId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), page.getPage(), page.getRows(), page.getParams()); } + + @Override + public List listUserNoDepartmentAndNoRole(Map params) { + params = params == null ? getHashMap(2) : params; + return roleUserRemoteService.listUserNoDepartmentAndNoRole(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), params); + } + + @Override + public SuccessResultList> listPageUserNoDepartmentAndNoRole(ListPage page) { + return roleUserRemoteService.listPageUserNoDepartmentAndNoRole(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), page.getPage(), page.getRows(), page.getParams()); + } + } 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 1bce9c18..6ebf2509 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 @@ -5,6 +5,7 @@ import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.vos.IdsVO; @@ -135,4 +136,24 @@ public class DepartmentUserResourceController extends DefaultBaseController { return departmentUserService.listDepartmentByUserId(userId); } + @ApiOperation(value = "用户列表", notes = "通过部门ID获取用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "组织部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/department-id/{departmentId}") + public List listUserByRoleId(@PathVariable("departmentId") String departmentId) { + return departmentUserService.listUserByDepartmentId(departmentId); + } + + @ApiOperation(value = "用户分页列表", notes = "通过部门ID获取用户分页列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "组织部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/department-id/{departmentId}") + public SuccessResultList> listPageUserByDepartmentId(@PathVariable("departmentId") String departmentId, ListPage page) { + return departmentUserService.listPageUserByDepartmentId(departmentId, page); + } + } 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 eaeb6edc..9630a543 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 @@ -6,6 +6,7 @@ import ink.wgink.exceptions.SearchException; import ink.wgink.exceptions.UpdateException; import ink.wgink.interfaces.init.IInitBaseTable; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; import org.springframework.stereotype.Repository; import java.util.List; @@ -83,4 +84,12 @@ public interface IDepartmentUserDao extends IInitBaseTable { */ List listDepartmentId(Map params) throws SearchException; + /** + * 用户列表 + * + * @param params + * @return + * @throws SearchException + */ + List listUser(Map params) throws SearchException; } 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 5bff555d..53f07801 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 @@ -130,5 +130,4 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService { */ 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 6d1ad7b8..b3e8009d 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 @@ -1,5 +1,7 @@ package ink.wgink.service.department.service.impl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import ink.wgink.common.base.DefaultBaseService; import ink.wgink.exceptions.SearchException; import ink.wgink.interfaces.consts.ISystemConstant; @@ -414,4 +416,18 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe return departmentService.listByIds(departmentIds); } + @Override + public List listUserByDepartmentId(String departmentId) { + Map params = getHashMap(2); + params.put("departmentId", departmentId); + return departmentUserDao.listUser(params); + } + + @Override + public SuccessResultList> listPageUserByDepartmentId(String departmentId, ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List userDTOs = listUserByDepartmentId(departmentId); + PageInfo pageInfo = new PageInfo<>(userDTOs); + return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); + } } 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 32e87dfd..69045f68 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 @@ -4,7 +4,7 @@ - + @@ -119,7 +119,7 @@ - SELECT user_id FROM @@ -143,6 +143,8 @@ + GROUP BY + user_id, user_sort ORDER BY user_sort @@ -160,7 +162,7 @@ - SELECT department_id FROM @@ -178,4 +180,41 @@ + + + \ No newline at end of file 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 0c823e06..23ebc8bc 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 @@ -158,13 +158,9 @@ }, callback: { onClick: function(event, treeId, treeNode) { - if(treeNode.id == 0) { - selectRoleId = undefined; - } else { - selectRoleId = treeNode.id; - } + selectRoleId = treeNode.id; $('#searchUser').val(''); - initUsers(selectedParentId); + initUsers(selectedParentId, selectRoleId); return false; } }, @@ -214,7 +210,7 @@ } }; var zTree = $.fn.zTree.init($('#departmentTree'), setting); - zTree.addNodes(null, {id: '1', pId: '-1', name: '自由用户', url: 'javascript:void(0);', isParent: 'false'}); + zTree.addNodes(null, {id: '1', pId: '-1', name: '无组织部门', url: 'javascript:void(0);', isParent: 'false'}); zTree.addNodes(null, {id: '0', pId: '-1', name: '组织部门', url: 'javascript:void(0);', isParent: 'true'}); common.refreshTree('departmentTree'); } @@ -258,12 +254,13 @@ done: function(page, next) { var loadLayerIndex; var url = top.restAjax.path('api/department/user/listpage/{department}', [selectedParentId]); - if(selectRoleId) { - url = top.restAjax.path('api/role/department/user/listpage-user/{department}/{roleId}', [selectedParentId, selectRoleId]); + if(typeof(selectRoleId) != 'undefined' && selectRoleId != null) { + url = top.restAjax.path('api/role/department/user/listpage-user/department-id/{department}/role-id/{roleId}', [selectedParentId, selectRoleId]); } top.restAjax.get(url, { page: page, - rows: 20 + rows: 20, + excludeUserType: 3 }, null, function(code, data) { next(addUserDom(data.rows), page < (parseInt(data.total / 20) + 1)); }, function(code, data) { @@ -282,8 +279,8 @@ } var loadLayerIndex; var url = top.restAjax.path('api/department/user/list/{department}', [selectedParentId]); - if(selectRoleId) { - url = top.restAjax.path('api/role/department/user/list-user/{department}/{roleId}', [selectedParentId, selectRoleId]); + if(typeof(selectRoleId) != 'undefined' && selectRoleId != null) { + url = top.restAjax.path('api/role/department/user/list-user/department-id/{department}/role-id/{roleId}', [selectedParentId, selectRoleId]); } top.restAjax.get(url, { keywords: searchUser @@ -298,8 +295,8 @@ }); } // 初始化人员列表 - function initUsers(parentId) { - if(selectedParentId == parentId) { + function initUsers(parentId, roleParentId) { + if(selectedParentId == parentId && (typeof(selectRoleId) == 'undefined' || selectRoleId == null)) { return; } $('#userWrapper').empty(); diff --git a/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleDepartmentUserController.java b/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleDepartmentUserController.java index 7214d96b..fda2b031 100644 --- a/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleDepartmentUserController.java +++ b/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleDepartmentUserController.java @@ -9,10 +9,7 @@ import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.service.role.service.IRoleDepartmentUserService; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @@ -38,7 +35,7 @@ public class RoleDepartmentUserController extends DefaultBaseController { @ApiImplicitParam(name = "areaCode", value = "地区编码", paramType = "path", dataType = "String", required = true), }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) - @GetMapping("list-user/{roleId}/{areaCode}") + @GetMapping("list-user/role-id/{roleId}/area-code/{areaCode}") public List listUserByRoleIdAndAreaCode(@PathVariable("roleId") String roleId, @PathVariable("areaCode") String areaCode) { return roleDepartmentUserService.listUserByRoleIdAndAreaCode(roleId, areaCode); @@ -48,12 +45,14 @@ public class RoleDepartmentUserController extends DefaultBaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path", dataType = "String", required = true), @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path", dataType = "String", required = true), + @ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String", required = true), }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) - @GetMapping("list-user/{departmentId}/{roleId}") + @GetMapping("list-user/department-id/{departmentId}/role-id/{roleId}") public List listUserByDepartmentIdAndRoleId(@PathVariable("departmentId") String departmentId, - @PathVariable("roleId") String roleId) { - return roleDepartmentUserService.listUserByDepartmentIdAndRoleId(departmentId, roleId); + @PathVariable("roleId") String roleId, + @RequestParam(name = "keywords", required = false) String keywords) { + return roleDepartmentUserService.listDepartmentUserByDepartmentIdAndRoleIdAndKeywords(departmentId, roleId, keywords); } @ApiOperation(value = "用户分页列表", notes = "通过部门ID、角色ID用户列表接口") @@ -65,11 +64,11 @@ public class RoleDepartmentUserController extends DefaultBaseController { @ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query") }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) - @GetMapping("listpage-user/{departmentId}/{roleId}") + @GetMapping("listpage-user/department-id/{departmentId}/role-id/{roleId}") public SuccessResultList> listPageUserByDepartmentIdAndRoleId(@PathVariable("departmentId") String departmentId, @PathVariable("roleId") String roleId, ListPage page) { Map params = requestParams(); page.setParams(params); - return roleDepartmentUserService.listPageUserByDepartmentIdAndRoleId(departmentId, roleId, page); + return roleDepartmentUserService.listPageDepartmentUserByDepartmentIdAndRoleId(departmentId, roleId, page); } } diff --git a/service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleDepartmentUserResourceController.java b/service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleDepartmentUserResourceController.java index a16d7462..fa2f6785 100644 --- a/service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleDepartmentUserResourceController.java +++ b/service-role/src/main/java/ink/wgink/service/role/controller/resources/RoleDepartmentUserResourceController.java @@ -9,10 +9,7 @@ import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.service.role.service.IRoleDepartmentUserService; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @@ -41,11 +38,25 @@ public class RoleDepartmentUserResourceController extends DefaultBaseController @ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query") }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) - @GetMapping("listpage-user/{departmentId}/{roleId}") - public SuccessResultList> listPageUserByDepartmentIdAndRoleId(@PathVariable("departmentId") String departmentId, @PathVariable("roleId") String roleId, ListPage page) { + @GetMapping("listpage-department-user/department-id/{departmentId}/role-id/{roleId}") + public SuccessResultList> listPageDepartmentUserByDepartmentIdAndRoleId(@PathVariable("departmentId") String departmentId, @PathVariable("roleId") String roleId, ListPage page) { Map params = requestParams(); page.setParams(params); - return roleDepartmentUserService.listPageUserByDepartmentIdAndRoleId(departmentId, roleId, page); + return roleDepartmentUserService.listPageDepartmentUserByDepartmentIdAndRoleId(departmentId, roleId, page); + } + + @ApiOperation(value = "用户列表", notes = "通过部门ID、角色ID用户接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path"), + @ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-department-user/department-id/{departmentId}/role-id/{roleId}") + public List listDepartmentUserByDepartmentIdAndRoleId(@PathVariable("departmentId") String departmentId, + @PathVariable("roleId") String roleId, + @RequestParam(name = "keywords", required = false) String keywords) { + return roleDepartmentUserService.listDepartmentUserByDepartmentIdAndRoleIdAndKeywords(departmentId, roleId, keywords); } } 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 e7d1ebea..b1184951 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 @@ -114,4 +114,21 @@ public class RoleUserResourceController extends DefaultBaseController { return roleUserService.listPageUserByRoleId(roleId, page); } + @ApiOperation(value = "无部门无角色用户列表", notes = "无部门无角色用户列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/no-department/no-role") + public List listUserNoDepartmentAndNoRole() { + Map params = requestParams(); + return roleUserService.listUserNoDepartmentAndNoRole(params); + } + + @ApiOperation(value = "无部门无角色用户分页列表", notes = "无部门无角色用户分页列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/no-department/no-role") + public SuccessResultList> listPageUserNoDepartmentAndNoRole(ListPage page) { + Map params = requestParams(); + page.setParams(params); + return roleUserService.listPageUserNoDepartmentAndNoRole(page); + } + } diff --git a/service-role/src/main/java/ink/wgink/service/role/dao/IRoleUserDao.java b/service-role/src/main/java/ink/wgink/service/role/dao/IRoleUserDao.java index a3efd470..e795f385 100644 --- a/service-role/src/main/java/ink/wgink/service/role/dao/IRoleUserDao.java +++ b/service-role/src/main/java/ink/wgink/service/role/dao/IRoleUserDao.java @@ -4,6 +4,7 @@ import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SearchException; import ink.wgink.interfaces.init.IInitBaseTable; +import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; import org.springframework.stereotype.Repository; @@ -74,4 +75,13 @@ public interface IRoleUserDao extends IInitBaseTable { * @throws SearchException */ List listUser(Map params) throws SearchException; + + /** + * 部门用户列表 + * + * @param params + * @return + * @throws SearchException + */ + List listDepartmentUser(Map params) throws SearchException; } diff --git a/service-role/src/main/java/ink/wgink/service/role/service/IRoleUserService.java b/service-role/src/main/java/ink/wgink/service/role/service/IRoleUserService.java index 3e8ccce8..68103b0c 100644 --- a/service-role/src/main/java/ink/wgink/service/role/service/IRoleUserService.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/IRoleUserService.java @@ -1,8 +1,10 @@ package ink.wgink.service.role.service; import ink.wgink.interfaces.role.IRoleUserBaseService; +import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import java.util.List; +import java.util.Map; /** * When you feel like quitting. Think about why you started @@ -33,4 +35,11 @@ public interface IRoleUserService extends IRoleUserBaseService { */ void delete(String roleId, List userIds); + /** + * 部门用户列表 + * + * @param params + * @return + */ + List listDepartmentUser(Map params); } diff --git a/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleDepartmentUserServiceImpl.java b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleDepartmentUserServiceImpl.java index 02024aec..8aed30ad 100644 --- a/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleDepartmentUserServiceImpl.java +++ b/service-role/src/main/java/ink/wgink/service/role/service/impl/RoleDepartmentUserServiceImpl.java @@ -1,10 +1,11 @@ package ink.wgink.service.role.service.impl; +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.ListPage; 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.service.IDepartmentService; @@ -19,6 +20,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @ClassName: RoleDepartmentUserServiceImpl @@ -60,43 +62,52 @@ public class RoleDepartmentUserServiceImpl extends DefaultBaseService implements } @Override - public List listUserByDepartmentIdAndRoleId(String departmentId, String roleId) { + public List listDepartmentUserByDepartmentIdAndRoleIdAndKeywords(String departmentId, String roleId, String keywords) { if (StringUtils.equals(departmentId, ISystemConstant.TREE_BASE_ROOT_ID_VALUE)) { - return listUserByExcludeDepartment(roleId); + return listUserByExcludeDepartmentAndKeywords(roleId, keywords); } - return listUser(departmentId, roleId); + return listUserByDepartmentIdAndRoleIdAndKeywords(departmentId, roleId, keywords); } @Override - public SuccessResultList> listPageUserByDepartmentIdAndRoleId(String departmentId, String roleId, ListPage page) { + public SuccessResultList> listPageDepartmentUserByDepartmentIdAndRoleId(String departmentId, String roleId, ListPage page) { if (StringUtils.equals(departmentId, ISystemConstant.TREE_BASE_ROOT_ID_VALUE)) { return listPageUserByExcludeDepartment(roleId, page); } - return listPageUser(departmentId, roleId, page); + return listPageDepartmentUser(departmentId, roleId, page); } - private List listUser(String departmentId, String roleId) { - List departmentUserDTOs = departmentUserService.list(departmentId); - if (departmentUserDTOs.isEmpty()) { - return new ArrayList<>(); + private List listUserByDepartmentIdAndRoleIdAndKeywords(String departmentId, String roleId, String keywords) { + Map params = getHashMap(4); + params.put("departmentId", departmentId); + if (!StringUtils.equals(roleId, ISystemConstant.TREE_BASE_ROOT_ID_VALUE)) { + // 有部门有角色用户列表 + params.put("roleId", roleId); + return roleUserService.listDepartmentUser(params); } - List roleUserIds = roleUserService.listUserId(roleId); - if (roleUserIds.isEmpty()) { - return new ArrayList<>(); - } - clearNoRoleUser(departmentUserDTOs, roleUserIds); - return departmentUserDTOs; + // 有部门没有角色的用户列表 + params.put("noRole", true); + return roleUserService.listDepartmentUser(params); } - private List listUserByExcludeDepartment(String roleId) { - List roleUserIds = roleUserService.listUserId(roleId); - if (roleUserIds.isEmpty()) { - return new ArrayList<>(); + /** + * 不包含部门的部门用户 + * + * @param roleId + * @return + */ + private List listUserByExcludeDepartmentAndKeywords(String roleId, String keywords) { + Map params = getHashMap(6); + params.put("keywords", keywords); + params.put("noDepartment", true); + params.put("excludeUserType", 3); + if (StringUtils.equals(roleId, ISystemConstant.TREE_BASE_ROOT_ID_VALUE)) { + // 无部门,无角色 + params.put("noRole", true); + } else { + params.put("roleId", roleId); } - List hasDepartmentUsers = departmentUserService.list(roleUserIds); - List departmentUserIds = ArrayListUtil.listBeanStringIdValue(hasDepartmentUsers, "userId", DepartmentUserDTO.class); - List userDTOs = userService.listByExcludeIds(departmentUserIds, roleUserIds, null); - return departmentUserService.listExcludeDepartmentUser(userDTOs); + return roleUserService.listDepartmentUser(params); } /** @@ -107,15 +118,15 @@ public class RoleDepartmentUserServiceImpl extends DefaultBaseService implements * @return */ private SuccessResultList> listPageUserByExcludeDepartment(String roleId, ListPage page) { - List roleUserIds = roleUserService.listUserId(roleId); - if (roleUserIds.isEmpty()) { - return new SuccessResultList<>(new ArrayList<>(), 1, 0L); + if (StringUtils.equals(roleId, ISystemConstant.TREE_BASE_ROOT_ID_VALUE)) { + // 有部门,没有角色 + page.getParams().put("noRole", true); + } else { + // 有部门,有角色 + page.getParams().put("roleId", roleId); } - // 获取所有部门的用户列表 - List hasDepartmentUsers = departmentUserService.list(getHashMap(0)); - List hasDepartmentUserIds = ArrayListUtil.listBeanStringIdValue(hasDepartmentUsers, "userId", DepartmentUserDTO.class); - SuccessResultList> successResultList = userService.listPageByExcludeIdsAndIncludeIds(hasDepartmentUserIds, roleUserIds, page); - return departmentUserService.listPageExcludeDepartmentUser(successResultList); + page.getParams().put("noDepartment", true); + return listPageDepartmentUser(page); } /** @@ -125,18 +136,29 @@ public class RoleDepartmentUserServiceImpl extends DefaultBaseService implements * @param page * @return */ - private SuccessResultList> listPageUser(String departmentId, String roleId, ListPage page) { - List roleUserIds = roleUserService.listUserId(roleId); - if (roleUserIds.isEmpty()) { - return new SuccessResultList<>(new ArrayList<>(), 1, 0L); + private SuccessResultList> listPageDepartmentUser(String departmentId, String roleId, ListPage page) { + if (StringUtils.equals(roleId, ISystemConstant.TREE_BASE_ROOT_ID_VALUE)) { + // 有部门,没有角色 + page.getParams().put("noRole", true); + } else { + // 有部门,有角色 + page.getParams().put("roleId", roleId); } - List hasDepartmentUsers = departmentUserService.listByDepartmentIdAndUserIds(departmentId, roleUserIds); - List userIds = new ArrayList<>(); - for (DepartmentUserDTO hasDepartmentUserId : hasDepartmentUsers) { - userIds.add(hasDepartmentUserId.getUserId()); - } - SuccessResultList> successResultList = userService.listPageByIds(userIds, page); - return departmentUserService.listPageDepartmentUser(successResultList, hasDepartmentUsers); + page.getParams().put("departmentId", departmentId); + return listPageDepartmentUser(page); + } + + /** + * 部门用户分页列表 + * + * @param page + * @return + */ + private SuccessResultList> listPageDepartmentUser(ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List departmentUserDTOs = roleUserService.listDepartmentUser(page.getParams()); + PageInfo pageInfo = new PageInfo<>(departmentUserDTOs); + return new SuccessResultList<>(departmentUserDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); } /** 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 b2e6f86e..f433831c 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 @@ -8,11 +8,13 @@ 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.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.role.RoleSimpleDTO; import ink.wgink.pojo.dtos.role.RoleUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.pos.RolePO; import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.service.department.service.IDepartmentUserService; import ink.wgink.service.role.dao.IRoleUserDao; import ink.wgink.service.role.service.IRoleService; import ink.wgink.service.role.service.IRoleUserService; @@ -44,6 +46,8 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser private IRoleService roleService; @Autowired private IUserBaseService userBaseService; + @Autowired + private IDepartmentUserService departmentUserService; @Autowired(required = false) private IRoleUserSaveAfterHandler roleUserSaveAfterHandler; @Autowired(required = false) @@ -78,6 +82,12 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser } } + @Override + public List listDepartmentUser(Map params) { + params = params == null ? getHashMap(2) : params; + return roleUserDao.listDepartmentUser(params); + } + @Override public List listUserId(String roleId) { Map params = getHashMap(2); @@ -167,6 +177,22 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); } + @Override + public List listUserNoDepartmentAndNoRole(Map params) { + params = params == null ? getHashMap(2) : params; + params.put("noDepartment", true); + params.put("noRole", true); + return roleUserDao.listUser(params); + } + + @Override + public SuccessResultList> listPageUserNoDepartmentAndNoRole(ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List userDTOs = listUserNoDepartmentAndNoRole(page.getParams()); + PageInfo pageInfo = new PageInfo<>(userDTOs); + return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); + } + 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 7f7afe35..4391f7c5 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 @@ -97,7 +97,7 @@ - SELECT user_id FROM @@ -109,7 +109,7 @@ - SELECT user_id, user_username, @@ -121,14 +121,152 @@ FROM sys_user t1 WHERE - user_id IN ( + t1.is_delete = 0 + AND + t1.user_username != 'admin' + + AND + t1.user_type = #{userType} + + + AND + t1.user_type != #{excludeUserType} + + + AND ( + user_username LIKE CONCAT('%', #{keywords}, '%') + OR + user_name LIKE CONCAT('%', #{keywords}, '%') + OR + user_phone LIKE CONCAT('%', #{keywords}, '%') + OR + user_email LIKE CONCAT('%', #{keywords}, '%') + ) + + + AND + t1.user_id IN ( SELECT - user_id + st1.user_id FROM - sys_role_user st1 + sys_department_user st1 + WHERE + department_id = #{departmentId} + ) + + + AND + t1.user_id IN ( + SELECT + st2.user_id + FROM + sys_role_user st2 WHERE role_id = #{roleId} ) + + + AND + t1.user_id NOT IN ( + SELECT + st3.user_id + FROM + sys_department_user st3 + ) + + + AND + t1.user_id NOT IN ( + SELECT + st4.user_id + FROM + sys_role_user st4 + ) + + + + + diff --git a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml index 7dd8e0ef..01de7bae 100644 --- a/service-user/src/main/resources/mybatis/mapper/user-mapper.xml +++ b/service-user/src/main/resources/mybatis/mapper/user-mapper.xml @@ -393,6 +393,14 @@ user_email LIKE CONCAT('%', #{keywords}, '%') ) + + AND + user_type = #{userType} + + + AND + user_type != #{excludeUserType} + ORDER BY @@ -447,6 +455,10 @@ AND user_type = #{userType} + + AND + user_type != #{excludeUserType} + AND user_state = #{userState} diff --git a/service-user/src/main/resources/templates/user/list.html b/service-user/src/main/resources/templates/user/list.html index d67ba527..f6f8fd64 100644 --- a/service-user/src/main/resources/templates/user/list.html +++ b/service-user/src/main/resources/templates/user/list.html @@ -29,6 +29,14 @@
+
+ +
+
+
类型说明
+
系统用户:具有后台登录权限且参与后台、APP业务的用户
+
普通用户:具有APP登录权限且参与APP业务的用户
+
公共用户:来自小程序、公众号等公共平台自动创建且参与此类业务的的用户
+
diff --git a/service-user/src/main/resources/templates/user/update.html b/service-user/src/main/resources/templates/user/update.html index a19ec762..cc72cd1f 100644 --- a/service-user/src/main/resources/templates/user/update.html +++ b/service-user/src/main/resources/templates/user/update.html @@ -46,8 +46,15 @@
+
+
+
类型说明
+
系统用户:具有后台登录权限且参与后台、APP业务的用户
+
普通用户:具有APP登录权限且参与APP业务的用户
+
公共用户:来自小程序、公众号等公共平台自动创建且参与此类业务的的用户
+