package io.dataease.plugins.server; import io.dataease.commons.utils.BeanUtils; import io.dataease.controller.sys.response.DeptNodeResponse; import io.dataease.plugins.common.entity.XpackGridRequest; import io.dataease.plugins.config.SpringContextUtil; import io.dataease.plugins.xpack.dept.dto.request.XpackCreateDept; import io.dataease.plugins.xpack.dept.dto.request.XpackDeleteDept; import io.dataease.plugins.xpack.dept.dto.response.XpackDeptTreeNode; import io.dataease.plugins.xpack.dept.dto.response.XpackSysDept; import io.dataease.plugins.xpack.dept.service.DeptXpackService; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.stream.Collectors; @RequestMapping("/plugin/dept") @RestController public class DeptServer { @PostMapping("/childNodes/{pid}") public List childNodes(@PathVariable("pid") Long pid){ DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class); List nodes = deptService.nodesByPid(pid); List nodeResponses = nodes.stream().map(node -> { DeptNodeResponse deptNodeResponse = BeanUtils.copyBean(new DeptNodeResponse(), node); deptNodeResponse.setHasChildren(node.getSubCount() > 0); deptNodeResponse.setLeaf(node.getSubCount() == 0); deptNodeResponse.setTop(node.getPid() == 0L); return deptNodeResponse; }).collect(Collectors.toList()); return nodeResponses; } @PostMapping("/search") public List search(@RequestBody XpackGridRequest request){ DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class); List ndoes = deptService.nodesTreeByCondition(request); List nodeResponses = ndoes.stream().map(node -> { DeptNodeResponse deptNodeResponse = BeanUtils.copyBean(new DeptNodeResponse(), node); deptNodeResponse.setHasChildren(node.getSubCount() > 0); deptNodeResponse.setLeaf(node.getSubCount() == 0); deptNodeResponse.setTop(node.getPid() == 0L); return deptNodeResponse; }).collect(Collectors.toList()); return nodeResponses; } @PostMapping("/root") public List rootData(){ DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class); List nodes = deptService.nodesByPid(null); return nodes; } @PostMapping("/create") public void create(@RequestBody XpackCreateDept dept){ DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class); deptService.add(dept); } @PostMapping("/delete") public void delete(@RequestBody List requests){ DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class); deptService.batchDelete(requests); } @PostMapping("/update") public void update(@RequestBody XpackCreateDept dept){ DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class); deptService.update(dept); } @PostMapping("/nodesByDeptId/{deptId}") public List nodesByDeptId(@PathVariable("deptId") Long deptId){ DeptXpackService deptService = SpringContextUtil.getBean(DeptXpackService.class); return deptService.searchTree(deptId); } }