修改人员选择:统一更新 -> 单独更新新增、删除
This commit is contained in:
parent
0a693df6de
commit
4815194d2d
@ -7,7 +7,7 @@ import ink.wgink.pojo.dtos.department.DepartmentUserDTO;
|
||||
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;
|
||||
import io.swagger.annotations.*;
|
||||
@ -43,8 +43,8 @@ public class DepartmentUserController extends DefaultBaseController {
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PutMapping("update/{departmentId}")
|
||||
public synchronized SuccessResult update(@PathVariable("departmentId") String departmentId,
|
||||
@RequestBody IdsVO idsVO) {
|
||||
departmentUserService.update(departmentId, idsVO.getIds());
|
||||
@RequestBody SaveAndDeleteIdsVO saveAndDeleteIdsVO) {
|
||||
departmentUserService.update(departmentId, saveAndDeleteIdsVO.getSaveIds(), saveAndDeleteIdsVO.getDeleteIds());
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
|
@ -61,9 +61,10 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService {
|
||||
* 更新用户
|
||||
*
|
||||
* @param departmentId 部门ID
|
||||
* @param userIds 用户ID
|
||||
* @param saveIds 新增ID
|
||||
* @param deleteIds 删除ID
|
||||
*/
|
||||
void update(String departmentId, List<String> userIds);
|
||||
void update(String departmentId, List<String> saveIds, List<String> deleteIds);
|
||||
|
||||
/**
|
||||
* 更新用户排序
|
||||
@ -74,7 +75,6 @@ public interface IDepartmentUserService extends IDepartmentUserBaseService {
|
||||
void updateSort(String departmentId, DepartmentUserSortVO departmentUserSortVO);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param departmentId
|
||||
* @param userIds
|
||||
* @return
|
||||
|
@ -175,7 +175,7 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart
|
||||
String newDepartmentId = saveReturnId(splitDepartmentInfoVO);
|
||||
departmentAdjustmentService.save(departmentId, departmentDTO.getDepartmentName(), newDepartmentId, splitDepartmentInfoVO.getDepartmentName(), DepartmentAdjustmentTypeEnum.SPLIT);
|
||||
if (!StringUtils.isBlank(userIds)) {
|
||||
departmentUserService.update(newDepartmentId, Arrays.asList(userIds.split("_")));
|
||||
departmentUserService.update(newDepartmentId, Arrays.asList(userIds.split("_")), new ArrayList<>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -97,37 +97,25 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(String departmentId, List<String> userIds) {
|
||||
if (userIds.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
public void update(String departmentId, List<String> saveUserIds, List<String> deleteUserIds) {
|
||||
DepartmentPO departmentPO = departmentService.getPO(departmentId);
|
||||
if (departmentPO == null) {
|
||||
throw new SearchException("部门不存在");
|
||||
}
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("departmentId", departmentId);
|
||||
List<String> existUserIds = departmentUserDao.listUserId(params);
|
||||
List<String> newUserIds = new ArrayList<>();
|
||||
for (String userId : userIds) {
|
||||
boolean isNewUser = true;
|
||||
for (String existUserId : existUserIds) {
|
||||
if (StringUtils.equals(userId, existUserId)) {
|
||||
isNewUser = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isNewUser) {
|
||||
if (deleteUserIds != null && !deleteUserIds.isEmpty()) {
|
||||
delete(departmentId, departmentPO.getDepartmentName(), deleteUserIds);
|
||||
}
|
||||
if (saveUserIds != null && !saveUserIds.isEmpty()) {
|
||||
Map<String, Object> params = getHashMap(4);
|
||||
params.put("departmentId", departmentId);
|
||||
for (String userId : saveUserIds) {
|
||||
params.put("userId", userId);
|
||||
departmentUserDao.save(params);
|
||||
newUserIds.add(userId);
|
||||
}
|
||||
}
|
||||
List<String> removeUserIds = new ArrayList<>();
|
||||
|
||||
departmentAdjustmentService.save(newUserIds, departmentId, departmentPO.getDepartmentName(), USER_DEPARTMENT_TYPE_JOIN);
|
||||
departmentAdjustmentService.save(saveUserIds, departmentId, departmentPO.getDepartmentName(), USER_DEPARTMENT_TYPE_JOIN);
|
||||
if (departmentUserSaveAfterHandler != null) {
|
||||
departmentUserSaveAfterHandler.handle(departmentId, userIds);
|
||||
departmentUserSaveAfterHandler.handle(departmentId, saveUserIds);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -213,10 +213,12 @@
|
||||
height: '500px',
|
||||
closeBtn: 0,
|
||||
onClose: function() {
|
||||
var selectedUsers = top.dialog.dialogData.selectedDepartmentUsers;
|
||||
if(selectedUsers != null && selectedUsers.length > 0) {
|
||||
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 = selectedUsers[i++];) {
|
||||
for (var i = 0, item; item = insertUsers[i++];) {
|
||||
ids.push(item.userId);
|
||||
}
|
||||
top.dialog.msg(top.dataMessage.update, {
|
||||
@ -226,7 +228,8 @@
|
||||
top.dialog.close(index);
|
||||
var loadLayerIndex;
|
||||
top.restAjax.put(top.restAjax.path('api/department/user/update/{departmentId}', [departmentId]), {
|
||||
ids: ids
|
||||
saveIds: ids,
|
||||
deleteIds: deleteUsers
|
||||
}, null, function (code, data) {
|
||||
top.dialog.msg(top.dataMessage.updated);
|
||||
initSelectUserIds();
|
||||
|
@ -109,11 +109,17 @@
|
||||
var selectedUserIds = top.dialog.dialogData.selectedUserIds;
|
||||
var selectDepartmentUserOldArray = [];
|
||||
var selectDepartmentUserArray = [];
|
||||
var selectDepartmentUserObject = {};
|
||||
var saveDepartmentUserObject = {};
|
||||
var deleteDepartmentUserObject = {};
|
||||
var selectRoleId = 0;
|
||||
var selectedParentId = 0;
|
||||
var selectedParentId = -1;
|
||||
var searchTimeout;
|
||||
var hasRoleService = [[${hasRoleService}]];
|
||||
var LAZY_GET_USER_COUNT = 500;
|
||||
top.dialog.dialogData.selectedDepartmentUsers = [];
|
||||
top.dialog.dialogData.saveDepartmentUsers = [];
|
||||
top.dialog.dialogData.deleteDepartmentUsers = [];
|
||||
|
||||
function closeBox() {
|
||||
top.dialog.closeBox();
|
||||
@ -293,20 +299,24 @@
|
||||
}
|
||||
// 初始化人员列表
|
||||
function initUsers(parentId) {
|
||||
if(selectedParentId == parentId) {
|
||||
return;
|
||||
}
|
||||
$('#userWrapper').empty();
|
||||
$('.layui-flow-more').remove();
|
||||
selectedParentId = parentId;
|
||||
initUserFlowLoad();
|
||||
}
|
||||
// 初始化选择的人员
|
||||
function initSelectedUsers(callback) {
|
||||
if(!selectedUserIds) {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
// 分页懒加载,数据量大(500为单位)
|
||||
function lazyPageInitSelectedUsers(allSelectedUserIdsArray, page, totalPage, callback) {
|
||||
var loadLayerIndex;
|
||||
var startIndex = (page - 1) * LAZY_GET_USER_COUNT;
|
||||
var endIndex = page * LAZY_GET_USER_COUNT;
|
||||
|
||||
var searchUserIds = allSelectedUserIdsArray.slice(startIndex, endIndex);
|
||||
var hasMore = page < totalPage;
|
||||
top.restAjax.post(top.restAjax.path('api/user/listbyids', []), {
|
||||
ids: selectedUserIds.split('\_')
|
||||
ids: searchUserIds
|
||||
}, null, function(code, data) {
|
||||
for(var i = 0, item; item = data[i++]; ) {
|
||||
selectUser(item.userId, item.userName, item.userUsername);
|
||||
@ -316,15 +326,25 @@
|
||||
username: item.userUsername
|
||||
});
|
||||
}
|
||||
if(hasMore) {
|
||||
setTimeout(function() {
|
||||
lazyPageInitSelectedUsers(allSelectedUserIdsArray, page + 1, totalPage, callback);
|
||||
}, 100);
|
||||
}
|
||||
callback();
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
});
|
||||
}
|
||||
// 初始化选择的人员
|
||||
function initSelectedUsers(callback) {
|
||||
if(!selectedUserIds) {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
var selectedUserIdsArray = selectedUserIds.split('\_');
|
||||
lazyPageInitSelectedUsers(selectedUserIdsArray, 1, Math.ceil(selectedUserIdsArray.length / LAZY_GET_USER_COUNT), callback);
|
||||
}
|
||||
initFrame();
|
||||
if(hasRoleService) {
|
||||
initRoleTree();
|
||||
@ -352,37 +372,62 @@
|
||||
// 人员是否已经选择
|
||||
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;
|
||||
}
|
||||
|
||||
// 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('<a id="selected_user_'+ userId +'" href="javascript:void(0);" class="layui-btn layui-btn-xs">'+ userName +' <i class="fa fa-close" lay-click-removeuser data-userid="'+ userId +'"></i></a>');
|
||||
}
|
||||
// 点击用户
|
||||
function clickUser(userId, userName, username, isOnlySelect) {
|
||||
if(!isUserSelected(userId)) {
|
||||
$('#user_'+ userId).addClass('user-selected');
|
||||
selectDepartmentUserArray.push({
|
||||
userId: userId,
|
||||
userName: userName,
|
||||
username: username
|
||||
});
|
||||
$('#selectUsers').append('<a id="selected_user_'+ userId +'" href="javascript:void(0);" class="layui-btn layui-btn-xs">'+ userName +' <i class="fa fa-close" lay-click-removeuser data-userid="'+ userId +'"></i></a>');
|
||||
selectUser(userId, userName, username);
|
||||
$('#selected_user_'+ userId).focus();
|
||||
} else {
|
||||
if(!isOnlySelect) {
|
||||
@ -392,7 +437,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;
|
||||
@ -401,7 +446,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() {
|
||||
@ -417,7 +462,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();
|
||||
});
|
||||
|
@ -7,7 +7,7 @@ import ink.wgink.pojo.dtos.group.GroupUserDTO;
|
||||
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.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -42,8 +42,8 @@ public class GroupUserController extends DefaultBaseController {
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PutMapping("update/{groupId}")
|
||||
public synchronized SuccessResult update(@PathVariable("groupId") String groupId,
|
||||
@RequestBody IdsVO idsVO) {
|
||||
groupUserService.update(groupId, idsVO.getIds());
|
||||
@RequestBody SaveAndDeleteIdsVO saveAndDeleteIdsVO) {
|
||||
groupUserService.update(groupId, saveAndDeleteIdsVO.getSaveIds(), saveAndDeleteIdsVO.getDeleteIds());
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
|
@ -19,10 +19,11 @@ public interface IGroupUserService extends IGroupUserBaseService {
|
||||
/**
|
||||
* 更新用户组人员列表
|
||||
*
|
||||
* @param groupId 用户组ID
|
||||
* @param userIds 用户ID列表
|
||||
* @param groupId 用户组ID
|
||||
* @param saveUserIds 保存用户ID列表
|
||||
* @param deleteUserIds 删除用户ID列表
|
||||
*/
|
||||
void update(String groupId, List<String> userIds);
|
||||
void update(String groupId, List<String> saveUserIds, List<String> deleteUserIds);
|
||||
|
||||
/**
|
||||
* 用户组人员删除
|
||||
|
@ -42,12 +42,14 @@ public class GroupUserServiceImpl extends DefaultBaseService implements IGroupUs
|
||||
private IGroupService groupService;
|
||||
|
||||
@Override
|
||||
public void update(String groupId, List<String> userIds) {
|
||||
delete(groupId, userIds);
|
||||
if (!userIds.isEmpty()) {
|
||||
public void update(String groupId, List<String> saveUserIds, List<String> deleteUserIds) {
|
||||
if (deleteUserIds != null && !deleteUserIds.isEmpty()) {
|
||||
delete(groupId, deleteUserIds);
|
||||
}
|
||||
if (saveUserIds != null && !saveUserIds.isEmpty()) {
|
||||
Map<String, Object> params = getHashMap(4);
|
||||
params.put("groupId", groupId);
|
||||
for (String userId : userIds) {
|
||||
for (String userId : saveUserIds) {
|
||||
params.put("userId", userId);
|
||||
groupUserDao.save(params);
|
||||
}
|
||||
|
@ -212,10 +212,12 @@
|
||||
height: '500px',
|
||||
closeBtn: 0,
|
||||
onClose: function() {
|
||||
var selectedUsers = top.dialog.dialogData.selectedDepartmentUsers;
|
||||
if(selectedUsers != null && selectedUsers.length > 0) {
|
||||
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 = selectedUsers[i++];) {
|
||||
for (var i = 0, item; item = insertUsers[i++];) {
|
||||
ids.push(item.userId);
|
||||
}
|
||||
top.dialog.msg(top.dataMessage.update, {
|
||||
@ -225,7 +227,8 @@
|
||||
top.dialog.close(index);
|
||||
var loadLayerIndex;
|
||||
top.restAjax.put(top.restAjax.path('api/group/user/update/{groupId}', [groupId]), {
|
||||
ids: ids
|
||||
saveIds: ids,
|
||||
deleteIds: deleteUsers
|
||||
}, null, function (code, data) {
|
||||
top.dialog.msg(top.dataMessage.updated);
|
||||
initSelectUserIds();
|
||||
|
@ -7,7 +7,7 @@ import ink.wgink.pojo.dtos.position.PositionUserDTO;
|
||||
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.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -42,8 +42,8 @@ public class PositionUserController extends DefaultBaseController {
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PutMapping("update/{positionId}")
|
||||
public synchronized SuccessResult update(@PathVariable("positionId") String positionId,
|
||||
@RequestBody IdsVO idsVO) {
|
||||
positionUserService.update(positionId, idsVO.getIds());
|
||||
@RequestBody SaveAndDeleteIdsVO saveAndDeleteIdsVO) {
|
||||
positionUserService.update(positionId, saveAndDeleteIdsVO.getSaveIds(), saveAndDeleteIdsVO.getDeleteIds());
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
|
@ -19,10 +19,11 @@ public interface IPositionUserService extends IPositionUserBaseService {
|
||||
/**
|
||||
* 更新职位人员列表
|
||||
*
|
||||
* @param positionId 职位ID
|
||||
* @param userIds 用户ID列表
|
||||
* @param positionId 职位ID
|
||||
* @param saveUserIds 新增用户ID列表
|
||||
* @param deleteUserIds 删除用户ID列表
|
||||
*/
|
||||
void update(String positionId, List<String> userIds);
|
||||
void update(String positionId, List<String> saveUserIds, List<String> deleteUserIds);
|
||||
|
||||
/**
|
||||
* 职位人员删除
|
||||
|
@ -42,12 +42,14 @@ public class PositionUserServiceImpl extends DefaultBaseService implements IPosi
|
||||
private IPositionService positionService;
|
||||
|
||||
@Override
|
||||
public void update(String positionId, List<String> userIds) {
|
||||
delete(positionId, userIds);
|
||||
if (!userIds.isEmpty()) {
|
||||
public void update(String positionId, List<String> saveUserIds, List<String> deleteUserIds) {
|
||||
if (deleteUserIds != null && !deleteUserIds.isEmpty()) {
|
||||
delete(positionId, deleteUserIds);
|
||||
}
|
||||
if (saveUserIds != null && !saveUserIds.isEmpty()) {
|
||||
Map<String, Object> params = getHashMap(4);
|
||||
params.put("positionId", positionId);
|
||||
for (String userId : userIds) {
|
||||
for (String userId : saveUserIds) {
|
||||
params.put("userId", userId);
|
||||
positionUserDao.save(params);
|
||||
}
|
||||
|
@ -212,10 +212,13 @@
|
||||
height: '500px',
|
||||
closeBtn: 0,
|
||||
onClose: function() {
|
||||
var selectedUsers = top.dialog.dialogData.selectedDepartmentUsers;
|
||||
if(selectedUsers != null && selectedUsers.length > 0) {
|
||||
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 = selectedUsers[i++];) {
|
||||
for (var i = 0, item; item = insertUsers[i++];) {
|
||||
ids.push(item.userId);
|
||||
}
|
||||
top.dialog.msg(top.dataMessage.update, {
|
||||
@ -225,7 +228,8 @@
|
||||
top.dialog.close(index);
|
||||
var loadLayerIndex;
|
||||
top.restAjax.put(top.restAjax.path('api/position/user/update/{positionId}', [positionId]), {
|
||||
ids: ids
|
||||
saveIds: ids,
|
||||
deleteIds: deleteUsers
|
||||
}, null, function (code, data) {
|
||||
top.dialog.msg(top.dataMessage.updated);
|
||||
$('#selectedUserIds').val(ids.toString().replaceAll(',', '\_'));
|
||||
|
@ -4,10 +4,11 @@ import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.pojo.ListPage;
|
||||
import ink.wgink.pojo.dtos.role.RoleUserDTO;
|
||||
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.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -31,7 +32,7 @@ import java.util.Map;
|
||||
@RestController
|
||||
@RequestMapping(ISystemConstant.API_PREFIX + "/role/user")
|
||||
public class RoleUserController extends DefaultBaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private IRoleUserService roleUserService;
|
||||
|
||||
@ -42,8 +43,8 @@ public class RoleUserController extends DefaultBaseController {
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PutMapping("update/{roleId}")
|
||||
public synchronized SuccessResult update(@PathVariable("roleId") String roleId,
|
||||
@RequestBody IdsVO idsVO) {
|
||||
roleUserService.update(roleId, idsVO.getIds());
|
||||
@RequestBody SaveAndDeleteIdsVO saveAndDeleteIdsVO) {
|
||||
roleUserService.update(roleId, saveAndDeleteIdsVO.getSaveIds(), saveAndDeleteIdsVO.getDeleteIds());
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@ -85,4 +86,25 @@ public class RoleUserController extends DefaultBaseController {
|
||||
return roleUserService.listUserId(roleId);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "用户列表", notes = "通过角色ID获取用户列表接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "roleId", value = "用户角色ID", paramType = "path"),
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("list-user/role-id/{roleId}")
|
||||
public List<UserDTO> listUserByRoleId(@PathVariable("roleId") String roleId) {
|
||||
return roleUserService.listUserByRoleId(roleId);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "用户分页列表", notes = "通过角色ID获取用户分页列表接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "roleId", value = "用户角色ID", paramType = "path"),
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("listpage-user/role-id/{roleId}")
|
||||
public SuccessResultList<List<UserDTO>> listPageUserByRoleId(@PathVariable("roleId") String roleId, ListPage page) {
|
||||
return roleUserService.listPageUserByRoleId(roleId, page);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import ink.wgink.exceptions.ParamsException;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.pojo.ListPage;
|
||||
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.ErrorResult;
|
||||
import ink.wgink.pojo.result.SuccessResultList;
|
||||
@ -93,4 +94,24 @@ public class RoleUserResourceController extends DefaultBaseController {
|
||||
return roleUserService.listUserIdByRoleIdAndUserIds(roleId, idsVO.getIds());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "用户列表", notes = "通过角色ID获取用户列表接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "roleId", value = "用户角色ID", paramType = "path"),
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("list-user/role-id/{roleId}")
|
||||
public List<UserDTO> listUserByRoleId(@PathVariable("roleId") String roleId) {
|
||||
return roleUserService.listUserByRoleId(roleId);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "用户分页列表", notes = "通过角色ID获取用户分页列表接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "roleId", value = "用户角色ID", paramType = "path"),
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("listpage-user/role-id/{roleId}")
|
||||
public SuccessResultList<List<UserDTO>> listPageUserByRoleId(@PathVariable("roleId") String roleId, ListPage page) {
|
||||
return roleUserService.listPageUserByRoleId(roleId, page);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
@ -49,6 +50,7 @@ public interface IRoleUserDao extends IInitBaseTable {
|
||||
|
||||
/**
|
||||
* 角色列表
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
* @throws SearchException
|
||||
@ -64,4 +66,12 @@ public interface IRoleUserDao extends IInitBaseTable {
|
||||
*/
|
||||
List<String> listGroupUserId(Map<String, Object> params) throws SearchException;
|
||||
|
||||
/**
|
||||
* 用户列表
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
* @throws SearchException
|
||||
*/
|
||||
List<UserDTO> listUser(Map<String, Object> params) throws SearchException;
|
||||
}
|
||||
|
@ -19,17 +19,18 @@ public interface IRoleUserService extends IRoleUserBaseService {
|
||||
/**
|
||||
* 更新用户组人员列表
|
||||
*
|
||||
* @param groupId 用户组ID
|
||||
* @param userIds 用户ID列表
|
||||
* @param roleId 角色ID
|
||||
* @param saveIds 新增ID列表
|
||||
* @param deleteIds 删除ID列表
|
||||
*/
|
||||
void update(String groupId, List<String> userIds);
|
||||
void update(String roleId, List<String> saveIds, List<String> deleteIds);
|
||||
|
||||
/**
|
||||
* 用户组人员删除
|
||||
*
|
||||
* @param groupId 用户组ID
|
||||
* @param roleId 用户组ID
|
||||
* @param userIds 用户ID列表
|
||||
*/
|
||||
void delete(String groupId, List<String> userIds);
|
||||
void delete(String roleId, List<String> userIds);
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
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.interfaces.role.IRoleUserDeleteAfterHandler;
|
||||
@ -48,18 +50,20 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser
|
||||
private IRoleUserDeleteAfterHandler roleUserDeleteAfterHandler;
|
||||
|
||||
@Override
|
||||
public void update(String roleId, List<String> userIds) {
|
||||
delete(roleId, userIds);
|
||||
if (!userIds.isEmpty()) {
|
||||
public void update(String roleId, List<String> saveUserIds, List<String> deleteUserIds) {
|
||||
if (deleteUserIds != null && !deleteUserIds.isEmpty()) {
|
||||
delete(roleId, deleteUserIds);
|
||||
}
|
||||
if (saveUserIds != null && !saveUserIds.isEmpty()) {
|
||||
Map<String, Object> params = getHashMap(4);
|
||||
params.put("roleId", roleId);
|
||||
for (String userId : userIds) {
|
||||
for (String userId : saveUserIds) {
|
||||
params.put("userId", userId);
|
||||
roleUserDao.save(params);
|
||||
}
|
||||
}
|
||||
if (roleUserSaveAfterHandler != null) {
|
||||
roleUserSaveAfterHandler.handle(roleId, userIds);
|
||||
roleUserSaveAfterHandler.handle(roleId, saveUserIds);
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,6 +152,20 @@ public class RoleUserServiceImpl extends DefaultBaseService implements IRoleUser
|
||||
return roleUserDao.listUserId(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserDTO> listUserByRoleId(String roleId) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("roleId", roleId);
|
||||
return roleUserDao.listUser(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResultList<List<UserDTO>> listPageUserByRoleId(String roleId, ListPage page) {
|
||||
PageHelper.startPage(page.getPage(), page.getRows());
|
||||
List<UserDTO> userDTOs = listUserByRoleId(roleId);
|
||||
PageInfo<UserDTO> pageInfo = new PageInfo<>(userDTOs);
|
||||
return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
|
||||
}
|
||||
|
||||
private List<String> listGroupUserId(Map<String, Object> params) {
|
||||
return roleUserDao.listGroupUserId(params);
|
||||
|
@ -108,5 +108,28 @@
|
||||
user_id
|
||||
</select>
|
||||
|
||||
<!-- 用户列表 -->
|
||||
<select id="listUser" parameterType="map" resultMap="ink.wgink.service.user.dao.IUserDao.userDTO" useCache="true">
|
||||
SELECT
|
||||
user_id,
|
||||
user_username,
|
||||
user_name,
|
||||
user_phone,
|
||||
user_email,
|
||||
user_type,
|
||||
user_state
|
||||
FROM
|
||||
sys_user t1
|
||||
WHERE
|
||||
user_id IN (
|
||||
SELECT
|
||||
user_id
|
||||
FROM
|
||||
sys_role_user st1
|
||||
WHERE
|
||||
role_id = #{roleId}
|
||||
)
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
@ -220,10 +220,13 @@
|
||||
height: '500px',
|
||||
closeBtn: 0,
|
||||
onClose: function() {
|
||||
var selectedUsers = top.dialog.dialogData.selectedDepartmentUsers;
|
||||
if(selectedUsers != null && selectedUsers.length > 0) {
|
||||
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 = selectedUsers[i++];) {
|
||||
for (var i = 0, item; item = insertUsers[i++];) {
|
||||
ids.push(item.userId);
|
||||
}
|
||||
top.dialog.msg(top.dataMessage.update, {
|
||||
@ -233,7 +236,8 @@
|
||||
top.dialog.close(index);
|
||||
var loadLayerIndex;
|
||||
top.restAjax.put(top.restAjax.path('api/role/user/update/{roleId}', [roleId]), {
|
||||
ids: ids
|
||||
saveIds: ids,
|
||||
deleteIds: deleteUsers
|
||||
}, null, function (code, data) {
|
||||
top.dialog.msg(top.dataMessage.updated);
|
||||
initSelectUserIds();
|
||||
|
Loading…
Reference in New Issue
Block a user