package com.stylefeng.guns.modular.code.controller;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.stylefeng.guns.core.common.annotion.BussinessLog;
|
import com.stylefeng.guns.core.common.constant.dictmap.DeptDict;
|
import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
|
import com.stylefeng.guns.core.exception.GunsException;
|
import com.stylefeng.guns.core.mutidatasource.annotion.DataSource;
|
import com.stylefeng.guns.core.node.ZTreeNode;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
import com.stylefeng.guns.modular.system.dto.DeptQuery;
|
import com.stylefeng.guns.modular.system.model.Dept;
|
import com.stylefeng.guns.modular.system.model.User;
|
import com.stylefeng.guns.modular.system.service.IDeptService;
|
import com.stylefeng.guns.modular.system.service.IUserService;
|
import com.stylefeng.guns.modular.system.util.ResultUtil;
|
import com.stylefeng.guns.modular.system.vo.DeptVO;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
@Controller
|
@RequestMapping("/base/dept")
|
public class SysDeptController {
|
|
@Autowired
|
private IDeptService deptService;
|
|
|
@DataSource(name = "dataSourceBiz")
|
@GetMapping(value = "/list")
|
@ApiOperation(value = "列表", tags = {"后台-部门管理"})
|
@ResponseBody
|
public ResultUtil<PageInfo<Dept>> getList(DeptQuery req) {
|
// PageHelper.startPage(req.getPageNum(),req.getPageSize());
|
List<Dept> depts = deptService.getList(req);
|
PageInfo<Dept> info=new PageInfo<>(depts);
|
return ResultUtil.success(info);
|
}
|
|
@DataSource(name = "dataSourceGuns")
|
@ApiOperation(value = "添加部门", tags = {"后台-部门管理"})
|
@PostMapping(value = "/add")
|
@ResponseBody
|
|
public ResultUtil add(Dept dept) {
|
//完善pids,根据pid拿到pid的pids
|
dept.setPid(0);
|
deptSetPids(dept);
|
dept.setInsertTime(new Date());
|
dept.setSimplename(dept.getFullname());
|
this.deptService.insert(dept);
|
return ResultUtil.success("添加成功");
|
}
|
|
@DataSource(name = "dataSourceBiz")
|
@GetMapping(value = "/tree")
|
@ApiOperation(value = "获取部下拉框", tags = {"后台-部门管理"})
|
@ResponseBody
|
public List<Dept> tree() {
|
List<ZTreeNode> tree = this.deptService.tree();
|
tree.add(ZTreeNode.createParent());
|
|
return deptService.selectList(null);
|
// return tree;
|
}
|
@Autowired
|
private IUserService userService;
|
@DeleteMapping ("/delete")
|
@ResponseBody
|
@ApiOperation(value = "删除部门", tags = {"后台-部门管理"})
|
public ResultUtil delete(String ids) {
|
String[] split = ids.split(",");
|
for (String id : split) {
|
List<User> users = userService.selectList(new EntityWrapper<User>().eq("deptid",Integer.valueOf(id)));
|
if (!users.isEmpty()){
|
return ResultUtil.error("当前部门已绑定用户,无法删除");
|
}
|
deptService.deleteById(Integer.valueOf(id));
|
}
|
return ResultUtil.success("删除成功");
|
}
|
|
@GetMapping ("pre/edit/{deptId}")
|
public Dept deptUpdate(@PathVariable Integer deptId, Model model) {
|
Dept dept = deptService.selectById(deptId);
|
return dept;
|
}
|
|
|
@DataSource(name = "dataSourceGuns")
|
@ApiOperation(value = "修改部门", tags = {"后台-部门管理"})
|
@PutMapping (value = "/update")
|
@ResponseBody
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "部门id", name = "id"),
|
@ApiImplicitParam(value = "部门名称", name = "fullname"),
|
})
|
public ResultUtil update(Integer id,String fullname ) {
|
Dept dept1 = deptService.selectById(id);
|
dept1.setFullname(fullname);
|
dept1.setSimplename(fullname);
|
deptService.updateById(dept1);
|
return ResultUtil.success("修改成功");
|
}
|
|
|
private void deptSetPids(Dept dept) {
|
if (ToolUtil.isEmpty(dept.getPid()) || dept.getPid().equals(0)) {
|
dept.setPid(0);
|
dept.setPids("[0],");
|
} else {
|
int pid = dept.getPid();
|
Dept temp = deptService.selectById(pid);
|
String pids = temp.getPids();
|
dept.setPid(pid);
|
dept.setPids(pids + "[" + pid + "],");
|
}
|
}
|
}
|