package com.yeqifu.sys.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeqifu.sys.common.DataGridView;
import com.yeqifu.sys.common.ResultObj;
import com.yeqifu.sys.common.TreeNode;
import com.yeqifu.sys.entity.Dept;
import com.yeqifu.sys.service.IDeptService;
import com.yeqifu.sys.vo.DeptVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
/**
*
* InnoDB free: 9216 kB 前端控制器
*
*
* @author luoyi-
* @since 2019-11-26
*/
@RestController
@RequestMapping("/dept")
public class DeptController {
@Autowired
private IDeptService deptService;
/**
* 加载部门左边的菜单树
* @param deptVo
* @return
*/
@RequestMapping("loadDeptManagerLeftTreeJson")
public DataGridView loadManagerLeftTreeJson(DeptVo deptVo){
//查询出所有的部门,存放进list中
// QueryWrapper queryWrapper = new QueryWrapper<>();
// queryWrapper.eq('1');
List list = deptService.list();
List treeNodes = new ArrayList<>();
//将部门放入treeNodes中,组装成json
for (Dept dept : list) {
Boolean open = dept.getOpen()==1?true:false;
treeNodes.add(new TreeNode(dept.getId(),dept.getPid(),dept.getName(),open));
}
return new DataGridView(treeNodes);
}
/**
* 查询所有部门数据
* @param deptVo
* @return
*/
@RequestMapping("loadAllDept")
public DataGridView loadAllDept(DeptVo deptVo){
IPage page = new Page<>(deptVo.getPage(),deptVo.getLimit());
//进行模糊查询
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(deptVo.getName()),"name",deptVo.getName());
queryWrapper.like(StringUtils.isNotBlank(deptVo.getRemark()),"remark",deptVo.getRemark());
queryWrapper.like(StringUtils.isNotBlank(deptVo.getAddress()),"address",deptVo.getAddress());
queryWrapper.eq(deptVo.getId()!=null,"id",deptVo.getId()).or().eq(deptVo.getId()!=null,"pid",deptVo.getId());
queryWrapper.orderByAsc("ordernum");
//进行查询
deptService.page(page,queryWrapper);
//返回DataGridView
return new DataGridView(page.getTotal(),page.getRecords());
}
/**
* 添加部门
* @param deptVo
* @return
*/
@RequestMapping("addDept")
public ResultObj addDept(DeptVo deptVo){
try {
deptVo.setCreatetime(new Date());
deptService.save(deptVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
/**
* 加载排序码
* @return
*/
@RequestMapping("loadDeptMaxOrderNum")
public Map loadDeptMaxOrderNum(){
Map map = new HashMap();
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("ordernum");
IPage page = new Page<>(1,1);
List list = deptService.page(page,queryWrapper).getRecords();
if (list.size()>0){
map.put("value",list.get(0).getOrdernum()+1);
}else {
map.put("value",1);
}
return map;
}
/**
* 更新部门
* @param deptVo
* @return
*/
@RequestMapping("updateDept")
public ResultObj updateDept(DeptVo deptVo){
try {
deptService.updateById(deptVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
/**
* 检查当前部门是否有子部门
* @param deptVo
* @return
*/
@RequestMapping("checkDeptHasChildrenNode")
public Map checkDeptHasChildrenNode(DeptVo deptVo){
Map map = new HashMap();
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("pid",deptVo.getId());
List list = deptService.list(queryWrapper);
if (list.size()>0){
map.put("value",true);
}else {
map.put("value",false);
}
return map;
}
/**
* 删除部门
* @param deptVo
* @return
*/
@RequestMapping("deleteDept")
public ResultObj deleteDept(DeptVo deptVo){
try {
deptService.removeById(deptVo.getId());
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
}