diff --git a/service-core/src/main/java/ink/wgink/service/core/service/manage/impl/CoreManageServiceImpl.java b/service-core/src/main/java/ink/wgink/service/core/service/manage/impl/CoreManageServiceImpl.java index caaa28d9..ee1fb63a 100644 --- a/service-core/src/main/java/ink/wgink/service/core/service/manage/impl/CoreManageServiceImpl.java +++ b/service-core/src/main/java/ink/wgink/service/core/service/manage/impl/CoreManageServiceImpl.java @@ -23,7 +23,9 @@ import ink.wgink.service.group.service.IGroupUserService; import ink.wgink.service.position.service.IPositionUserService; import ink.wgink.service.role.service.IRoleUserService; import ink.wgink.service.user.service.IUserService; +import ink.wgink.util.ArrayListUtil; import ink.wgink.util.thread.CachedThreadPoolUtil; +import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -113,9 +115,58 @@ public class CoreManageServiceImpl extends DefaultBaseService implements ICoreMa PageHelper.startPage(page.getPage(), page.getRows()); List userDTOs = listUser(page.getParams()); PageInfo pageInfo = new PageInfo<>(userDTOs); + setUserDetail(userDTOs); return new SuccessResultList<>(userDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); } + private void setUserDetail(List userDTOS) { + List userIds = ArrayListUtil.listBeanStringIdValue(userDTOS, "userId", UserDTO.class); + if (userIds.isEmpty()) { + return; + } + List departmentPOS = departmentUserService.listDepartmentPOByUserIds(userIds); + List rolePOS = roleUserService.listRolePOByUserIds(userIds); + List positionPOS = positionUserService.listPositionPOByUserIds(userIds); + List groupPOS = groupUserService.listGroupPOByUserIds(userIds); + userDTOS.forEach(userDTO -> { + List departmentIds = new ArrayList<>(); + List departmentNames = new ArrayList<>(); + departmentPOS.forEach(departmentPO -> { + departmentIds.add(departmentPO.getDepartmentId()); + departmentNames.add(departmentPO.getDepartmentName()); + }); + userDTO.setDepartmentIds(StringUtils.join(departmentIds, ",")); + userDTO.setDepartmentNames(StringUtils.join(departmentNames, ",")); + + List roleIds = new ArrayList<>(); + List roleNames = new ArrayList<>(); + rolePOS.forEach(rolePO -> { + roleIds.add(rolePO.getRoleId()); + roleNames.add(rolePO.getRoleName()); + }); + userDTO.setRoleIds(StringUtils.join(roleIds, ",")); + userDTO.setRoleNames(StringUtils.join(roleNames, ",")); + + List positionIds = new ArrayList<>(); + List positionNames = new ArrayList<>(); + positionPOS.forEach(positionPO -> { + positionIds.add(positionPO.getPositionId()); + positionNames.add(positionPO.getPositionName()); + }); + userDTO.setPositionIds(StringUtils.join(positionIds, ",")); + userDTO.setPositionNames(StringUtils.join(positionNames, ",")); + + List groupIds = new ArrayList<>(); + List groupNames = new ArrayList<>(); + groupPOS.forEach(groupPO -> { + groupIds.add(groupPO.getGroupId()); + groupNames.add(groupPO.getGroupName()); + }); + userDTO.setGroupIds(StringUtils.join(groupIds, ",")); + userDTO.setGroupNames(StringUtils.join(groupNames, ",")); + }); + } + /** * 设置部门导航 * diff --git a/service-core/src/main/resources/mybatis/mapper/core-manage-mapper.xml b/service-core/src/main/resources/mybatis/mapper/core-manage-mapper.xml index 446a3414..9677e4ea 100644 --- a/service-core/src/main/resources/mybatis/mapper/core-manage-mapper.xml +++ b/service-core/src/main/resources/mybatis/mapper/core-manage-mapper.xml @@ -54,6 +54,10 @@ AND t1.user_type != #{excludeUserType} + + AND + t1.user_id NOT IN (SELECT st1.user_id FROM sys_department_user st1) + AND @@ -106,6 +110,10 @@ ) + + AND + t1.user_id NOT IN (SELECT st2.user_id FROM sys_role_user st2) + AND t1.user_id IN ( @@ -132,6 +140,10 @@ ) + + AND + t1.user_id NOT IN (SELECT st3.user_id FROM sys_position_user st3) + AND t1.user_id IN ( @@ -158,6 +170,10 @@ ) + + AND + t1.user_id NOT IN (SELECT st4.user_id FROM sys_group_user st4) + AND t1.user_id IN ( diff --git a/service-core/src/main/resources/static/assets/js/core/manage/department-user.js b/service-core/src/main/resources/static/assets/js/core/manage/department-user.js index 30c71b3d..91e077fc 100644 --- a/service-core/src/main/resources/static/assets/js/core/manage/department-user.js +++ b/service-core/src/main/resources/static/assets/js/core/manage/department-user.js @@ -10,7 +10,7 @@ function closeBox() { * @param $ * @param layuiInputTree */ -function initMultiSelectInputTree($, layuiInputTree) { +function initMultiSelectInputTree($, treeselect) { /** * 设置选择数据 * @param ids @@ -32,112 +32,129 @@ function initMultiSelectInputTree($, layuiInputTree) { // 组织部门选择 function initDepartmentSelect() { - layuiInputTree.initMultiSelect({ - id: 'departmentNames', + treeselect.init({ + isSingle: false, + name: 'departmentIds', + explain: '组织部门', url: 'api/department/listztree', - checkboxType: {Y: '', N: ''}, - getSelectedDatas: function () { - var selectedDepartments = [] - setSelectedData(selectedDepartments, $('#departmentIds').val(), $('#departmentNames').val()); - return selectedDepartments; + idsUrl: 'api/department/list/ids', + key: { + id: 'id', + name: 'name', + title: 'title', + pId: 'pId', + checked: 'checked', + children: 'children', + isParent: 'isParent', + isHidden: 'isHidden', + url: 'url' }, - onConfirm: function (zTree, selectedNodes) { - if (selectedNodes.length == 0) { - $('#departmentIds').val(''); - return; - } - var departmentIds = ''; - $.each(selectedNodes, function (index, item) { - if (departmentIds != '') { - departmentIds += ','; - } - departmentIds += item.id; - }) - $('#departmentIds').val(departmentIds); + onInitSelectedDataFilter: function(selectedData) { + console.log(selectedData); + $.each(selectedData, function(i, item) { + item.id = item.departmentId; + item.name = item.departmentName; + }); + }, + onSelect: function(selectedNodeArray) { + }, + onDelete: function(selectedNodeArray) { } }) } // 角色选择 function initRoleSelect() { - layuiInputTree.initMultiSelect({ - id: 'roleNames', + treeselect.init({ + isSingle: false, + name: 'roleIds', + explain: '角色', url: 'api/role/listztree', - checkboxType: {Y: '', N: ''}, - getSelectedDatas: function () { - var selectedRoles = []; - setSelectedData(selectedRoles, $('#roleIds').val(), $('#roleNames').val()); - return selectedRoles; + idsUrl: 'api/role/list/role-ids', + key: { + id: 'id', + name: 'name', + title: 'title', + pId: 'pId', + checked: 'checked', + children: 'children', + isParent: 'isParent', + isHidden: 'isHidden', + url: 'url' }, - onConfirm: function (zTree, selectedNodes) { - if (selectedNodes.length == 0) { - $('#roleIds').val(''); - return; - } - var roleIds = ''; - $.each(selectedNodes, function (index, item) { - if (roleIds != '') { - roleIds += ','; - } - roleIds += item.id; - }) - $('#roleIds').val(roleIds); + onInitSelectedDataFilter: function(selectedData) { + $.each(selectedData, function(i, item) { + item.id = item.roleId; + item.name = item.roleName; + }); + }, + onSelect: function(selectedNodeArray) { + }, + onDelete: function(selectedNodeArray) { } }) } // 职位选择 function initPositionSelect() { - layuiInputTree.initMultiSelect({ - id: 'positionNames', + treeselect.init({ + isSingle: false, + name: 'positionIds', + explain: '职位', url: 'api/position/listztree', - checkboxType: {Y: '', N: ''}, - getSelectedDatas: function () { - var selectedPositions = []; - setSelectedData(selectedPositions, $('#positionIds').val(), $('#positionNames').val()); - return selectedPositions; + idsUrl: 'api/position/list/position-ids', + key: { + id: 'id', + name: 'name', + title: 'title', + pId: 'pId', + checked: 'checked', + children: 'children', + isParent: 'isParent', + isHidden: 'isHidden', + url: 'url' }, - onConfirm: function (zTree, selectedNodes) { - if (selectedNodes.length == 0) { - $('#positionIds').val(''); - return; - } - var positionIds = ''; - $.each(selectedNodes, function (index, item) { - if (positionIds != '') { - positionIds += ','; - } - positionIds += item.id; - }) - $('#positionIds').val(positionIds); + onInitSelectedDataFilter: function(selectedData) { + $.each(selectedData, function(i, item) { + item.id = item.positionId; + item.name = item.positionName; + }); + }, + onSelect: function(selectedNodeArray) { + }, + onDelete: function(selectedNodeArray) { } }) } // 组选择 function initGroupSelect() { - layuiInputTree.initMultiSelect({ - id: 'groupNames', + treeselect.init({ + isSingle: false, + name: 'groupIds', + explain: '组', url: 'api/group/listztree', - checkboxType: {Y: '', N: ''}, - getSelectedDatas: function () { - var selectedGroups = []; - setSelectedData(selectedGroups, $('#groupIds').val(), $('#groupNames').val()); - return selectedGroups; + idsUrl: 'api/group/list/group-ids', + key: { + id: 'id', + name: 'name', + title: 'title', + pId: 'pId', + checked: 'checked', + children: 'children', + isParent: 'isParent', + isHidden: 'isHidden', + url: 'url' }, - onConfirm: function (zTree, selectedNodes) { - if (selectedNodes.length == 0) { - $('#groupIds').val(''); - return; - } - var groupIds = ''; - $.each(selectedNodes, function (index, item) { - if (groupIds != '') { - groupIds += ','; - } - groupIds += item.id; - }) - $('#groupIds').val(groupIds); + onInitSelectedDataFilter: function(selectedData) { + $.each(selectedData, function(i, item) { + item.id = item.groupId; + item.name = item.groupName; + }); + }, + onSelect: function(selectedNodeArray) { + }, + onDelete: function(selectedNodeArray) { } }) } diff --git a/service-core/src/main/resources/templates/core/manage/list-department-user.html b/service-core/src/main/resources/templates/core/manage/list-department-user.html index 97658bab..20740211 100644 --- a/service-core/src/main/resources/templates/core/manage/list-department-user.html +++ b/service-core/src/main/resources/templates/core/manage/list-department-user.html @@ -10,6 +10,12 @@ +
@@ -18,7 +24,45 @@
-
+
+
+ +
+
+ +
+ +
+ +
+
+ +
请选择角色
+
+ + +
+ +
+
+ +
请选择职位
+
+ + +
+ +
+
+ +
请选择组
+
+ +
+
@@ -40,30 +84,13 @@
-
- - -
-
- - -
-
- - -
-
- -
+
diff --git a/service-core/src/main/resources/templates/core/manage/save-department-user.html b/service-core/src/main/resources/templates/core/manage/save-department-user.html index 3d08345c..a9a7f47b 100644 --- a/service-core/src/main/resources/templates/core/manage/save-department-user.html +++ b/service-core/src/main/resources/templates/core/manage/save-department-user.html @@ -90,34 +90,42 @@
+
- +
- +
请选择组织部门
+ +
- +
请选择角色
+ +
- +
请选择职位
+ +
- +
请选择组
+
@@ -138,21 +146,22 @@
- +