|
|
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<Org> pageInfo = orgService.query(null); // 查询所有组织数据
|
|
|
//所有的树形数据
|
|
|
List<Org> list = pageInfo.getList(); // 获取查询结果列表
|
|
|
//要构建的树形结构
|
|
|
List<Map<String,Object>> trees = new ArrayList<>(); // 初始化树形结构的列表
|
|
|
for (Org entity : list) { // 遍历所有组织数据
|
|
|
if(entity.getParentId() == 0){ // 如果父ID为0,表示是顶级节点
|
|
|
Map<String,Object> 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<Map<String,Object>> getChild(Org parent,List<Org> list){ // 定义递归方法获取子节点
|
|
|
List<Map<String,Object>> child = new ArrayList<>(); // 初始化子节点列表
|
|
|
for (Org org : list) { // 遍历所有组织数据
|
|
|
if(parent.getId() == org.getParentId()){ // 如果当前组织的父ID等于传入的父节点ID
|
|
|
Map<String,Object> 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<String,Object> query(@RequestBody Org org){ // 定义查询组织的方法
|
|
|
PageInfo<Org> pageInfo = orgService.query(org); // 调用服务层方法查询组织数据
|
|
|
return Result.ok(pageInfo); // 返回包含查询结果的响应结果
|
|
|
}
|
|
|
} |