From 7e5bb166577fa258fcd9efdd4ff91b2af65f4b17 Mon Sep 17 00:00:00 2001 From: WenG <450292408@qq.com> Date: Wed, 4 May 2022 15:34:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E3=80=81=E8=A7=92=E8=89=B2=E3=80=81=E8=81=8C=E4=BD=8D=E3=80=81?= =?UTF-8?q?=E7=BB=84=E4=BA=BA=E5=91=98=E9=80=89=E6=8B=A9=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IDepartmentUserBaseService.java | 33 +++ .../properties/sms/SmsTencentProperties.java | 54 ++-- .../IDepartmentUserRemoteService.java | 11 + .../impl/DepartmentUserServiceImpl.java | 36 +++ .../api/DepartmentUserController.java | 68 +++++ .../DepartmentUserResourceController.java | 27 +- .../route/DepartmentUserRouteController.java | 5 + .../service/IDepartmentUserService.java | 20 ++ .../impl/DepartmentUserServiceImpl.java | 50 ++++ .../mybatis/mapper/department-user-mapper.xml | 56 ++++- .../templates/department/user/list.html | 93 ++----- .../department/user/save-exclude.html | 234 ++++++++++++++++++ .../controller/api/GroupUserController.java | 68 +++++ .../route/GroupUserRouteController.java | 5 + .../service/group/dao/IGroupUserDao.java | 10 + .../group/service/IGroupUserService.java | 28 +++ .../service/impl/GroupUserServiceImpl.java | 56 +++++ .../mybatis/mapper/group-user-mapper.xml | 92 ++++++- .../resources/templates/group/user/list.html | 93 ++----- .../templates/group/user/save-exclude.html | 234 ++++++++++++++++++ .../api/PositionUserController.java | 72 +++++- .../route/PositionUserRouteController.java | 5 + .../position/dao/IPositionUserDao.java | 10 + .../service/IPositionUserService.java | 27 ++ .../service/impl/PositionUserServiceImpl.java | 42 ++++ .../mybatis/mapper/position-user-mapper.xml | 91 +++++++ .../templates/position/user/list.html | 95 ++----- .../templates/position/user/save-exclude.html | 234 ++++++++++++++++++ .../controller/api/RoleUserController.java | 62 ++++- .../route/RoleUserRouteController.java | 5 + .../role/service/IRoleUserService.java | 19 ++ .../service/impl/RoleUserServiceImpl.java | 14 ++ .../mybatis/mapper/role-user-mapper.xml | 171 ++++++++++--- .../resources/templates/role/user/list.html | 102 ++------ .../templates/role/user/save-exclude.html | 234 ++++++++++++++++++ 35 files changed, 2108 insertions(+), 348 deletions(-) create mode 100644 service-department/src/main/resources/templates/department/user/save-exclude.html create mode 100644 service-group/src/main/resources/templates/group/user/save-exclude.html create mode 100644 service-position/src/main/resources/templates/position/user/save-exclude.html create mode 100644 service-role/src/main/resources/templates/role/user/save-exclude.html 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 213300ce..529e9583 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 @@ -177,4 +177,37 @@ public interface IDepartmentUserBaseService { */ List listSameDepartmentUserIdByUserIds(List userIds); + /** + * 不在组织中的用户列表 + * + * @param excludeDepartmentId 排除的部门 + * @return + */ + List listUserByExcludeDepartmentId(String excludeDepartmentId); + + /** + * 不在组织中的用户列表 + * + * @param excludeDepartmentIds 排除的部门ID列表 + * @return + */ + List listUserByExcludeDepartmentIds(List excludeDepartmentIds); + + /** + * 不在组织中的用户分页列表 + * + * @param excludeDepartmentId 排除的组织部门ID + * @param page + * @return + */ + SuccessResultList> listPageUserByExcludeDepartmentId(String excludeDepartmentId, ListPage page); + + /** + * 不在组织中的用户分页列表 + * + * @param excludeDepartmentIds 排除的组织部门ID列表 + * @param page + * @return + */ + SuccessResultList> listPageUserByExcludeDepartmentId(List excludeDepartmentIds, ListPage page); } diff --git a/basic-properties/src/main/java/ink/wgink/properties/sms/SmsTencentProperties.java b/basic-properties/src/main/java/ink/wgink/properties/sms/SmsTencentProperties.java index 7ed340bd..28ad58ec 100644 --- a/basic-properties/src/main/java/ink/wgink/properties/sms/SmsTencentProperties.java +++ b/basic-properties/src/main/java/ink/wgink/properties/sms/SmsTencentProperties.java @@ -12,33 +12,42 @@ package ink.wgink.properties.sms; **/ public class SmsTencentProperties { - private String appId; - private String appKey; - private String smsSign; + private String secretId; + private String secretKey; + private String sdkAppId; + private String signName; private String verificationCodeTemplateId; - public String getAppId() { - return appId == null ? "" : appId.trim(); + public String getSecretId() { + return secretId; } - public void setAppId(String appId) { - this.appId = appId; + public void setSecretId(String secretId) { + this.secretId = secretId; } - public String getAppKey() { - return appKey == null ? "" : appKey.trim(); + public String getSecretKey() { + return secretKey; } - public void setAppKey(String appKey) { - this.appKey = appKey; + public void setSecretKey(String secretKey) { + this.secretKey = secretKey; } - public String getSmsSign() { - return smsSign == null ? "" : smsSign.trim(); + public String getSdkAppId() { + return sdkAppId; } - public void setSmsSign(String smsSign) { - this.smsSign = smsSign; + public void setSdkAppId(String sdkAppId) { + this.sdkAppId = sdkAppId; + } + + public String getSignName() { + return signName == null ? "" : signName.trim(); + } + + public void setSignName(String signName) { + this.signName = signName; } public String getVerificationCodeTemplateId() { @@ -48,19 +57,4 @@ public class SmsTencentProperties { public void setVerificationCodeTemplateId(String verificationCodeTemplateId) { this.verificationCodeTemplateId = verificationCodeTemplateId; } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder("{"); - sb.append("\"appId\":") - .append("\"").append(appId).append("\""); - sb.append(",\"appKey\":") - .append("\"").append(appKey).append("\""); - sb.append(",\"smsSign\":") - .append("\"").append(smsSign).append("\""); - sb.append(",\"verificationCodeTemplateId\":") - .append("\"").append(verificationCodeTemplateId).append("\""); - sb.append('}'); - return sb.toString(); - } } 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 3ebd3a7c..b3efb6b0 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 @@ -74,4 +74,15 @@ public interface IDepartmentUserRemoteService { @RemotePostMethod("/list-save-department-user-ids/user-ids") List listSameDepartmentUserIdByUserIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + @RemotePostMethod("/list-user/exclude-department-id/{departmentId}") + List listUserByExcludeDepartmentId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("departmentId") String departmentId); + + @RemotePostMethod("/list-user/exclude-department-ids") + List listUserByExcludeDepartmentIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + + @RemotePostMethod("/listpage-user/exclude-department-id/{departmentId}") + SuccessResultList> listPageUserByExcludeDepartmentId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("departmentId") String departmentId, @RemoteQueryParams("page") int page, @RemoteQueryParams("rows") int rows, @RemoteQueryParamsMap Map params); + + @RemotePostMethod("/listpage-user/exclude-department-ids") + SuccessResultList> listPageUserByExcludeDepartmentIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO, @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 2225d0a9..fb1173bc 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 @@ -184,4 +184,40 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe return departmentUserRemoteService.listSameDepartmentUserIdByUserIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); } + @Override + public List listUserByExcludeDepartmentId(String excludeDepartmentId) { + if (StringUtils.isBlank(excludeDepartmentId)) { + return new ArrayList<>(); + } + return departmentUserRemoteService.listUserByExcludeDepartmentId(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), excludeDepartmentId); + } + + @Override + public List listUserByExcludeDepartmentIds(List excludeDepartmentIds) { + if (excludeDepartmentIds == null || excludeDepartmentIds.isEmpty()) { + return new ArrayList<>(); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(excludeDepartmentIds); + return departmentUserRemoteService.listUserByExcludeDepartmentIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } + + @Override + public SuccessResultList> listPageUserByExcludeDepartmentId(String excludeDepartmentId, ListPage page) { + if (StringUtils.isBlank(excludeDepartmentId)) { + return new SuccessResultList<>(new ArrayList<>(), 1, 0L); + } + return departmentUserRemoteService.listPageUserByExcludeDepartmentId(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), excludeDepartmentId, page.getPage(), page.getRows(), page.getParams()); + } + + @Override + public SuccessResultList> listPageUserByExcludeDepartmentId(List excludeDepartmentIds, ListPage page) { + if (excludeDepartmentIds == null || excludeDepartmentIds.isEmpty()) { + return new SuccessResultList<>(new ArrayList<>(), 1, 0L); + } + IdsVO idsVO = new IdsVO(); + idsVO.setIds(excludeDepartmentIds); + return departmentUserRemoteService.listPageUserByExcludeDepartmentIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO, page.getPage(), page.getRows(), page.getParams()); + } + } diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java index dcc760a2..49a1243f 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java @@ -1,12 +1,15 @@ package ink.wgink.service.department.controller.api; 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.DepartmentUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; import ink.wgink.pojo.vos.SaveAndDeleteIdsVO; import ink.wgink.service.department.pojo.vos.DepartmentUserSortVO; import ink.wgink.service.department.service.IDepartmentUserService; @@ -36,6 +39,21 @@ public class DepartmentUserController extends DefaultBaseController { @Autowired private IDepartmentUserService departmentUserService; + @ApiOperation(value = "保存组织部门用户列表", notes = "保存组织部门用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("save/{departmentId}") + public synchronized SuccessResult save(@PathVariable("departmentId") String departmentId, + @RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("用户ID列表不能为空"); + } + departmentUserService.save(departmentId, idsVO.getIds()); + return new SuccessResult(); + } + @ApiOperation(value = "更新组织部门用户列表", notes = "更新组织部门用户列表接口") @ApiImplicitParams({ @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path") @@ -122,4 +140,54 @@ public class DepartmentUserController extends DefaultBaseController { return departmentUserService.listUserId(departmentId); } + @ApiOperation(value = "组织部门用户列表", notes = "组织部门用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/department-id/{departmentId}") + public List listUserByDepartmentId(@PathVariable("departmentId") String departmentId) { + Map requestParams = requestParams(); + requestParams.put("departmentId", departmentId); + return departmentUserService.listUser(requestParams); + } + + @ApiOperation(value = "组织部门用户列表", notes = "组织部门用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/exclude-department-id/{departmentId}") + public List listUserByExcludeDepartmentId(@PathVariable("departmentId") String departmentId) { + Map requestParams = requestParams(); + requestParams.put("excludeDepartmentId", departmentId); + return departmentUserService.listUser(requestParams); + } + + @ApiOperation(value = "组织部门用户列表", notes = "组织部门用户列表接口") + @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) { + Map requestParams = requestParams(); + requestParams.put("departmentId", departmentId); + page.setParams(requestParams); + return departmentUserService.listPageUser(page); + } + + @ApiOperation(value = "不在组织部门的用户列表", notes = "不在组织部门的用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/exclude-department-id/{departmentId}") + public SuccessResultList> listPageUserByExcludeDepartmentId(@PathVariable("departmentId") String departmentId, ListPage page) { + Map requestParams = requestParams(); + requestParams.put("excludeDepartmentId", departmentId); + page.setParams(requestParams); + return departmentUserService.listPageUser(page); + } + } 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 9a91eb26..bafa98a6 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 @@ -143,7 +143,7 @@ public class DepartmentUserResourceController extends DefaultBaseController { }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @GetMapping("list-user/department-id/{departmentId}") - public List listUserByRoleId(@PathVariable("departmentId") String departmentId) { + public List listUserByDepartmentId(@PathVariable("departmentId") String departmentId) { return departmentUserService.listUserByDepartmentId(departmentId); } @@ -197,4 +197,29 @@ public class DepartmentUserResourceController extends DefaultBaseController { return departmentUserService.listSameDepartmentUserIdByUserIds(idsVO.getIds()); } + @ApiOperation(value = "组织部门用户列表", notes = "组织部门用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/exclude-department-id/{departmentId}") + public List listUserByExcludeDepartmentId(@PathVariable("departmentId") String departmentId) { + Map requestParams = requestParams(); + requestParams.put("excludeDepartmentId", departmentId); + return departmentUserService.listUser(requestParams); + } + + @ApiOperation(value = "不在组织部门的用户列表", notes = "不在组织部门的用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/exclude-department-id/{departmentId}") + public SuccessResultList> listPageUserByExcludeDepartmentId(@PathVariable("departmentId") String departmentId, ListPage page) { + Map requestParams = requestParams(); + requestParams.put("excludeDepartmentId", departmentId); + page.setParams(requestParams); + return departmentUserService.listPageUser(page); + } + } 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 eb7cc937..51d13b24 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 @@ -32,6 +32,11 @@ public class DepartmentUserRouteController { return new ModelAndView("department/user/list"); } + @GetMapping("save-exclude") + public ModelAndView saveExclude() { + return new ModelAndView("department/user/save-exclude"); + } + @GetMapping("select-user") public ModelAndView selectUser() { ModelAndView modelAndView = new ModelAndView("department/user/select-user"); 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 53f07801..132a2d70 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 @@ -1,6 +1,7 @@ package ink.wgink.service.department.service; import ink.wgink.interfaces.department.IDepartmentUserBaseService; +import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; @@ -41,6 +42,15 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService { */ void save(String departmentId, String departmentName, List departmentUserIds); + /** + * 新增用户ID + * + * @param departmentId 部门ID + * @param userIds 新增的用户ID列表 + */ + void save(String departmentId, List userIds); + + /** * 删除用户 * @@ -130,4 +140,14 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService { */ SuccessResultList> listPageDepartmentUser(SuccessResultList> successResultList, List hasDepartmentUsers); + /** + * 用户列表 + * + * @param requestParams + * @return + */ + List listUser(Map requestParams); + + SuccessResultList> listPageUser(ListPage page); + } 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 2dab3fd1..27a4d715 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 @@ -82,6 +82,16 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe } } + @Override + public void save(String departmentId, List userIds) { + DepartmentPO departmentPO = departmentService.getPO(departmentId); + if (departmentPO == null) { + throw new SearchException("部门不存在"); + } + save(departmentId, departmentPO.getDepartmentName(), userIds); + + } + @Override public void delete(String departmentId, String departmentName, List userIds) { String adjustmentDepartmentName = departmentName; @@ -486,4 +496,44 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe params.put("userIds", userIds); return departmentUserDao.listSameDepartmentUserId(params); } + + @Override + public List listUser(Map requestParams) { + requestParams = requestParams == null ? getHashMap(0) : requestParams; + return departmentUserDao.listUser(requestParams); + } + + @Override + public SuccessResultList> listPageUser(ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List userDTOs = listUser(page.getParams()); + PageInfo pageInfo = new PageInfo<>(userDTOs); + return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); + } + + @Override + public List listUserByExcludeDepartmentId(String excludeDepartmentId) { + Map params = getHashMap(2); + params.put("excludeDepartmentId", excludeDepartmentId); + return listUser(params); + } + + @Override + public List listUserByExcludeDepartmentIds(List excludeDepartmentIds) { + Map params = getHashMap(2); + params.put("excludeDepartmentIds", excludeDepartmentIds); + return listUser(params); + } + + @Override + public SuccessResultList> listPageUserByExcludeDepartmentId(String excludeDepartmentId, ListPage page) { + page.getParams().put("excludeDepartmentId", excludeDepartmentId); + return listPageUser(page); + } + + @Override + public SuccessResultList> listPageUserByExcludeDepartmentId(List excludeDepartmentIds, ListPage page) { + page.getParams().put("excludeDepartmentIds", excludeDepartmentIds); + return listPageUser(page); + } } 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 f4cf644e..1d746be7 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 @@ -198,10 +198,25 @@ t1.is_delete = 0 AND t1.user_username != 'admin' - + + 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_type = #{userType} + + AND + t1.user_state = #{userState} + AND t1.user_type != #{excludeUserType} @@ -217,6 +232,45 @@ st1.department_id = #{departmentId} ) + + AND + t1.user_id IN ( + SELECT + user_id + FROM + sys_department_user st1 + WHERE + st1.department_id IN + + #{departmentIds[${index}]} + + ) + + + AND + t1.user_id NOT IN ( + SELECT + user_id + FROM + sys_department_user st1 + WHERE + st1.department_id = #{excludeDepartmentId} + ) + + + AND + t1.user_id NOT IN ( + SELECT + user_id + FROM + sys_department_user st1 + WHERE + st1.department_id IN + + #{excludeDepartmentIds[${index}]} + + ) + diff --git a/service-department/src/main/resources/templates/department/user/list.html b/service-department/src/main/resources/templates/department/user/list.html index 5e4fafcd..e7571629 100644 --- a/service-department/src/main/resources/templates/department/user/list.html +++ b/service-department/src/main/resources/templates/department/user/list.html @@ -97,18 +97,33 @@ return item.userEmail; } }, - {field:'userState', width:80, title: '状态', align:'center', + {field:'userType', width:90, title: '类型', sort: true, align:'center', + templet: function(item) { + if(item.userType == 1) { + return '系统用户'; + } else if(item.userType == 2) { + return '普通用户'; + } else if(item.userType == 3) { + return '公共用户'; + } + return '类型错误'; + } + }, + {field:'userState', width:80, title: '状态', sort: true, align:'center', templet: function(item) { var value; switch (item.userState) { case 1: - value = '冻结'; + value = '锁定'; break; - case 2: - value = '锁定'; + case -1: + value = '未审核'; + break; + case -2: + value = '审核不通过'; break; default: - value = '正常'; + value = '正常'; } return value; } @@ -126,6 +141,8 @@ } }); } + initTable(); + // 重载表格 function reloadTable(currentPage) { table.reload('dataTable', { @@ -165,28 +182,6 @@ } }); } - // 初始化职位用户ID列表 - function initSelectUserIds() { - var layIndex; - top.restAjax.get(top.restAjax.path('api/department/user/listuserid/{departmentId}', [departmentId]), {}, null, function(code, data) { - var selectedUserIds = ''; - for(var i = 0, item; item = data[i++]; ) { - if('' != selectedUserIds) { - selectedUserIds += '_'; - } - selectedUserIds += item; - } - $('#selectedUserIds').val(selectedUserIds); - initTable(); - }, function(code, data) { - top.dialog.msg(data.msg); - }, function() { - layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3}); - }, function() { - top.dialog.close(layIndex); - }); - } - initSelectUserIds(); // 事件 - 页面变化 $win.on('resize', function() { @@ -205,50 +200,16 @@ var checkStatus = table.checkStatus('dataTable'); var checkDatas = checkStatus.data; if(layEvent === 'saveEvent') { - top.dialog.dialogData.selectedUserIds = $('#selectedUserIds').val(); top.dialog.open({ - url: top.restAjax.path('route/department/user/select-user', []), - title: '选择用户', - width: '500px', + url: top.restAjax.path('route/department/user/save-exclude?departmentId={departmentId}', [departmentId]), + title: '添加部门用户', + width: '800px', height: '500px', closeBtn: 0, onClose: function() { - top.dialog.dialogData.selectedDepartmentUsers = null; - var insertUsers = top.dialog.dialogData.saveDepartmentUsers; - var deleteUsers = top.dialog.dialogData.deleteDepartmentUsers; - if(insertUsers && insertUsers.length > 0 || deleteUsers && deleteUsers.length > 0) { - var ids = []; - for (var i = 0, item; item = insertUsers[i++];) { - ids.push(item.userId); - } - top.dialog.msg(top.dataMessage.update, { - time: 0, - btn: [top.dataMessage.button.yes, top.dataMessage.button.no], - yes: function (index) { - top.dialog.close(index); - var loadLayerIndex; - top.restAjax.put(top.restAjax.path('api/department/user/update/{departmentId}', [departmentId]), { - saveIds: ids, - deleteIds: deleteUsers - }, null, function (code, data) { - top.dialog.msg(top.dataMessage.updated); - initSelectUserIds(); - }, function (code, data) { - top.dialog.msg(data.msg); - }, function () { - loadLayerIndex = top.dialog.msg(top.dataMessage.updating, { - icon: 16, - time: 0, - shade: 0.3 - }); - }, function () { - top.dialog.close(loadLayerIndex); - }); - }, - }); - } + reloadTable(); } - }) + }); } else if(layEvent === 'removeEvent') { if(checkDatas.length === 0) { top.dialog.msg(top.dataMessage.table.selectDelete); diff --git a/service-department/src/main/resources/templates/department/user/save-exclude.html b/service-department/src/main/resources/templates/department/user/save-exclude.html new file mode 100644 index 00000000..87062caa --- /dev/null +++ b/service-department/src/main/resources/templates/department/user/save-exclude.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + +
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+ + +
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/service-group/src/main/java/ink/wgink/service/group/controller/api/GroupUserController.java b/service-group/src/main/java/ink/wgink/service/group/controller/api/GroupUserController.java index 89c6a05c..61383263 100644 --- a/service-group/src/main/java/ink/wgink/service/group/controller/api/GroupUserController.java +++ b/service-group/src/main/java/ink/wgink/service/group/controller/api/GroupUserController.java @@ -1,12 +1,15 @@ package ink.wgink.service.group.controller.api; 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.group.GroupUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; import ink.wgink.pojo.vos.SaveAndDeleteIdsVO; import ink.wgink.service.group.service.IGroupUserService; import io.swagger.annotations.*; @@ -35,6 +38,21 @@ public class GroupUserController extends DefaultBaseController { @Autowired private IGroupUserService groupUserService; + @ApiOperation(value = "保存组用户列表", notes = "保存组用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupId", value = "组ID", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("save/{groupId}") + public synchronized SuccessResult save(@PathVariable("groupId") String groupId, + @RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("用户ID列表不能为空"); + } + groupUserService.save(groupId, idsVO.getIds()); + return new SuccessResult(); + } + @ApiOperation(value = "更新组用户列表", notes = "更新组用户列表接口") @ApiImplicitParams({ @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path") @@ -85,4 +103,54 @@ public class GroupUserController extends DefaultBaseController { return groupUserService.listUserId(groupId); } + @ApiOperation(value = "组用户列表", notes = "组用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupId", value = "组ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/group-id/{groupId}") + public List listUserByGroupId(@PathVariable("groupId") String groupId) { + Map requestParams = requestParams(); + requestParams.put("groupId", groupId); + return groupUserService.listUser(requestParams); + } + + @ApiOperation(value = "组用户列表", notes = "组用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupId", value = "组ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/exclude-group-id/{groupId}") + public List listUserByExcludeGroupId(@PathVariable("groupId") String groupId) { + Map requestParams = requestParams(); + requestParams.put("excludeGroupId", groupId); + return groupUserService.listUser(requestParams); + } + + @ApiOperation(value = "组用户列表", notes = "组用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupId", value = "组ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/group-id/{groupId}") + public SuccessResultList> listPageUserByGroupId(@PathVariable("groupId") String groupId, ListPage page) { + Map requestParams = requestParams(); + requestParams.put("groupId", groupId); + page.setParams(requestParams); + return groupUserService.listPageUser(page); + } + + @ApiOperation(value = "不在组的用户列表", notes = "不在组的用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupId", value = "组ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/exclude-group-id/{groupId}") + public SuccessResultList> listPageUserByExcludeGroupId(@PathVariable("groupId") String groupId, ListPage page) { + Map requestParams = requestParams(); + requestParams.put("excludeGroupId", groupId); + page.setParams(requestParams); + return groupUserService.listPageUser(page); + } + } diff --git a/service-group/src/main/java/ink/wgink/service/group/controller/route/GroupUserRouteController.java b/service-group/src/main/java/ink/wgink/service/group/controller/route/GroupUserRouteController.java index cf9d5818..f0ae3eb3 100644 --- a/service-group/src/main/java/ink/wgink/service/group/controller/route/GroupUserRouteController.java +++ b/service-group/src/main/java/ink/wgink/service/group/controller/route/GroupUserRouteController.java @@ -27,4 +27,9 @@ public class GroupUserRouteController { return new ModelAndView("group/user/list"); } + @GetMapping("save-exclude") + public ModelAndView saveExclude() { + return new ModelAndView("group/user/save-exclude"); + } + } diff --git a/service-group/src/main/java/ink/wgink/service/group/dao/IGroupUserDao.java b/service-group/src/main/java/ink/wgink/service/group/dao/IGroupUserDao.java index 255fdc46..e045eaf3 100644 --- a/service-group/src/main/java/ink/wgink/service/group/dao/IGroupUserDao.java +++ b/service-group/src/main/java/ink/wgink/service/group/dao/IGroupUserDao.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.user.UserDTO; import org.springframework.stereotype.Repository; import java.util.List; @@ -64,4 +65,13 @@ public interface IGroupUserDao extends IInitBaseTable { * @throws SearchException */ List listGroupId(Map params) throws SearchException; + + /** + * 用户列表 + * + * @param requestParams + * @return + * @throws SearchException + */ + List listUser(Map requestParams) throws SearchException; } diff --git a/service-group/src/main/java/ink/wgink/service/group/service/IGroupUserService.java b/service-group/src/main/java/ink/wgink/service/group/service/IGroupUserService.java index 575af4a8..f88daeab 100644 --- a/service-group/src/main/java/ink/wgink/service/group/service/IGroupUserService.java +++ b/service-group/src/main/java/ink/wgink/service/group/service/IGroupUserService.java @@ -1,8 +1,12 @@ package ink.wgink.service.group.service; import ink.wgink.interfaces.group.IGroupUserBaseService; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.user.UserDTO; +import ink.wgink.pojo.result.SuccessResultList; import java.util.List; +import java.util.Map; /** * When you feel like quitting. Think about why you started @@ -16,6 +20,14 @@ import java.util.List; */ public interface IGroupUserService extends IGroupUserBaseService { + /** + * 新增 + * + * @param groupId + * @param saveUserIds + */ + void save(String groupId, List saveUserIds); + /** * 更新用户组人员列表 * @@ -32,4 +44,20 @@ public interface IGroupUserService extends IGroupUserBaseService { * @param userIds 用户ID列表 */ void delete(String groupId, List userIds); + + /** + * 用户列表 + * + * @param requestParams + * @return + */ + List listUser(Map requestParams); + + /** + * 用户分页列表 + * + * @param page + * @return + */ + SuccessResultList> listPageUser(ListPage page); } diff --git a/service-group/src/main/java/ink/wgink/service/group/service/impl/GroupUserServiceImpl.java b/service-group/src/main/java/ink/wgink/service/group/service/impl/GroupUserServiceImpl.java index c98d9ce2..bed749ef 100644 --- a/service-group/src/main/java/ink/wgink/service/group/service/impl/GroupUserServiceImpl.java +++ b/service-group/src/main/java/ink/wgink/service/group/service/impl/GroupUserServiceImpl.java @@ -1,5 +1,7 @@ package ink.wgink.service.group.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.interfaces.user.IUserBaseService; @@ -41,6 +43,32 @@ public class GroupUserServiceImpl extends DefaultBaseService implements IGroupUs @Autowired private IGroupService groupService; + @Override + public void save(String groupId, List saveUserIds) { + // 判断是否已经添加 + List existUserIds = listUserIdByGroupIdAndUserIds(groupId, saveUserIds); + Map params = getHashMap(4); + for (int i = 0; i < saveUserIds.size(); i++) { + String saveUserId = saveUserIds.get(i); + boolean isExist = false; + for (String existUserId : existUserIds) { + if (StringUtils.equals(saveUserId, existUserId)) { + isExist = true; + existUserIds.remove(existUserId); + break; + } + } + if (!isExist) { + params.put("groupId", groupId); + params.put("userId", saveUserId); + groupUserDao.save(params); + } else { + saveUserIds.remove(i); + i--; + } + } + } + @Override public void update(String groupId, List saveUserIds, List deleteUserIds) { if (deleteUserIds != null && !deleteUserIds.isEmpty()) { @@ -64,6 +92,20 @@ public class GroupUserServiceImpl extends DefaultBaseService implements IGroupUs groupUserDao.delete(params); } + @Override + public List listUser(Map requestParams) { + requestParams = requestParams == null ? getHashMap(0) : requestParams; + return groupUserDao.listUser(requestParams); + } + + @Override + public SuccessResultList> listPageUser(ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List userDTOs = listUser(page.getParams()); + PageInfo pageInfo = new PageInfo<>(userDTOs); + return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); + } + @Override public List listUserId(String groupId) { Map params = getHashMap(2); @@ -154,4 +196,18 @@ public class GroupUserServiceImpl extends DefaultBaseService implements IGroupUs return userBaseService.listPageByIds(userIds, page); } + private List listUserIdByGroupIdAndUserIds(String groupId, List userIds) { + Map params = getHashMap(4); + params.put("groupId", groupId); + params.put("userIds", userIds); + return groupUserDao.listUserId(params); + } + + private List listUserIdByPositionIdsAndUserIds(List groupIds, List userIds) { + Map params = getHashMap(4); + params.put("groupIds", groupIds); + params.put("userIds", userIds); + return groupUserDao.listUserId(params); + } + } diff --git a/service-group/src/main/resources/mybatis/mapper/group-user-mapper.xml b/service-group/src/main/resources/mybatis/mapper/group-user-mapper.xml index 801d71bc..9fa3dbb8 100644 --- a/service-group/src/main/resources/mybatis/mapper/group-user-mapper.xml +++ b/service-group/src/main/resources/mybatis/mapper/group-user-mapper.xml @@ -100,5 +100,95 @@
- + + + \ No newline at end of file diff --git a/service-group/src/main/resources/templates/group/user/list.html b/service-group/src/main/resources/templates/group/user/list.html index 2a30cd2a..69b2c8fa 100644 --- a/service-group/src/main/resources/templates/group/user/list.html +++ b/service-group/src/main/resources/templates/group/user/list.html @@ -96,18 +96,33 @@ return item.userEmail; } }, - {field:'userState', width:80, title: '状态', align:'center', + {field:'userType', width:90, title: '类型', sort: true, align:'center', + templet: function(item) { + if(item.userType == 1) { + return '系统用户'; + } else if(item.userType == 2) { + return '普通用户'; + } else if(item.userType == 3) { + return '公共用户'; + } + return '类型错误'; + } + }, + {field:'userState', width:80, title: '状态', sort: true, align:'center', templet: function(item) { var value; switch (item.userState) { case 1: - value = '冻结'; + value = '锁定'; break; - case 2: - value = '锁定'; + case -1: + value = '未审核'; + break; + case -2: + value = '审核不通过'; break; default: - value = '正常'; + value = '正常'; } return value; } @@ -125,6 +140,8 @@ } }); } + initTable(); + // 重载表格 function reloadTable(currentPage) { table.reload('dataTable', { @@ -164,28 +181,6 @@ } }); } - // 初始化用户组用户ID列表 - function initSelectUserIds() { - var layIndex; - top.restAjax.get(top.restAjax.path('api/group/user/listuserid/{groupId}', [groupId]), {}, null, function(code, data) { - var selectedUserIds = ''; - for(var i = 0, item; item = data[i++]; ) { - if(selectedUserIds.length > 0) { - selectedUserIds += '_'; - } - selectedUserIds += item; - } - $('#selectedUserIds').val(selectedUserIds); - initTable(); - }, function(code, data) { - top.dialog.msg(data.msg); - }, function() { - layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3}); - }, function() { - top.dialog.close(layIndex); - }); - } - initSelectUserIds(); // 事件 - 页面变化 $win.on('resize', function() { @@ -204,50 +199,16 @@ var checkStatus = table.checkStatus('dataTable'); var checkDatas = checkStatus.data; if(layEvent === 'saveEvent') { - top.dialog.dialogData.selectedUserIds = $('#selectedUserIds').val(); top.dialog.open({ - url: top.restAjax.path('route/department/user/select-user', []), - title: '选择用户', - width: '500px', + url: top.restAjax.path('route/group/user/save-exclude?groupId={groupId}', [groupId]), + title: '添加组用户', + width: '800px', height: '500px', closeBtn: 0, onClose: function() { - top.dialog.dialogData.selectedDepartmentUsers = null; - var insertUsers = top.dialog.dialogData.saveDepartmentUsers; - var deleteUsers = top.dialog.dialogData.deleteDepartmentUsers; - if(insertUsers && insertUsers.length > 0 || deleteUsers && deleteUsers.length > 0) { - var ids = []; - for (var i = 0, item; item = insertUsers[i++];) { - ids.push(item.userId); - } - top.dialog.msg(top.dataMessage.update, { - time: 0, - btn: [top.dataMessage.button.yes, top.dataMessage.button.no], - yes: function (index) { - top.dialog.close(index); - var loadLayerIndex; - top.restAjax.put(top.restAjax.path('api/group/user/update/{groupId}', [groupId]), { - saveIds: ids, - deleteIds: deleteUsers - }, null, function (code, data) { - top.dialog.msg(top.dataMessage.updated); - initSelectUserIds(); - }, function (code, data) { - top.dialog.msg(data.msg); - }, function () { - loadLayerIndex = top.dialog.msg(top.dataMessage.updating, { - icon: 16, - time: 0, - shade: 0.3 - }); - }, function () { - top.dialog.close(loadLayerIndex); - }); - }, - }); - } + reloadTable(); } - }) + }); } else if(layEvent === 'removeEvent') { if(checkDatas.length === 0) { top.dialog.msg(top.dataMessage.table.selectDelete); diff --git a/service-group/src/main/resources/templates/group/user/save-exclude.html b/service-group/src/main/resources/templates/group/user/save-exclude.html new file mode 100644 index 00000000..e79883d1 --- /dev/null +++ b/service-group/src/main/resources/templates/group/user/save-exclude.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + +
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+ + +
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/service-position/src/main/java/ink/wgink/service/position/controller/api/PositionUserController.java b/service-position/src/main/java/ink/wgink/service/position/controller/api/PositionUserController.java index 4e986327..efc0dc03 100644 --- a/service-position/src/main/java/ink/wgink/service/position/controller/api/PositionUserController.java +++ b/service-position/src/main/java/ink/wgink/service/position/controller/api/PositionUserController.java @@ -1,12 +1,15 @@ package ink.wgink.service.position.controller.api; 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; +import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; import ink.wgink.pojo.vos.SaveAndDeleteIdsVO; import ink.wgink.service.position.service.IPositionUserService; import io.swagger.annotations.*; @@ -35,9 +38,24 @@ public class PositionUserController extends DefaultBaseController { @Autowired private IPositionUserService positionUserService; + @ApiOperation(value = "保存职位用户列表", notes = "保存职位用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "positionId", value = "职位ID", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("save/{positionId}") + public synchronized SuccessResult save(@PathVariable("positionId") String positionId, + @RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("用户ID列表不能为空"); + } + positionUserService.save(positionId, idsVO.getIds()); + return new SuccessResult(); + } + @ApiOperation(value = "更新职位人员列表", notes = "更新职位人员列表接口") @ApiImplicitParams({ - @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path") + @ApiImplicitParam(name = "departmentId", value = "职位ID", paramType = "path") }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @PutMapping("update/{positionId}") @@ -49,7 +67,7 @@ public class PositionUserController extends DefaultBaseController { @ApiOperation(value = "职位人员删除", notes = "职位人员删除接口") @ApiImplicitParams({ - @ApiImplicitParam(name = "positionId", value = "部门ID", paramType = "path"), + @ApiImplicitParam(name = "positionId", value = "职位ID", paramType = "path"), @ApiImplicitParam(name = "ids", value = "人员ID列表,用下划线分隔", paramType = "path", example = "1_2_3") }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @@ -85,4 +103,54 @@ public class PositionUserController extends DefaultBaseController { return positionUserService.listUserId(positionId); } + @ApiOperation(value = "职位用户列表", notes = "职位用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "positionId", value = "职位ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/position-id/{positionId}") + public List listUserByPositionId(@PathVariable("positionId") String positionId) { + Map requestParams = requestParams(); + requestParams.put("positionId", positionId); + return positionUserService.listUser(requestParams); + } + + @ApiOperation(value = "职位用户列表", notes = "职位用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "positionId", value = "职位ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/exclude-position-id/{positionId}") + public List listUserByExcludePositionId(@PathVariable("positionId") String positionId) { + Map requestParams = requestParams(); + requestParams.put("excludePositionId", positionId); + return positionUserService.listUser(requestParams); + } + + @ApiOperation(value = "职位用户列表", notes = "职位用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "positionId", value = "职位ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/position-id/{positionId}") + public SuccessResultList> listPageUserByPositionId(@PathVariable("positionId") String positionId, ListPage page) { + Map requestParams = requestParams(); + requestParams.put("positionId", positionId); + page.setParams(requestParams); + return positionUserService.listPageUser(page); + } + + @ApiOperation(value = "不在职位的用户列表", notes = "不在职位的用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "positionId", value = "职位ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/exclude-position-id/{positionId}") + public SuccessResultList> listPageUserByExcludePositionId(@PathVariable("positionId") String positionId, ListPage page) { + Map requestParams = requestParams(); + requestParams.put("excludePositionId", positionId); + page.setParams(requestParams); + return positionUserService.listPageUser(page); + } + } diff --git a/service-position/src/main/java/ink/wgink/service/position/controller/route/PositionUserRouteController.java b/service-position/src/main/java/ink/wgink/service/position/controller/route/PositionUserRouteController.java index f1af2a81..5e7e26bf 100644 --- a/service-position/src/main/java/ink/wgink/service/position/controller/route/PositionUserRouteController.java +++ b/service-position/src/main/java/ink/wgink/service/position/controller/route/PositionUserRouteController.java @@ -27,4 +27,9 @@ public class PositionUserRouteController { return new ModelAndView("position/user/list"); } + @GetMapping("save-exclude") + public ModelAndView saveExclude() { + return new ModelAndView("position/user/save-exclude"); + } + } diff --git a/service-position/src/main/java/ink/wgink/service/position/dao/IPositionUserDao.java b/service-position/src/main/java/ink/wgink/service/position/dao/IPositionUserDao.java index 53b48a66..d53069d6 100644 --- a/service-position/src/main/java/ink/wgink/service/position/dao/IPositionUserDao.java +++ b/service-position/src/main/java/ink/wgink/service/position/dao/IPositionUserDao.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.user.UserDTO; import org.springframework.stereotype.Repository; import java.util.List; @@ -64,4 +65,13 @@ public interface IPositionUserDao extends IInitBaseTable { * @throws SearchException */ List listPositionId(Map params) throws SearchException; + + /** + * 用户列表 + * + * @param requestParams + * @return + * @throws SearchException + */ + List listUser(Map requestParams) throws SearchException; } diff --git a/service-position/src/main/java/ink/wgink/service/position/service/IPositionUserService.java b/service-position/src/main/java/ink/wgink/service/position/service/IPositionUserService.java index 0c01ac44..3b25e644 100644 --- a/service-position/src/main/java/ink/wgink/service/position/service/IPositionUserService.java +++ b/service-position/src/main/java/ink/wgink/service/position/service/IPositionUserService.java @@ -1,8 +1,12 @@ package ink.wgink.service.position.service; import ink.wgink.interfaces.position.IPositionUserBaseService; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.user.UserDTO; +import ink.wgink.pojo.result.SuccessResultList; import java.util.List; +import java.util.Map; /** * When you feel like quitting. Think about why you started @@ -16,6 +20,14 @@ import java.util.List; **/ public interface IPositionUserService extends IPositionUserBaseService { + /** + * 保存职位人员 + * + * @param positionId + * @param ids + */ + void save(String positionId, List ids); + /** * 更新职位人员列表 * @@ -33,4 +45,19 @@ public interface IPositionUserService extends IPositionUserBaseService { */ void delete(String positionId, List userIds); + /** + * 用户列表 + * + * @param requestParams + * @return + */ + List listUser(Map requestParams); + + /** + * 用户分页列表 + * + * @param page + * @return + */ + SuccessResultList> listPageUser(ListPage page); } 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 50acc6cb..ac85baf6 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 @@ -1,5 +1,7 @@ package ink.wgink.service.position.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.interfaces.user.IUserBaseService; @@ -41,6 +43,32 @@ public class PositionUserServiceImpl extends DefaultBaseService implements IPosi @Autowired private IPositionService positionService; + @Override + public void save(String positionId, List saveUserIds) { + // 判断是否已经添加 + List existUserIds = listUserIdByPositionIdAndUserIds(positionId, saveUserIds); + Map params = getHashMap(4); + for (int i = 0; i < saveUserIds.size(); i++) { + String saveUserId = saveUserIds.get(i); + boolean isExist = false; + for (String existUserId : existUserIds) { + if (StringUtils.equals(saveUserId, existUserId)) { + isExist = true; + existUserIds.remove(existUserId); + break; + } + } + if (!isExist) { + params.put("positionId", positionId); + params.put("userId", saveUserId); + positionUserDao.save(params); + } else { + saveUserIds.remove(i); + i--; + } + } + } + @Override public void update(String positionId, List saveUserIds, List deleteUserIds) { if (deleteUserIds != null && !deleteUserIds.isEmpty()) { @@ -64,6 +92,20 @@ public class PositionUserServiceImpl extends DefaultBaseService implements IPosi positionUserDao.delete(params); } + @Override + public List listUser(Map requestParams) { + requestParams = requestParams == null ? getHashMap(0) : requestParams; + return positionUserDao.listUser(requestParams); + } + + @Override + public SuccessResultList> listPageUser(ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List userDTOs = listUser(page.getParams()); + PageInfo pageInfo = new PageInfo<>(userDTOs); + return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); + } + @Override public List listUserId(String positionId) { Map params = getHashMap(2); 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 2f4ffa4e..37132007 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 @@ -109,4 +109,95 @@ + + + \ No newline at end of file diff --git a/service-position/src/main/resources/templates/position/user/list.html b/service-position/src/main/resources/templates/position/user/list.html index 3bfab780..063c71e5 100644 --- a/service-position/src/main/resources/templates/position/user/list.html +++ b/service-position/src/main/resources/templates/position/user/list.html @@ -96,18 +96,33 @@ return item.userEmail; } }, - {field:'userState', width:80, title: '状态', align:'center', + {field:'userType', width:90, title: '类型', sort: true, align:'center', + templet: function(item) { + if(item.userType == 1) { + return '系统用户'; + } else if(item.userType == 2) { + return '普通用户'; + } else if(item.userType == 3) { + return '公共用户'; + } + return '类型错误'; + } + }, + {field:'userState', width:80, title: '状态', sort: true, align:'center', templet: function(item) { var value; switch (item.userState) { case 1: - value = '冻结'; + value = '锁定'; break; - case 2: - value = '锁定'; + case -1: + value = '未审核'; + break; + case -2: + value = '审核不通过'; break; default: - value = '正常'; + value = '正常'; } return value; } @@ -125,6 +140,8 @@ } }); } + initTable(); + // 重载表格 function reloadTable(currentPage) { table.reload('dataTable', { @@ -164,28 +181,6 @@ } }); } - // 初始化职位用户ID列表 - function initSelectUserIds() { - var layIndex; - top.restAjax.get(top.restAjax.path('api/position/user/listuserid/{positionId}', [positionId]), {}, null, function(code, data) { - var selectedUserIds = ''; - for(var i = 0, item; item = data[i++]; ) { - if(selectedUserIds.length > 0) { - selectedUserIds += '_'; - } - selectedUserIds += item; - } - $('#selectedUserIds').val(selectedUserIds); - initTable(); - }, function(code, data) { - top.dialog.msg(data.msg); - }, function() { - layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3}); - }, function() { - top.dialog.close(layIndex); - }); - } - initSelectUserIds(); // 事件 - 页面变化 $win.on('resize', function() { @@ -204,52 +199,16 @@ var checkStatus = table.checkStatus('dataTable'); var checkDatas = checkStatus.data; if(layEvent === 'saveEvent') { - top.dialog.dialogData.selectedUserIds = $('#selectedUserIds').val(); top.dialog.open({ - url: top.restAjax.path('route/department/user/select-user', []), - title: '选择用户', - width: '500px', + url: top.restAjax.path('route/position/user/save-exclude?positionId={positionId}', [positionId]), + title: '添加职位用户', + width: '800px', height: '500px', closeBtn: 0, onClose: function() { - top.dialog.dialogData.selectedDepartmentUsers = null; - var insertUsers = top.dialog.dialogData.saveDepartmentUsers; - var deleteUsers = top.dialog.dialogData.deleteDepartmentUsers; - - if(insertUsers && insertUsers.length > 0 || deleteUsers && deleteUsers.length > 0) { - var ids = []; - for (var i = 0, item; item = insertUsers[i++];) { - ids.push(item.userId); - } - top.dialog.msg(top.dataMessage.update, { - time: 0, - btn: [top.dataMessage.button.yes, top.dataMessage.button.no], - yes: function (index) { - top.dialog.close(index); - var loadLayerIndex; - top.restAjax.put(top.restAjax.path('api/position/user/update/{positionId}', [positionId]), { - saveIds: ids, - deleteIds: deleteUsers - }, null, function (code, data) { - top.dialog.msg(top.dataMessage.updated); - $('#selectedUserIds').val(ids.toString().replaceAll(',', '\_')); - initSelectUserIds(); - }, function (code, data) { - top.dialog.msg(data.msg); - }, function () { - loadLayerIndex = top.dialog.msg(top.dataMessage.updating, { - icon: 16, - time: 0, - shade: 0.3 - }); - }, function () { - top.dialog.close(loadLayerIndex); - }); - }, - }); - } + reloadTable(); } - }) + }); } else if(layEvent === 'removeEvent') { if(checkDatas.length === 0) { top.dialog.msg(top.dataMessage.table.selectDelete); diff --git a/service-position/src/main/resources/templates/position/user/save-exclude.html b/service-position/src/main/resources/templates/position/user/save-exclude.html new file mode 100644 index 00000000..dcf64701 --- /dev/null +++ b/service-position/src/main/resources/templates/position/user/save-exclude.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + +
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+ + +
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleUserController.java b/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleUserController.java index c9ef7095..834930ee 100644 --- a/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleUserController.java +++ b/service-role/src/main/java/ink/wgink/service/role/controller/api/RoleUserController.java @@ -1,6 +1,7 @@ package ink.wgink.service.role.controller.api; import ink.wgink.common.base.DefaultBaseController; +import ink.wgink.exceptions.ParamsException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.role.RoleUserDTO; @@ -8,6 +9,7 @@ import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; import ink.wgink.pojo.vos.SaveAndDeleteIdsVO; import ink.wgink.service.role.service.IRoleUserService; import io.swagger.annotations.*; @@ -36,9 +38,24 @@ public class RoleUserController extends DefaultBaseController { @Autowired private IRoleUserService roleUserService; + @ApiOperation(value = "保存角色用户列表", notes = "保存角色用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("save/{roleId}") + public synchronized SuccessResult save(@PathVariable("roleId") String roleId, + @RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("用户ID列表不能为空"); + } + roleUserService.save(roleId, idsVO.getIds()); + return new SuccessResult(); + } + @ApiOperation(value = "更新角色用户列表", notes = "更新角色用户列表接口") @ApiImplicitParams({ - @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path") + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path") }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @PutMapping("update/{roleId}") @@ -50,7 +67,7 @@ public class RoleUserController extends DefaultBaseController { @ApiOperation(value = "删除角色用户", notes = "删除角色用户接口") @ApiImplicitParams({ - @ApiImplicitParam(name = "roleId", value = "部门ID", paramType = "path"), + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path"), @ApiImplicitParam(name = "ids", value = "人员ID列表,用下划线分隔", paramType = "path", example = "1_2_3") }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @@ -86,25 +103,54 @@ public class RoleUserController extends DefaultBaseController { return roleUserService.listUserId(roleId); } - @ApiOperation(value = "用户列表", notes = "通过角色ID获取用户列表接口") + @ApiOperation(value = "角色用户列表", notes = "角色用户列表接口") @ApiImplicitParams({ - @ApiImplicitParam(name = "roleId", value = "用户角色ID", paramType = "path"), + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path"), }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @GetMapping("list-user/role-id/{roleId}") public List listUserByRoleId(@PathVariable("roleId") String roleId) { - return roleUserService.listUserByRoleId(roleId); + Map requestParams = requestParams(); + requestParams.put("roleId", roleId); + return roleUserService.listUser(requestParams); } - @ApiOperation(value = "用户分页列表", notes = "通过角色ID获取用户分页列表接口") + @ApiOperation(value = "角色用户列表", notes = "角色用户列表接口") @ApiImplicitParams({ - @ApiImplicitParam(name = "roleId", value = "用户角色ID", paramType = "path"), + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user/exclude-role-id/{roleId}") + public List listUserByExcludeRoleId(@PathVariable("roleId") String roleId) { + Map requestParams = requestParams(); + requestParams.put("excludeRoleId", roleId); + return roleUserService.listUser(requestParams); + } + + @ApiOperation(value = "角色用户列表", notes = "角色用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path"), }) @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @GetMapping("listpage-user/role-id/{roleId}") public SuccessResultList> listPageUserByRoleId(@PathVariable("roleId") String roleId, ListPage page) { - return roleUserService.listPageUserByRoleId(roleId, page); + Map requestParams = requestParams(); + requestParams.put("roleId", roleId); + page.setParams(requestParams); + return roleUserService.listPageUser(page); } + @ApiOperation(value = "不在角色的用户列表", notes = "不在角色的用户列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "roleId", value = "角色ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage-user/exclude-role-id/{roleId}") + public SuccessResultList> listPageUserByExcludeRoleId(@PathVariable("roleId") String roleId, ListPage page) { + Map requestParams = requestParams(); + requestParams.put("excludeRoleId", roleId); + page.setParams(requestParams); + return roleUserService.listPageUser(page); + } } diff --git a/service-role/src/main/java/ink/wgink/service/role/controller/route/RoleUserRouteController.java b/service-role/src/main/java/ink/wgink/service/role/controller/route/RoleUserRouteController.java index ea4270f9..85cc9b22 100644 --- a/service-role/src/main/java/ink/wgink/service/role/controller/route/RoleUserRouteController.java +++ b/service-role/src/main/java/ink/wgink/service/role/controller/route/RoleUserRouteController.java @@ -27,4 +27,9 @@ public class RoleUserRouteController { return new ModelAndView("role/user/list"); } + @GetMapping("save-exclude") + public ModelAndView saveExclude() { + return new ModelAndView("role/user/save-exclude"); + } + } 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 ff5c87c4..447eec62 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,7 +1,10 @@ package ink.wgink.service.role.service; import ink.wgink.interfaces.role.IRoleUserBaseService; +import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; +import ink.wgink.pojo.dtos.user.UserDTO; +import ink.wgink.pojo.result.SuccessResultList; import java.util.List; import java.util.Map; @@ -58,4 +61,20 @@ public interface IRoleUserService extends IRoleUserBaseService { * @return */ List listDepartmentUser(Map params); + + /** + * 用户列表 + * + * @param requestParams + * @return + */ + List listUser(Map requestParams); + + /** + * 用户分页列表 + * + * @param page + * @return + */ + SuccessResultList> listPageUser(ListPage page); } 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 f7bd8e88..2fa87ef0 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 @@ -119,6 +119,20 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser return roleUserDao.listDepartmentUser(params); } + @Override + public List listUser(Map requestParams) { + requestParams = requestParams == null ? getHashMap(0) : requestParams; + return roleUserDao.listUser(requestParams); + } + + @Override + public SuccessResultList> listPageUser(ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List userDTOs = listUser(page.getParams()); + PageInfo pageInfo = new PageInfo<>(userDTOs); + return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); + } + @Override public List listUserId(String roleId) { Map params = getHashMap(2); 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 4391f7c5..96224c55 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 @@ -4,6 +4,12 @@ + + + + + + CREATE TABLE IF NOT EXISTS `sys_role_user` ( @@ -124,6 +130,113 @@ t1.is_delete = 0 AND t1.user_username != 'admin' + + AND + t1.user_type = #{userType} + + + AND + t1.user_state = #{userState} + + + 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 + st1.user_id + FROM + sys_role_user st1 + WHERE + role_id = #{roleId} + ) + + + AND + t1.user_id IN ( + SELECT + user_id + FROM + sys_role_user st1 + WHERE + st1.role_id IN + + #{roleIds[${index}]} + + ) + + + AND + t1.user_id NOT IN ( + SELECT + st3.user_id + FROM + sys_role_user st3 + ) + + + AND + t1.user_id NOT IN ( + SELECT + user_id + FROM + sys_role_user st1 + WHERE + st1.role_id = #{excludeRoleId} + ) + + + AND + t1.user_id NOT IN ( + SELECT + user_id + FROM + sys_role_user st1 + WHERE + st1.role_id IN + + #{excludeRoleIds[${index}]} + + ) + + + + + - \ No newline at end of file diff --git a/service-role/src/main/resources/templates/role/user/list.html b/service-role/src/main/resources/templates/role/user/list.html index a2e36e6a..7c2139f5 100644 --- a/service-role/src/main/resources/templates/role/user/list.html +++ b/service-role/src/main/resources/templates/role/user/list.html @@ -96,30 +96,37 @@ return item.userEmail; } }, - {field:'userState', width:80, title: '状态', align:'center', + {field:'userType', width:90, title: '类型', sort: true, align:'center', + templet: function(item) { + if(item.userType == 1) { + return '系统用户'; + } else if(item.userType == 2) { + return '普通用户'; + } else if(item.userType == 3) { + return '公共用户'; + } + return '类型错误'; + } + }, + {field:'userState', width:80, title: '状态', sort: true, align:'center', templet: function(item) { var value; switch (item.userState) { case 1: - value = '冻结'; + value = '锁定'; break; - case 2: - value = '锁定'; + case -1: + value = '未审核'; + break; + case -2: + value = '审核不通过'; break; default: - value = '正常'; + value = '正常'; } return value; } }, - // {field:'roleName', width:200, title: '角色', align:'center', - // templet: function(item) { - // if(!item.roleName) { - // return '-'; - // } - // return item.roleName; - // } - // }, ] ], page: true, @@ -133,6 +140,8 @@ } }); } + initTable(); + // 重载表格 function reloadTable(currentPage) { table.reload('dataTable', { @@ -172,28 +181,6 @@ } }); } - // 初始化角色用户ID列表 - function initSelectUserIds() { - var layIndex; - top.restAjax.get(top.restAjax.path('api/role/user/listuserid/{roleId}', [roleId]), {}, null, function(code, data) { - var selectedUserIds = ''; - for(var i = 0, item; item = data[i++]; ) { - if('' != selectedUserIds) { - selectedUserIds += '_'; - } - selectedUserIds += item; - } - $('#selectedUserIds').val(selectedUserIds); - initTable(); - }, function(code, data) { - top.dialog.msg(data.msg); - }, function() { - layIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3}); - }, function() { - top.dialog.close(layIndex); - }); - } - initSelectUserIds(); // 事件 - 页面变化 $win.on('resize', function() { @@ -212,51 +199,16 @@ var checkStatus = table.checkStatus('dataTable'); var checkDatas = checkStatus.data; if(layEvent === 'saveEvent') { - top.dialog.dialogData.selectedUserIds = $('#selectedUserIds').val(); top.dialog.open({ - url: top.restAjax.path('route/department/user/select-user', []), - title: '选择用户', - width: '500px', + url: top.restAjax.path('route/role/user/save-exclude?roleId={roleId}', [roleId]), + title: '添加角色用户', + width: '800px', height: '500px', closeBtn: 0, onClose: function() { - top.dialog.dialogData.selectedDepartmentUsers = null; - var insertUsers = top.dialog.dialogData.saveDepartmentUsers; - var deleteUsers = top.dialog.dialogData.deleteDepartmentUsers; - - if(insertUsers && insertUsers.length > 0 || deleteUsers && deleteUsers.length > 0) { - var ids = []; - for (var i = 0, item; item = insertUsers[i++];) { - ids.push(item.userId); - } - top.dialog.msg(top.dataMessage.update, { - time: 0, - btn: [top.dataMessage.button.yes, top.dataMessage.button.no], - yes: function (index) { - top.dialog.close(index); - var loadLayerIndex; - top.restAjax.put(top.restAjax.path('api/role/user/update/{roleId}', [roleId]), { - saveIds: ids, - deleteIds: deleteUsers - }, null, function (code, data) { - top.dialog.msg(top.dataMessage.updated); - initSelectUserIds(); - }, function (code, data) { - top.dialog.msg(data.msg); - }, function () { - loadLayerIndex = top.dialog.msg(top.dataMessage.updating, { - icon: 16, - time: 0, - shade: 0.3 - }); - }, function () { - top.dialog.close(loadLayerIndex); - }); - }, - }); - } + reloadTable(); } - }) + }); } else if(layEvent === 'removeEvent') { if(checkDatas.length === 0) { top.dialog.msg(top.dataMessage.table.selectDelete); diff --git a/service-role/src/main/resources/templates/role/user/save-exclude.html b/service-role/src/main/resources/templates/role/user/save-exclude.html new file mode 100644 index 00000000..387ba0f7 --- /dev/null +++ b/service-role/src/main/resources/templates/role/user/save-exclude.html @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + +
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+ + +
+
+
+
+
+
+
+ + + + + \ No newline at end of file