|
|
@@ -0,0 +1,101 @@
|
|
|
+package com.mokamrp.privates.controller.pangu;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.mokamrp.privates.constant.Constants;
|
|
|
+import com.mokamrp.privates.constant.HttpStatus;
|
|
|
+import com.mokamrp.privates.entity.DelHandle;
|
|
|
+import com.mokamrp.privates.entity.PostBasePageHandle;
|
|
|
+import com.mokamrp.privates.help.AjaxResult;
|
|
|
+import com.mokamrp.privates.entity.ResHandle;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.validation.BindingResult;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import com.mokamrp.privates.service.pangu.DeptService;
|
|
|
+import com.mokamrp.privates.mapper.pangu.pojo.Dept;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import com.mokamrp.privates.controller.BaseController;
|
|
|
+import javax.validation.Valid;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 盘古部门表 前端控制器
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author leon
|
|
|
+ * @since 2021-11-25
|
|
|
+ */
|
|
|
+@RestController
|
|
|
+@Api(tags = "盘古部门管理")
|
|
|
+@RequestMapping("/pangu/dept")
|
|
|
+public class DeptController extends BaseController<Dept> {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public DeptService deptService;
|
|
|
+
|
|
|
+ private List<Integer> chilMenuIds = new ArrayList<>();
|
|
|
+
|
|
|
+ /*
|
|
|
+ * @fast
|
|
|
+ * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
|
|
|
+ * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
|
|
|
+ */
|
|
|
+
|
|
|
+ @PostMapping("/list")
|
|
|
+ public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
|
|
|
+ if (bindingResult.hasErrors()) {
|
|
|
+ return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
|
|
|
+ }
|
|
|
+ ResHandle<List<Dept>> res = deptService.getList(postBasePageHandle);
|
|
|
+ return AjaxResult.success(res);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/tree")
|
|
|
+ public Object tree(){
|
|
|
+ List<Dept> list = deptService.list();
|
|
|
+ List<Dept> tree = this.getTree(list,0);
|
|
|
+ return AjaxResult.success(tree);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/del")
|
|
|
+ public Object delete(@Valid @RequestBody DelHandle<Dept> delHandle, BindingResult bindingResult) {
|
|
|
+ if (bindingResult.hasErrors()) {
|
|
|
+ return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
|
|
|
+ }
|
|
|
+ List<Dept> row = service.list();
|
|
|
+ Dept delInfo = service.getOne(new QueryWrapper<Dept>().eq("id",delHandle.getIds()));
|
|
|
+ this.getChilMenu(row,delInfo.getId());
|
|
|
+ this.chilMenuIds.add(delInfo.getId());
|
|
|
+ boolean res = service.remove(new QueryWrapper<Dept>().in("id",this.chilMenuIds));
|
|
|
+ if (!res) {
|
|
|
+ return AjaxResult.error("删除失败");
|
|
|
+ }
|
|
|
+ return AjaxResult.success(Constants.SUCCESS, res);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getChilMenu(List<Dept> row,Integer pid){
|
|
|
+ for (Dept dept : row){
|
|
|
+ if(dept.getParentDeptId().equals(pid)){
|
|
|
+ this.chilMenuIds.add(dept.getId());
|
|
|
+ this.getTree(row,dept.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Dept> getTree(List<Dept> row,Integer pid){
|
|
|
+ List<Dept> tree = new ArrayList<>();
|
|
|
+ for (Dept dept : row){
|
|
|
+ if(dept.getParentDeptId().equals(pid)){
|
|
|
+ dept.setChildren(this.getTree(row,dept.getId()));
|
|
|
+ tree.add(dept);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return tree;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|