From a0b733a8b19b1db43395a96408098596ac3d2a86 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期二, 05 十二月 2023 08:16:06 +0800
Subject: [PATCH] #

---
 src/main/java/zy/cloud/wms/manager/controller/NodeController.java |   94 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 88 insertions(+), 6 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/manager/controller/NodeController.java b/src/main/java/zy/cloud/wms/manager/controller/NodeController.java
index df36c99..b5ad448 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/NodeController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/NodeController.java
@@ -12,20 +12,23 @@
 import com.core.common.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import zy.cloud.wms.common.utils.ListUtils;
+import zy.cloud.wms.common.utils.TreeUtils;
 import zy.cloud.wms.common.web.BaseController;
 import zy.cloud.wms.manager.entity.Node;
 import zy.cloud.wms.manager.service.NodeService;
+import zy.cloud.wms.manager.utils.NodeUtils;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.io.IOException;
+import java.util.*;
 
 @RestController
 public class NodeController extends BaseController {
 
     @Autowired
     private NodeService nodeService;
+    @Autowired
+    private TreeUtils treeUtils;
 
     @RequestMapping(value = "/node/{id}/auth")
     @ManagerAuth
@@ -47,6 +50,20 @@
         return R.ok(nodeService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
+    @RequestMapping(value = "/node/tree/auth")
+    @ManagerAuth
+    public R tree(@RequestParam(defaultValue = "1")Integer curr,
+                  @RequestParam(defaultValue = "10")Integer limit,
+                  @RequestParam(required = false)String orderByField,
+                  @RequestParam(required = false)String orderByType,
+                  @RequestParam Map<String, Object> param){
+        EntityWrapper<Node> wrapper = new EntityWrapper<>();
+        excludeTrash(param);
+        convert(param, wrapper);
+        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        return R.parse("0-鎿嶄綔鎴愬姛").add(nodeService.selectList(wrapper));
+    }
+
     private void convert(Map<String, Object> map, EntityWrapper wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
@@ -63,6 +80,26 @@
     @RequestMapping(value = "/node/add/auth")
     @ManagerAuth
     public R add(Node node) {
+        if (node.getType() != 1) {
+            Node parentNode = nodeService.selectById(node.getParentId());
+            if (parentNode == null || parentNode.getStatus() == 0) {
+                return R.error(node.getType()==2?"鎵�灞炰粨搴撲笉瀛樺湪":"鎵�灞炲簱鍖轰笉瀛樺湪");
+            }
+            node.setParentName(parentNode.getName());
+            node.setLevel(parentNode.getLevel() + 1);
+        }
+        // path
+        NodeUtils nodeUtils = new NodeUtils();
+        nodeUtils.executePath(node);
+        node.setPath(nodeUtils.path.toString());
+        node.setNamePath(nodeUtils.pathName.toString());
+
+        node.setLevel(node.getType());
+        node.setCreateBy(getUserId());
+        node.setCreateTime(new Date());
+        node.setUpdateBy(getUserId());
+        node.setUpdateTime(new Date());
+        node.setStatus(1);
         nodeService.insert(node);
         return R.ok();
     }
@@ -73,6 +110,22 @@
         if (Cools.isEmpty(node) || null==node.getId()){
             return R.error();
         }
+        if (node.getType() != 1) {
+            Node parentNode = nodeService.selectById(node.getParentId());
+            if (parentNode == null || parentNode.getStatus() == 0) {
+                return R.error(node.getType()==2?"鎵�灞炰粨搴撲笉瀛樺湪":"鎵�灞炲簱鍖轰笉瀛樺湪");
+            }
+            node.setParentName(parentNode.getName());
+            node.setLevel(parentNode.getLevel() + 1);
+        }
+        // path
+        NodeUtils nodeUtils = new NodeUtils();
+        nodeUtils.executePath(node);
+        node.setPath(nodeUtils.path.toString());
+        node.setNamePath(nodeUtils.pathName.toString());
+
+        node.setUpdateBy(getUserId());
+        node.setUpdateTime(new Date());
         nodeService.updateById(node);
         return R.ok();
     }
@@ -105,13 +158,13 @@
     @ManagerAuth
     public R query(String condition) {
         EntityWrapper<Node> wrapper = new EntityWrapper<>();
-        wrapper.like("name", condition);
+        wrapper.like("name", condition).or().like("uuid", condition).eq("type", 3);
         Page<Node> page = nodeService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
         for (Node node : page.getRecords()){
             Map<String, Object> map = new HashMap<>();
             map.put("id", node.getId());
-            map.put("value", node.getName());
+            map.put("value", node.getUuid() + "锛�" +node.getName()+ "锛�");
             result.add(map);
         }
         return R.ok(result);
@@ -127,4 +180,33 @@
         return R.ok();
     }
 
+    @PostMapping(value = "/parent/node/group")
+    public R getParentNodeGroup(@RequestParam(required = false) String condition,
+                                @RequestParam Integer type) {
+        List<Node> nodes = nodeService.selectList(new EntityWrapper<Node>().eq("type", type).eq("status", 1));
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (Node node : nodes) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("key", node.getId());
+            map.put("val", node.getName());
+            result.add(map);
+        }
+        
+        return R.ok().add(result);
+    }
+
+    @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()));
+        // 娣辨嫹璐�
+        List<Map> result = ListUtils.deepCopy(tree);
+        if (!Cools.isEmpty(condition)) {
+            treeUtils.remove(condition, result);
+            treeUtils.remove(condition, result);
+        }
+        return R.ok(result);
+    }
+
+
 }

--
Gitblit v1.9.1