//定义包名 package com.yanzhen.controller; import com.github.pagehelper.PageInfo; // 导入分页插件 import com.yanzhen.entity.Org; // 导入组织实体类 import com.yanzhen.service.OrgService; // 导入组织服务接口 import com.yanzhen.utils.Result; // 导入结果工具类 import org.springframework.beans.factory.annotation.Autowired; // 导入自动装配注解 import org.springframework.web.bind.annotation.*; // 导入Spring MVC相关注解 import java.util.ArrayList; // 导入ArrayList类 import java.util.HashMap; // 导入HashMap类 import java.util.List; // 导入List接口 import java.util.Map; // 导入Map接口 //组织管理的控制器 @RestController @RequestMapping("/org") public class OrgController { //注入实例 //注入组织服务类 @Autowired private OrgService orgService; //获取组织信息存入tree @GetMapping("tree") public Result tree(){ //查询所有组织信息 PageInfo pageInfo = orgService.query(null); //所有的树形信息 List list = pageInfo.getList(); //要构建的树形结构 List> trees = new ArrayList<>(); //嵌套查询组织信息 for (Org entity : list) { //判断是否为顶级节点 if(entity.getParentId() == 0){ //创建Map对象 Map map = new HashMap<>(); //组织ID存入Map map.put("id",entity.getId()); //组织名称存入Map map.put("name",entity.getName()); //判断是否有子节点 if(entity.getType()<4){ //标记为父节点 map.put("isParent",true); map.put("open",true); //递归获取子节点信息存入Map map.put("children",getChild(entity,list)); }else{ //标记为叶子节点 map.put("isParent",false); } //将Map加到树形结构中 trees.add(map); } } //返回结果 return Result.ok(trees); } //自己调自己、有出口 public List> getChild(Org parent,List list){ //初始化 List> child = new ArrayList<>(); //遍历查询组织信息 for (Org org : list) { //判断父节点信息 if(parent.getId() == org.getParentId()){ //创建Map对象 Map map = new HashMap<>(); //组织ID存入Map map.put("id",org.getId()); //将组织名称放入Map map.put("name",org.getName()); //判断是否有子节点 if(org.getType()<4){ //标记为父节点 map.put("isParent",true); //获取子节点存入Map map.put("children",getChild(org,list)); }else{ //标记为叶子节点 map.put("isParent",false); } //Map加到子节点中 child.add(map); } } //返回结果 return child; } //创建新的实例 @PostMapping("create") public Result create(@RequestBody Org org){ //未设置则为一级栏目 //判断是否为顶节点 if(org.getParentId() == null){ org.setParentId(0); } //在组织管理服务类中引用create方法 int flag = orgService.create(org); //判断是否创建成功 if(flag>0){ //成功 return Result.ok(); }else{ //失败 return Result.fail(); } } //删除组织信息 @GetMapping("delete") public Result delete(String id){ //在组织管理服务类中引用delete方法 int flag = orgService.delete(id); //判断是否删除成功 if(flag>0){ //成功 return Result.ok(); }else{ //失败 return Result.fail(); } } //更新组织信息 @PostMapping("update") public Result update(@RequestBody Org org){ //在组织管理服务类中引用update方法 int flag = orgService.update(org); //判断是否更新成功 if(flag>0){ //成功 return Result.ok(); }else{ //失败 return Result.fail(); } } //获取组织详细信息 @GetMapping("detail") public Org detail(Integer id){ //返回结果 return orgService.detail(id); } //查询组织信息 @PostMapping("query") public Map query(@RequestBody Org org){ //在组织管理服务类中引用查询方法 PageInfo pageInfo = orgService.query(org); //返回结果 return Result.ok(pageInfo); } }