From 64d42f69ecaba19f2a9a949c9ff557b71426e012 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Wed, 9 Feb 2022 10:06:19 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=96=B0=E5=A2=9E=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=202.=20=E9=80=89=E6=8B=A9=E7=94=A8=E6=88=B7=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E3=80=81=E5=88=A0=E9=99=A4=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remote/role/IRoleUserRemoteService.java | 7 ++ .../role/impl/RoleUserServiceImpl.java | 11 ++ .../department/user/select-user.html | 111 ++++++++++++++---- 3 files changed, 103 insertions(+), 26 deletions(-) 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 cf1060fa..8c50b1f0 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 @@ -5,6 +5,7 @@ import ink.wgink.annotation.rpc.rest.method.RemoteGetMethod; import ink.wgink.annotation.rpc.rest.method.RemotePostMethod; import ink.wgink.annotation.rpc.rest.params.*; 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.pojo.vos.IdsVO; @@ -36,4 +37,10 @@ public interface IRoleUserRemoteService { @RemotePostMethod("/list-user-id/role-id/{roleId}/user-ids") List listUserIdByRoleIdAndUserIds(@RemoteServerParams String userCenter, @RemotePathParams("roleId") String roleId, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + + @RemoteGetMethod("/list-user/role-id/{roleId}") + List listUserByRoleId(@RemoteServerParams String userCenter, @RemotePathParams("roleId") String roleId, @RemoteQueryParams("access_token") String accessToken); + + @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); } 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 1683fb0e..054e1794 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 @@ -7,6 +7,7 @@ import ink.wgink.module.oauth2.manager.OAuth2ClientTokenManager; import ink.wgink.pojo.ListPage; 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.pojo.vos.IdsVO; @@ -78,4 +79,14 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser idsVO.setIds(userIds); return roleUserRemoteService.listUserIdByRoleIdAndUserIds(apiPathProperties.getUserCenter(), roleId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); } + + @Override + public List listUserByRoleId(String roleId) { + return roleUserRemoteService.listUserByRoleId(apiPathProperties.getUserCenter(), roleId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken()); + } + + @Override + public SuccessResultList> listPageUserByRoleId(String roleId, ListPage page) { + return roleUserRemoteService.listPageUserByRoleId(apiPathProperties.getUserCenter(), roleId, OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), page.getPage(), page.getRows(), page.getParams()); + } } diff --git a/login-oauth2-client/src/main/resources/templates/department/user/select-user.html b/login-oauth2-client/src/main/resources/templates/department/user/select-user.html index ec4c3a02..bc146585 100644 --- a/login-oauth2-client/src/main/resources/templates/department/user/select-user.html +++ b/login-oauth2-client/src/main/resources/templates/department/user/select-user.html @@ -70,9 +70,13 @@ var selectedUserIds = top.dialog.dialogData.selectedUserIds; var selectDepartmentUserOldArray = []; var selectDepartmentUserArray = []; + var selectDepartmentUserObject = {}; + var deleteDepartmentUserObject = {}; var selectedParentId = 0; var searchTimeout; top.dialog.dialogData.selectedDepartmentUsers = []; + top.dialog.dialogData.saveDepartmentUsers = []; + top.dialog.dialogData.deleteDepartmentUsers = []; function closeBox() { top.dialog.closeBox(); @@ -231,7 +235,7 @@ ids: selectedUserIds.split('\_') }, null, function(code, data) { for(var i = 0, item; item = data[i++]; ) { - selectUser(item.userId, item.userName, item.userUsername); + clickUser(item.userId, item.userName, item.userUsername); selectDepartmentUserOldArray.push({ userId: item.userId, userName: item.userName, @@ -271,37 +275,65 @@ // 人员是否已经选择 function isUserSelected(userId) { var isSelected = false; - for(var i = 0, item; item = selectDepartmentUserArray[i]; i++) { - if(item.userId == userId) { - isSelected = true; - break; - } + var obj = selectDepartmentUserObject[userId]; + if(obj) { + isSelected = true; } + + // var isSelected = false; + // for(var i = 0, item; item = selectDepartmentUserArray[i]; i++) { + // if(item.userId == userId) { + // isSelected = true; + // break; + // } + // } return isSelected; } // 删除已经选择的人员 function removeSelectedUser(userId) { - for(var i = 0, item; item = selectDepartmentUserArray[i]; i++) { - if(item.userId == userId) { - selectDepartmentUserArray.splice(i, 1); - var selectedUserDom = $('#selected_user_'+ userId); - selectedUserDom.focus(); - selectedUserDom.remove(); - $('#user_'+ userId).removeClass('user-selected'); - break; - } - } + delete selectDepartmentUserObject[userId]; + var selectedUserDom = $('#selected_user_'+ userId); + selectedUserDom.focus(); + selectedUserDom.remove(); + $('#user_'+ userId).removeClass('user-selected'); + + deleteDepartmentUserObject[userId] = userId; + + // for(var i = 0, item; item = selectDepartmentUserArray[i]; i++) { + // if(item.userId == userId) { + // selectDepartmentUserArray.splice(i, 1); + // var selectedUserDom = $('#selected_user_'+ userId); + // selectedUserDom.focus(); + // selectedUserDom.remove(); + // $('#user_'+ userId).removeClass('user-selected'); + // break; + // } + // } } + // 选择人员 - function selectUser(userId, userName, username, isOnlySelect) { + function selectUser(userId, userName, username) { + $('#user_'+ userId).addClass('user-selected'); + selectDepartmentUserObject[userId] = { + userId: userId, + userName: userName, + username: username + } + + delete deleteDepartmentUserObject[userId]; + + // selectDepartmentUserArray.push({ + // userId: userId, + // userName: userName, + // username: username + // }); + $('#selectUsers').append(''+ userName +' '); + } + + // 点击用户 + function clickUser(userId, userName, username, isOnlySelect) { if(!isUserSelected(userId)) { - $('#user_'+ userId).addClass('user-selected'); - selectDepartmentUserArray.push({ - userId: userId, - userName: userName, - username: username - }); - $('#selectUsers').append(''+ userName +' '); + selectUser(userId, userName, username); $('#selected_user_'+ userId).focus(); } else { if(!isOnlySelect) { @@ -311,7 +343,7 @@ } $(document.body).on('click', '*[lay-click-user]', null, function() { var data = this.dataset; - selectUser(data.userid, data.username, data.userUsername); + clickUser(data.userid, data.username, data.userUsername); }); $(document.body).on('click', '*[lay-click-removeuser]', null, function() { var data = this.dataset; @@ -320,7 +352,7 @@ $(document.body).on('click', '*[lay-click-select-all-user]', null, function() { $('#userWrapper').children().each(function() { var data = this.dataset; - selectUser(data.userid, data.username, data.userUsername, true); + clickUser(data.userid, data.username, data.userUsername, true); }); }); $(document.body).on('click', '*[lay-click-clear-all-user]', null, function() { @@ -336,7 +368,34 @@ closeBox(); }); $('.confirm').on('click', function() { + for(var key in selectDepartmentUserObject) { + selectDepartmentUserArray.push(selectDepartmentUserObject[key]); + } top.dialog.dialogData.selectedDepartmentUsers = selectDepartmentUserArray; + + // 删除的用户 + var deleteDepartmentUsersArray = []; + for(var key in deleteDepartmentUserObject) { + deleteDepartmentUsersArray.push(key); + } + top.dialog.dialogData.deleteDepartmentUsers = deleteDepartmentUsersArray; + + // 新增的用户 + var saveDepartmentUserArray = []; + for(var key in selectDepartmentUserObject) { + var exist = false; + for(var i = 0, item; item = selectDepartmentUserOldArray[i++];) { + if(key == item.userId) { + exist = true; + break; + } + } + if(!exist) { + saveDepartmentUserArray.push(selectDepartmentUserObject[key]); + } + } + top.dialog.dialogData.saveDepartmentUsers = saveDepartmentUserArray; + top.dialog.dialogData.selectedUserIds = null; closeBox(); });