package com.huaheng.pc.system.dept.controller; import java.util.List; import java.util.Map; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.huaheng.common.utils.StringUtils; import com.huaheng.framework.aspectj.lang.annotation.Log; import com.huaheng.framework.aspectj.lang.constant.BusinessType; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.system.dept.domain.Dept; import com.huaheng.pc.system.dept.service.IDeptService; /** * 部门信息 * * @author huaheng */ @Controller @RequestMapping("/system/dept") public class DeptController extends BaseController { private String prefix = "system/dept"; @Autowired private IDeptService deptService; @RequiresPermissions("system:dept:view") @GetMapping() public String dept() { return prefix + "/dept"; } @RequiresPermissions("system:dept:list") @GetMapping("/list") @ResponseBody public List<Dept> list(Dept dept) { List<Dept> deptList = deptService.selectDeptList(dept); return deptList; } /** * 查看部门 */ @Log(title = "系统管理-部门管理",operating = "查看部门信息", action = BusinessType.GRANT) @GetMapping("/add/{parentId}") public String add(@PathVariable("parentId") Integer parentId, ModelMap mmap) { mmap.put("dept", deptService.selectDeptById(parentId)); return prefix + "/add"; } /** * 新增保存部门 */ @Log(title = "系统管理-部门管理",operating = "新增部门", action = BusinessType.INSERT) @RequiresPermissions("system:dept:add") @PostMapping("/add") @ResponseBody public AjaxResult addSave(Dept dept) { return toAjax(deptService.insertDept(dept)); } /** * 修改 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { mmap.put("dept", deptService.selectDeptById(id)); return prefix + "/edit"; } /** * 修改 */ @Log(title = "系统管理-部门管理",operating = "修改部门信息", action = BusinessType.UPDATE) @RequiresPermissions("system:dept:edit") @PostMapping("/edit") @ResponseBody public AjaxResult editSave(Dept dept) { return toAjax(deptService.updateDept(dept)); } /** * 删除 */ @Log(title = "系统管理-部门管理",operating = "删除部门", action = BusinessType.DELETE) @RequiresPermissions("system:dept:remove") @PostMapping("/remove/{id}") @ResponseBody public AjaxResult remove(@PathVariable("id") Integer id) { if (deptService.selectDeptCount(id) > 0) { return AjaxResult.error("存在下级部门,不允许删除"); } if (deptService.checkDeptExistUser(id)) { return AjaxResult.error("部门存在用户,不允许删除"); } return toAjax(deptService.deleteDeptById(id)); } /** * 校验部门名称 */ @PostMapping("/checkDeptNameUnique") @ResponseBody public String checkDeptNameUnique(Dept dept) { String uniqueFlag = "0"; if (StringUtils.isNotNull(dept)) { uniqueFlag = deptService.checkDeptNameUnique(dept); } return uniqueFlag; } /** * 选择部门树 */ @GetMapping("/selectDeptTree/{id}") public String selectDeptTree(@PathVariable("id") Integer id, ModelMap mmap) { mmap.put("dept", deptService.selectDeptById(id)); return prefix + "/tree"; } /** * 加载部门列表树 */ @GetMapping("/treeData") @ResponseBody public List<Map<String, Object>> treeData() { List<Map<String, Object>> tree = deptService.selectDeptTree(); return tree; } }