package com.bootdo.system.controller; import com.bootdo.common.annotation.Log; import com.bootdo.common.config.Constant; import com.bootdo.common.controller.BaseController; import com.bootdo.common.domain.Tree; import com.bootdo.common.utils.R; import com.bootdo.common.utils.ShiroUtils; import com.bootdo.system.domain.DeptDO; import com.bootdo.system.domain.UserDO; import com.bootdo.system.service.DeptService; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 部门管理 * * @author chglee * @email 1992lcg@163.com * @date 2017-09-27 14:40:36 */ @Controller @RequestMapping("/system/sysDept") public class DeptController extends BaseController { private String prefix = "system/dept"; @Autowired private DeptService sysDeptService; @Log("访问机构管理") @GetMapping() @RequiresPermissions("system:sysDept:sysDept") String dept() { return prefix + "/dept"; } //@ApiOperation(value = "获取部门列表", notes = "") @ResponseBody @GetMapping("/list") @RequiresPermissions("system:sysDept:sysDept") public List list() { Map query = new HashMap<>(16); List sysDeptList = sysDeptService.list(query); return sysDeptList; } @GetMapping("/add/{pId}") @RequiresPermissions("system:sysDept:add") String add(@PathVariable("pId") Long pId, Model model) { model.addAttribute("pId", pId); if (pId == 0) { model.addAttribute("pName", "总部门"); } else { model.addAttribute("pName", sysDeptService.get(pId).getName()); } return prefix + "/add"; } @GetMapping("/edit/{deptId}") @RequiresPermissions("system:sysDept:edit") String edit(@PathVariable("deptId") Long deptId, Model model) { DeptDO sysDept = sysDeptService.get(deptId); model.addAttribute("sysDept", sysDept); if (Constant.DEPT_ROOT_ID.equals(sysDept.getParentId())) { model.addAttribute("parentDeptName", "无"); } else { DeptDO parDept = sysDeptService.get(sysDept.getParentId()); model.addAttribute("parentDeptName", parDept.getName()); } return prefix + "/edit"; } /** * 保存 */ @ResponseBody @PostMapping("/save") @RequiresPermissions("system:sysDept:add") public R save(DeptDO sysDept) { if (Constant.DEMO_ACCOUNT.equals(getUsername())) { return R.error(1, "演示系统不允许修改,完整体验请部署程序"); } if (sysDeptService.save(sysDept) > 0) { return R.ok(); } return R.error(); } /** * 修改 */ @ResponseBody @RequestMapping("/update") @RequiresPermissions("system:sysDept:edit") public R update(DeptDO sysDept) { if (Constant.DEMO_ACCOUNT.equals(getUsername())) { return R.error(1, "演示系统不允许修改,完整体验请部署程序"); } if (sysDeptService.update(sysDept) > 0) { return R.ok(); } return R.error(); } /** * 删除 */ @PostMapping("/remove") @ResponseBody @RequiresPermissions("system:sysDept:remove") public R remove(Long deptId) { if (Constant.DEMO_ACCOUNT.equals(getUsername())) { return R.error(1, "演示系统不允许删除,完整体验请部署程序"); } Map map = new HashMap(); map.put("parentId", deptId); if (sysDeptService.count(map) > 0) { return R.error(1, "包含下级部门,不允许删除"); } if (sysDeptService.checkDeptHasUser(deptId)) { if (sysDeptService.remove(deptId) > 0) { return R.ok(); } } else { return R.error(1, "部门包含用户,不允许删除"); } return R.error(); } /** * 删除 */ @PostMapping("/batchRemove") @ResponseBody @RequiresPermissions("system:sysDept:batchRemove") public R remove(@RequestParam("ids[]") Long[] deptIds) { if (Constant.DEMO_ACCOUNT.equals(getUsername())) { return R.error(1, "演示系统不允许修改,完整体验请部署程序"); } sysDeptService.batchRemove(deptIds); return R.ok(); } @GetMapping("/tree") @ResponseBody public Tree tree() { Tree tree = new Tree(); tree = sysDeptService.getTree(); return tree; } @GetMapping("/treeView") String treeView() { return prefix + "/deptTree"; } /** * @Description: 获取当前部门平级部门信息 * @Author: wangp * @Date: 2022/3/21 19:55 * @Return: List */ @ResponseBody @GetMapping("/list/queryDept") public List queryDept() { // 用户信息 UserDO currUser = ShiroUtils.getUser(); String deptId = ""; if (null != currUser) { deptId = String.valueOf(ShiroUtils.getUser().getDeptId()); } // 查询列表数据 List list = sysDeptService.queryDept(deptId); return list; } }