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 // 声明这是一个控制器,并且返回的数据直接写入HTTP响应体中 @RequestMapping("/org") // 设置请求路径前缀为/org public class OrgController { // 定义控制器类 @Autowired // 自动注入OrgService实例 private OrgService机构管理 orgService; @GetMapping("tree") // 映射GET请求到/org/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){ // 如果父ID为0,表示是顶级节点 Map map = new HashMap<>(); // 创建一个新的Map对象 map.put("id",entity.getId()); // 将组织ID放入Map map.put("name",entity.getName()); // 将组织名称放入Map if(entity.getType()<4){ // 如果类型小于4,表示有子节点 map.put("isParent",true); // 标记为父节点 map.put("open",true); // 默认展开 map.put("children",getChild(entity,list)); // 递归获取子节点并放入Map }else{ map.put("isParent",false); // 标记为叶子节点 } trees.add(map); // 将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()){ // 如果当前组织的父ID等于传入的父节点ID Map map = new HashMap<>(); // 创建一个新的Map对象 map.put("id",org.getId()); // 将组织ID放入Map map.put("name",org.getName()); // 将组织名称放入Map if(org.getType()<4){ // 如果类型小于4,表示有子节点 map.put("isParent",true); // 标记为父节点 map.put("children",getChild(org,list)); // 递归获取子节点并放入Map }else{ map.put("isParent",false); // 标记为叶子节点 } child.add(map); // 将Map添加到子节点列表中 } } return child; // 返回子节点列表 } @PostMapping("create") // 映射POST请求到/org/create路径 public Result create(@RequestBody Org org){ // 定义创建组织的方法 //未设置则为一级栏目 if(org.getParentId() == null){ // 如果父ID为空,设置为0(顶级节点) org.setParentId(0); } int flag = orgService.create(org); // 调用服务层方法创建组织 if(flag>0){ // 如果创建成功 return Result.ok(); // 返回成功结果 }else{ return Result.fail(); // 返回失败结果 } } @GetMapping("delete") // 映射GET请求到/org/delete路径 public Result delete(String id){ // 定义删除组织的方法 int flag = orgService.delete(id); // 调用服务层方法删除组织 if(flag>0){ // 如果删除成功 return Result.ok(); // 返回成功结果 }else{ return Result.fail(); // 返回失败结果 } } @PostMapping("update") // 映射POST请求到/org/update路径 public Result update(@RequestBody Org org){ // 定义更新组织的方法 int flag = orgService.update(org); // 调用服务层方法更新组织信息 if(flag>0){ // 如果更新成功 return Result.ok(); // 返回成功结果 }else{ return Result.fail(); // 返回失败结果 } } @GetMapping("detail") // 映射GET请求到/org/detail路径 public Org detail(Integer id){ // 定义获取组织详情的方法 return orgService.detail(id); // 调用服务层方法获取组织详情并返回 } @PostMapping("query") // 映射POST请求到/org/query路径 public Map query(@RequestBody Org org){ // 定义查询组织的方法 PageInfo pageInfo = orgService.query(org); // 调用服务层方法查询组织数据 return Result.ok(pageInfo); // 返回包含查询结果的响应结果 } }