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> getList(DeptQuery req) { // PageHelper.startPage(req.getPageNum(),req.getPageSize()); List depts = deptService.getList(req); PageInfo 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 tree() { List 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 users = userService.selectList(new EntityWrapper().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 + "],"); } } }