From 48e6a7175d35994d54d2dd86d7ee12f3f0cc50f3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 16 九月 2022 10:42:44 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/crm/common/utils/TreeUtils.java | 105 ++++++++++++++++++++++++++--------
src/main/java/com/zy/crm/manager/controller/TagController.java | 4
src/main/java/com/zy/crm/system/controller/DeptController.java | 17 +++++
src/main/java/com/zy/crm/system/mapper/UserMapper.java | 6 -
src/main/webapp/static/js/cstmr/cstmr.js | 7 ++
src/main/webapp/views/cstmr/cstmr.html | 3
src/main/java/com/zy/crm/system/service/UserService.java | 2
src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java | 4
src/main/java/com/zy/crm/common/utils/ListUtils.java | 4
src/main/java/com/zy/crm/manager/controller/NodeController.java | 4
src/main/resources/mapper/UserMapper.xml | 13 ++++
11 files changed, 127 insertions(+), 42 deletions(-)
diff --git a/src/main/java/com/zy/crm/common/utils/ListUtils.java b/src/main/java/com/zy/crm/common/utils/ListUtils.java
index 8c19dce..6f56ddf 100644
--- a/src/main/java/com/zy/crm/common/utils/ListUtils.java
+++ b/src/main/java/com/zy/crm/common/utils/ListUtils.java
@@ -9,7 +9,7 @@
*/
public class ListUtils {
- public static List<Map> deepCopy(List<Map> src) throws IOException, ClassNotFoundException {
+ public static List<Map<String, Object>> deepCopy(List<Map<String, Object>> src) throws IOException, ClassNotFoundException {
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(byteOut);
out.writeObject(src);
@@ -17,7 +17,7 @@
ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
ObjectInputStream in = new ObjectInputStream(byteIn);
@SuppressWarnings("unchecked")
- List<Map> dest = (List<Map>) in.readObject();
+ List<Map<String, Object>> dest = (List<Map<String, Object>>) in.readObject();
return dest;
}
diff --git a/src/main/java/com/zy/crm/common/utils/TreeUtils.java b/src/main/java/com/zy/crm/common/utils/TreeUtils.java
index 4c97962..0520963 100644
--- a/src/main/java/com/zy/crm/common/utils/TreeUtils.java
+++ b/src/main/java/com/zy/crm/common/utils/TreeUtils.java
@@ -2,15 +2,17 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.zy.crm.system.entity.Dept;
-import com.zy.crm.system.service.DeptService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Component;
import com.zy.crm.manager.entity.Node;
import com.zy.crm.manager.entity.Tag;
import com.zy.crm.manager.service.NodeService;
import com.zy.crm.manager.service.TagService;
+import com.zy.crm.system.entity.Dept;
+import com.zy.crm.system.entity.User;
+import com.zy.crm.system.service.DeptService;
+import com.zy.crm.system.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Component;
import java.util.*;
@@ -27,6 +29,8 @@
private NodeService nodeService;
@Autowired
private DeptService deptService;
+ @Autowired
+ private UserService userService;
/******************************** 褰掔被鏍� *********************************/
@@ -34,15 +38,15 @@
* 鑾峰彇鏍戝浘鏁版嵁缁撴瀯
*/
@Cacheable(cacheNames="tagTree",key="#id")
- public ArrayList<Map> getTree(String id, Long hostId){
- ArrayList<Map> result = new ArrayList<>();
+ public ArrayList<Map<String, Object>> getTree(String id, Long hostId){
+ ArrayList<Map<String, Object>> result = new ArrayList<>();
Tag tag = tagService.selectById(id);
// 涓昏妭鐐�
Map<String, Object> map = new HashMap<>();
map.put("title", tag.getName());
map.put("id", tag.getId());
map.put("spread", true);
- List<Map> childrens = new ArrayList<>();
+ List<Map<String, Object>> childrens = new ArrayList<>();
map.put("children", childrens);
dealTag(tag, childrens, hostId);
result.add(map);
@@ -54,7 +58,7 @@
/**
* 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹�
*/
- public void dealTag(Tag parent, List<Map> list, Long hostId) {
+ public void dealTag(Tag parent, List<Map<String, Object>> list, Long hostId) {
Wrapper<Tag> wrapper = new EntityWrapper<Tag>()
.eq("parent_id", parent.getId())
.eq("status", "1");
@@ -67,7 +71,7 @@
map.put("title", tag.getName());
map.put("id", tag.getId());
map.put("spread", true);
- List<Map> childrens = new ArrayList<>();
+ List<Map<String, Object>> childrens = new ArrayList<>();
map.put("children", childrens);
dealTag(tag, childrens, hostId);
list.add(map);
@@ -80,15 +84,15 @@
* 鑾峰彇鏍戝浘鏁版嵁缁撴瀯
*/
@Cacheable(cacheNames="nodeTree",key="#id")
- public ArrayList<Map> getNodeTree(String id, Long hostId){
- ArrayList<Map> result = new ArrayList<>();
+ public ArrayList<Map<String, Object>> getNodeTree(String id, Long hostId){
+ ArrayList<Map<String, Object>> result = new ArrayList<>();
Node node = nodeService.selectById(id);
// 涓昏妭鐐�
Map<String, Object> map = new HashMap<>();
map.put("title", node.getName());
map.put("id", node.getId());
map.put("spread", true);
- List<Map> childrens = new ArrayList<>();
+ List<Map<String, Object>> childrens = new ArrayList<>();
map.put("children", childrens);
dealNode(node, childrens, hostId);
result.add(map);
@@ -100,7 +104,7 @@
/**
* 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹�
*/
- public void dealNode(Node parent, List<Map> list, Long hostId) {
+ public void dealNode(Node parent, List<Map<String, Object>> list, Long hostId) {
Wrapper<Node> wrapper = new EntityWrapper<Node>()
.eq("parent_id", parent.getId())
.eq("status", "1");
@@ -113,7 +117,7 @@
map.put("title", node.getName());
map.put("id", node.getId());
map.put("spread", true);
- List<Map> childrens = new ArrayList<>();
+ List<Map<String, Object>> childrens = new ArrayList<>();
map.put("children", childrens);
dealNode(node, childrens, hostId);
list.add(map);
@@ -126,15 +130,15 @@
* 鑾峰彇鏍戝浘鏁版嵁缁撴瀯
*/
@Cacheable(cacheNames="deptTree",key="#id")
- public ArrayList<Map> getDeptTree(String id, Long hostId){
- ArrayList<Map> result = new ArrayList<>();
+ public ArrayList<Map<String, Object>> getDeptTree(String id, Long hostId){
+ ArrayList<Map<String, Object>> result = new ArrayList<>();
Dept dept = deptService.selectById(id);
// 涓昏妭鐐�
Map<String, Object> map = new HashMap<>();
map.put("title", dept.getName());
map.put("id", dept.getId());
map.put("spread", true);
- List<Map> childrens = new ArrayList<>();
+ List<Map<String, Object>> childrens = new ArrayList<>();
map.put("children", childrens);
dealDept(dept, childrens, hostId);
result.add(map);
@@ -146,10 +150,10 @@
/**
* 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹�
*/
- public void dealDept(Dept parent, List<Map> list, Long hostId) {
+ public void dealDept(Dept parent, List<Map<String, Object>> list, Long hostId) {
Wrapper<Dept> wrapper = new EntityWrapper<Dept>()
.eq("parent_id", parent.getId())
- .eq("status", "1");
+ .eq("status", 1);
if (hostId != null) {
wrapper.eq("host_id", hostId);
}
@@ -159,13 +163,64 @@
map.put("title", dept.getName());
map.put("id", dept.getId());
map.put("spread", true);
- List<Map> childrens = new ArrayList<>();
+ List<Map<String, Object>> childrens = new ArrayList<>();
map.put("children", childrens);
dealDept(dept, childrens, hostId);
list.add(map);
}
}
+ /******************************** 閮ㄩ棬 + 鍛樺伐 鏍� *********************************/
+
+ /**
+ * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯
+ */
+ @Cacheable(cacheNames="deptUserTree",key="#id")
+ public ArrayList<Map<String, Object>> getDeptUserTree(String id, Long hostId){
+ ArrayList<Map<String, Object>> result = new ArrayList<>();
+ Dept dept = deptService.selectById(id);
+ // 涓昏妭鐐�
+ Map<String, Object> map = new HashMap<>();
+ map.put("title", dept.getName());
+ map.put("id", dept.getId());
+ map.put("spread", true);
+ map.put("type", 0);
+ List<Map<String, Object>> childrens = new ArrayList<>();
+ map.put("children", childrens);
+ dealUserDept(dept, childrens, hostId);
+ result.add(map);
+ return result;
+ }
+
+ public void dealUserDept(Dept parent, List<Map<String, Object>> list, Long hostId) {
+ Wrapper<Dept> wrapper = new EntityWrapper<Dept>()
+ .eq("parent_id", parent.getId())
+ .eq("status", 1);
+ if (hostId != null) {
+ wrapper.eq("host_id", hostId);
+ }
+ List<Dept> depts = deptService.selectList(wrapper);
+
+ List<User> users = userService.getUserByDept(hostId, parent.getId());
+ for (User user : users) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("title", user.getNickname());
+ map.put("id", user.getId());
+ map.put("type", 1);
+ list.add(map);
+ }
+
+ for (Dept dept : depts) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("title", dept.getName());
+ map.put("id", dept.getId());
+ map.put("spread", true);
+ List<Map<String, Object>> childrens = new ArrayList<>();
+ map.put("children", childrens);
+ dealUserDept(dept, childrens, hostId);
+ list.add(map);
+ }
+ }
// -------------------------------------------------------------------------------------------------------
@@ -173,12 +228,12 @@
* 鏉′欢绛涢��
*/
@SuppressWarnings("unchecked")
- public void remove(String condition, List<Map> list) {
- Iterator<Map> iterator = list.iterator();
+ public void remove(String condition, List<Map<String, Object>> list) {
+ Iterator<Map<String, Object>> iterator = list.iterator();
while (iterator.hasNext()) {
- Map map = iterator.next();
+ Map<String, Object> map = iterator.next();
if (map.get("children") != null) {
- List<Map> children = (List<Map>) map.get("children");
+ List<Map<String, Object>> children = (List<Map<String, Object>>) map.get("children");
if (children.size() > 0) {
remove(condition, children);
} else {
diff --git a/src/main/java/com/zy/crm/manager/controller/NodeController.java b/src/main/java/com/zy/crm/manager/controller/NodeController.java
index 6a847f9..716d25c 100644
--- a/src/main/java/com/zy/crm/manager/controller/NodeController.java
+++ b/src/main/java/com/zy/crm/manager/controller/NodeController.java
@@ -238,9 +238,9 @@
@PostMapping(value = "/node/tree/auth")
@ManagerAuth
public R tree(@RequestParam(required = false, defaultValue = "") String condition) throws IOException, ClassNotFoundException {
- ArrayList<Map> tree = treeUtils.getNodeTree(String.valueOf(getOriginNode().getId()), getHostId());
+ ArrayList<Map<String, Object>> tree = treeUtils.getNodeTree(String.valueOf(getOriginNode().getId()), getHostId());
// 娣辨嫹璐�
- List<Map> result = ListUtils.deepCopy(tree);
+ List<Map<String, Object>> result = ListUtils.deepCopy(tree);
if (!Cools.isEmpty(condition)) {
treeUtils.remove(condition, result);
treeUtils.remove(condition, result);
diff --git a/src/main/java/com/zy/crm/manager/controller/TagController.java b/src/main/java/com/zy/crm/manager/controller/TagController.java
index 4f8b707..416c719 100644
--- a/src/main/java/com/zy/crm/manager/controller/TagController.java
+++ b/src/main/java/com/zy/crm/manager/controller/TagController.java
@@ -181,9 +181,9 @@
@PostMapping(value = "/tag/tree/auth")
@ManagerAuth
public R tree(@RequestParam(required = false, defaultValue = "") String condition) throws IOException, ClassNotFoundException {
- ArrayList<Map> tree = treeUtils.getTree(String.valueOf(getOriginTag().getId()), getHostId());
+ ArrayList<Map<String, Object>> tree = treeUtils.getTree(String.valueOf(getOriginTag().getId()), getHostId());
// 娣辨嫹璐�
- List<Map> result = ListUtils.deepCopy(tree);
+ List<Map<String, Object>> result = ListUtils.deepCopy(tree);
if (!Cools.isEmpty(condition)) {
treeUtils.remove(condition, result);
treeUtils.remove(condition, result);
diff --git a/src/main/java/com/zy/crm/system/controller/DeptController.java b/src/main/java/com/zy/crm/system/controller/DeptController.java
index b753f51..c4f4143 100644
--- a/src/main/java/com/zy/crm/system/controller/DeptController.java
+++ b/src/main/java/com/zy/crm/system/controller/DeptController.java
@@ -172,9 +172,22 @@
@PostMapping(value = "/dept/tree/auth")
@ManagerAuth
public R tree(@RequestParam(required = false, defaultValue = "") String condition) throws IOException, ClassNotFoundException {
- ArrayList<Map> tree = treeUtils.getDeptTree(String.valueOf(getDeptId()), getHostId());
+ ArrayList<Map<String, Object>> tree = treeUtils.getDeptTree(String.valueOf(getDeptId()), getHostId());
// 娣辨嫹璐�
- List<Map> result = ListUtils.deepCopy(tree);
+ List<Map<String, Object>> result = ListUtils.deepCopy(tree);
+ if (!Cools.isEmpty(condition)) {
+ treeUtils.remove(condition, result);
+ treeUtils.remove(condition, result);
+ }
+ return R.ok(result);
+ }
+
+ @PostMapping(value = "/dept/user/tree/auth")
+ @ManagerAuth
+ public R deptUserTree(@RequestParam(required = false, defaultValue = "") String condition) throws IOException, ClassNotFoundException {
+ ArrayList<Map<String, Object>> tree = treeUtils.getDeptUserTree(String.valueOf(getDeptId()), getHostId());
+ // 娣辨嫹璐�
+ List<Map<String, Object>> result = ListUtils.deepCopy(tree);
if (!Cools.isEmpty(condition)) {
treeUtils.remove(condition, result);
treeUtils.remove(condition, result);
diff --git a/src/main/java/com/zy/crm/system/mapper/UserMapper.java b/src/main/java/com/zy/crm/system/mapper/UserMapper.java
index bef5e5c..74937e2 100644
--- a/src/main/java/com/zy/crm/system/mapper/UserMapper.java
+++ b/src/main/java/com/zy/crm/system/mapper/UserMapper.java
@@ -2,11 +2,10 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
+import com.zy.crm.system.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
-import com.zy.crm.system.entity.User;
import java.util.List;
@@ -16,7 +15,6 @@
List<User> listByPage(Page page, @Param("hostId")Long hostId, @Param("deptId") String deptId, @Param("username") Object username, @Param("mobile") Object mobile);
- @Select("select sys_user.* from sys_user left join sys_dept on sys_user.dept_id = sys_dept.id where sys_dept.parent_id = 1")
- List<User> getUserByDept(Long deptId);
+ List<User> getUserByDept(@Param("hostId")Long hostId, @Param("deptId")Long deptId);
}
diff --git a/src/main/java/com/zy/crm/system/service/UserService.java b/src/main/java/com/zy/crm/system/service/UserService.java
index 07d100f..c10e037 100644
--- a/src/main/java/com/zy/crm/system/service/UserService.java
+++ b/src/main/java/com/zy/crm/system/service/UserService.java
@@ -10,6 +10,6 @@
Page<User> getPage(Page page, Long hostId, String deptId, Object username, Object mobile);
- List<User> getUserByDept(Long deptParentId);
+ List<User> getUserByDept(Long hostId, Long deptParentId);
}
diff --git a/src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java b/src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java
index a67ff2f..62cff18 100644
--- a/src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/zy/crm/system/service/impl/UserServiceImpl.java
@@ -18,7 +18,7 @@
}
@Override
- public List<User> getUserByDept(Long dept) {
- return this.baseMapper.getUserByDept(dept);
+ public List<User> getUserByDept(Long hostId, Long dept) {
+ return this.baseMapper.getUserByDept(hostId, dept);
}
}
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 4265998..27edca6 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -38,4 +38,17 @@
ORDER BY su.create_time DESC
</select>
+ <select id="getUserByDept" resultMap="BaseResultMap">
+ SELECT
+ *
+ FROM sys_user
+ where 1=1
+ <if test="hostId != null and hostId != ''">
+ and host_id = #{hostId}
+ </if>
+ <if test="deptId != null and deptId != ''">
+ and dept_id = #{deptId}
+ </if>
+ </select>
+
</mapper>
diff --git a/src/main/webapp/static/js/cstmr/cstmr.js b/src/main/webapp/static/js/cstmr/cstmr.js
index f12dc04..84c476b 100644
--- a/src/main/webapp/static/js/cstmr/cstmr.js
+++ b/src/main/webapp/static/js/cstmr/cstmr.js
@@ -18,9 +18,10 @@
// 鏍戝舰鍥�
var organizationTree;
+ var selObj;
window.loadTree = function(condition){
$.ajax({
- url: baseUrl+"/dept/tree/auth",
+ url: baseUrl+"/dept/user/tree/auth",
headers: {'token': localStorage.getItem('token')},
data: {
'condition': condition
@@ -37,6 +38,10 @@
selObj = obj;
$('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click');
$(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click');
+ tableIns.reload({
+ where: {dept_id: obj.data.id},
+ page: {curr: 1}
+ });
}
});
treeData = res.data;
diff --git a/src/main/webapp/views/cstmr/cstmr.html b/src/main/webapp/views/cstmr/cstmr.html
index 735cdf3..1495a17 100644
--- a/src/main/webapp/views/cstmr/cstmr.html
+++ b/src/main/webapp/views/cstmr/cstmr.html
@@ -99,8 +99,9 @@
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
-<script type="text/javascript" src="../../static/js/cstmr/cstmr.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/layui/lay/modules/cascader/citys-data.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cstmr/cstmr.js" charset="utf-8"></script>
+
</body>
<!-- 琛ㄥ崟寮圭獥 -->
<script type="text/html" id="editDialog">
--
Gitblit v1.9.1