#
luxiaotao1123
2021-04-13 d8f5476af7490d3faf40a7da332155cf06aec5e1
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,35 @@
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/list/pda/auth")
    @ManagerAuth
    public R pdaList(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)Long parentId){
        EntityWrapper<Tag> wrapper = new EntityWrapper<>();
        wrapper.eq("parent_id", parentId==null?getOriginTag().getId():parentId);
        wrapper.orderBy("sort");
        List<Tag> tags = tagService.selectList(wrapper);
        return R.ok().add(tags);
    }
    @RequestMapping(value = "/tag/{id}/auth")
    @ManagerAuth
@@ -63,6 +77,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 +108,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();
    }
@@ -105,13 +153,13 @@
    @ManagerAuth
    public R query(String condition) {
        EntityWrapper<Tag> wrapper = new EntityWrapper<>();
        wrapper.like("id", condition);
        wrapper.like("uuid", condition).or().like("name", condition);
        Page<Tag> page = tagService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Tag tag : page.getRecords()){
            Map<String, Object> map = new HashMap<>();
            map.put("id", tag.getId());
            map.put("value", tag.getId());
            map.put("value", tag.getName());
            result.add(map);
        }
        return R.ok(result);
@@ -127,4 +175,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);
    }
}