调整与用户绑定时的逻辑

This commit is contained in:
wanggeng 2022-04-01 21:58:47 +08:00
parent 496b0b2c00
commit 88a2cf3d70
3 changed files with 72 additions and 10 deletions

View File

@ -55,11 +55,26 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe
@Override
public void save(String departmentId, String departmentName, List<String> departmentUserIds) {
Map<String, Object> params = getHashMap(2);
for (String departmentUserId : departmentUserIds) {
params.put("userId", departmentUserId);
params.put("departmentId", departmentId);
departmentUserDao.save(params);
List<String> existUserIds = listUserId(departmentId, departmentUserIds);
Map<String, Object> 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) {

View File

@ -18,6 +18,22 @@ import java.util.Map;
**/
public interface IRoleUserService extends IRoleUserBaseService {
/**
* 保存角色与用户
*
* @param roleId 角色ID
* @param saveUserIds 用户ID列表
*/
void save(String roleId, List<String> 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<String> saveIds, List<String> deleteIds);
void update(String roleId, List<String> saveUserIds, List<String> deleteIds);
/**
* 用户组人员删除

View File

@ -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<String> saveUserIds) {
// 判断是否已经添加
List<String> existUserIds = listUserIdByRoleIdAndUserIds(roleId, saveUserIds);
Map<String, Object> 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<String> saveUserIds, List<String> deleteUserIds) {
if (deleteUserIds != null && !deleteUserIds.isEmpty()) {