From 88a2cf3d70ea38797b9c93b9c026bf3db394274e Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Fri, 1 Apr 2022 21:58:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=8E=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E6=97=B6=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DepartmentUserServiceImpl.java | 25 +++++++++--- .../role/service/IRoleUserService.java | 18 ++++++++- .../service/impl/RoleUserServiceImpl.java | 39 +++++++++++++++++-- 3 files changed, 72 insertions(+), 10 deletions(-) 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 ffc5e629..4ffa0300 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 @@ -55,11 +55,26 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe @Override public void save(String departmentId, String departmentName, List departmentUserIds) { - Map params = getHashMap(2); - for (String departmentUserId : departmentUserIds) { - params.put("userId", departmentUserId); - params.put("departmentId", departmentId); - departmentUserDao.save(params); + List existUserIds = listUserId(departmentId, departmentUserIds); + Map params = getHashMap(4); + for (int i = 0; i < departmentUserIds.size(); i++) { + String saveUserId = departmentUserIds.get(i); + boolean isExist = false; + for (String existUserId : existUserIds) { + if (StringUtils.equals(saveUserId, existUserId)) { + isExist = true; + existUserIds.remove(existUserId); + break; + } + } + if (isExist) { + params.put("userId", saveUserId); + params.put("departmentId", departmentId); + departmentUserDao.save(params); + } else { + departmentUserIds.remove(i); + i--; + } } departmentAdjustmentService.save(departmentUserIds, departmentId, departmentName, USER_DEPARTMENT_TYPE_JOIN); if (departmentUserSaveAfterHandler != null) { 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 68103b0c..ff5c87c4 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 @@ -18,6 +18,22 @@ import java.util.Map; **/ public interface IRoleUserService extends IRoleUserBaseService { + /** + * 保存角色与用户 + * + * @param roleId 角色ID + * @param saveUserIds 用户ID列表 + */ + void save(String roleId, List saveUserIds); + + /** + * 保存角色和用户 + * + * @param roleId 角色ID + * @param saveUserId 用户ID + */ + void save(String roleId, String saveUserId); + /** * 更新用户组人员列表 * @@ -25,7 +41,7 @@ public interface IRoleUserService extends IRoleUserBaseService { * @param saveIds 新增ID列表 * @param deleteIds 删除ID列表 */ - void update(String roleId, List saveIds, List deleteIds); + void update(String roleId, List saveUserIds, List deleteIds); /** * 用户组人员删除 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 d518ddfd..fdb1b1fe 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 @@ -22,10 +22,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * When you feel like quitting. Think about why you started @@ -53,6 +50,40 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser @Autowired(required = false) private IRoleUserDeleteAfterHandler roleUserDeleteAfterHandler; + @Override + public void save(String roleId, List saveUserIds) { + // 判断是否已经添加 + List existUserIds = listUserIdByRoleIdAndUserIds(roleId, 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("roleId", roleId); + params.put("userId", saveUserId); + roleUserDao.save(params); + } else { + saveUserIds.remove(i); + i--; + } + } + if (roleUserSaveAfterHandler != null) { + roleUserSaveAfterHandler.handle(roleId, saveUserIds); + } + } + + @Override + public void save(String roleId, String saveUserId) { + save(roleId, Arrays.asList(saveUserId)); + } + @Override public void update(String roleId, List saveUserIds, List deleteUserIds) { if (deleteUserIds != null && !deleteUserIds.isEmpty()) {