From 450f6c49d3591c2e152e9ee81acab9acc830d7fe Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 02 三月 2021 15:48:34 +0800
Subject: [PATCH] #

---
 src/main/java/zy/cloud/wms/manager/controller/TagController.java |   73 ++++++++++++++++++++++++++++++------
 1 files changed, 61 insertions(+), 12 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/manager/controller/TagController.java b/src/main/java/zy/cloud/wms/manager/controller/TagController.java
index 5a4c37f..0808360 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/TagController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/TagController.java
@@ -1,6 +1,5 @@
 package zy.cloud.wms.manager.controller;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -12,20 +11,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.Tag;
 import zy.cloud.wms.manager.service.TagService;
+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 TagController extends BaseController {
 
     @Autowired
     private TagService tagService;
+    @Autowired
+    private TreeUtils treeUtils;
 
     @RequestMapping(value = "/tag/{id}/auth")
     @ManagerAuth
@@ -63,6 +65,27 @@
     @RequestMapping(value = "/tag/add/auth")
     @ManagerAuth
     public R add(Tag tag) {
+        tag.setLevel(1);
+        if (tag.getParentId() != null && tag.getParentId() > 0) {
+            Tag parent = tagService.selectById(tag.getParentId());
+            if (parent != null) {
+                tag.setParentName(parent.getName());
+                tag.setLevel(parent.getLevel() + 1);
+            }
+        } else {
+            tag.setParentId(0L);
+        }
+        // path
+        NodeUtils nodeUtils = new NodeUtils();
+        nodeUtils.executePath(tag);
+        tag.setPath(nodeUtils.path.toString());
+        tag.setPathName(nodeUtils.pathName.toString());
+
+        tag.setCreateBy(getUserId());
+        tag.setCreateTime(new Date());
+        tag.setUpdateBy(getUserId());
+        tag.setUpdateTime(new Date());
+        tag.setStatus(1);
         tagService.insert(tag);
         return R.ok();
     }
@@ -73,19 +96,32 @@
         if (Cools.isEmpty(tag) || null==tag.getId()){
             return R.error();
         }
+        if (tag.getParentId() != null && tag.getParentId() > 0) {
+            if (tag.getParentId().equals(tag.getId())) {
+                return R.error("鏁版嵁閿欒");
+            }
+            Tag parent = tagService.selectById(tag.getParentId());
+            if (parent != null) {
+                tag.setParentName(parent.getName());
+                tag.setLevel(parent.getLevel() + 1);
+            }
+        }
+        // path
+        NodeUtils nodeUtils = new NodeUtils();
+        nodeUtils.executePath(tag);
+        tag.setPath(nodeUtils.path.toString());
+        tag.setPathName(nodeUtils.pathName.toString());
+        tag.setUpdateBy(getUserId());
+        tag.setUpdateTime(new Date());
         tagService.updateById(tag);
         return R.ok();
     }
 
     @RequestMapping(value = "/tag/delete/auth")
     @ManagerAuth
-    public R delete(@RequestParam String param){
-        List<Tag> list = JSONArray.parseArray(param, Tag.class);
-        if (Cools.isEmpty(list)){
-            return R.error();
-        }
-        for (Tag entity : list){
-            tagService.delete(new EntityWrapper<>(entity));
+    public R delete(@RequestParam(value="ids[]") Long[] ids){
+        for (Long id : ids){
+            tagService.deleteById(id);
         }
         return R.ok();
     }
@@ -127,4 +163,17 @@
         return R.ok();
     }
 
+    @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()));
+        // 娣辨嫹璐�
+        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