package com.stylefeng.guns.modular.system.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.modular.system.utils.tips.ErrorTip; import com.stylefeng.guns.core.common.annotion.BussinessLog; import com.stylefeng.guns.core.common.annotion.Permission; import com.stylefeng.guns.core.common.constant.dictmap.DeptDict; import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; import com.stylefeng.guns.core.common.exception.BizExceptionEnum; import com.stylefeng.guns.core.exception.GunsException; import com.stylefeng.guns.core.log.LogObjectHolder; import com.stylefeng.guns.core.node.ZTreeNode; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.Dept; import com.stylefeng.guns.modular.system.model.Role; import com.stylefeng.guns.modular.system.service.IDeptService; import com.stylefeng.guns.modular.system.service.IRoleService; import com.stylefeng.guns.modular.system.utils.tips.SuccessTip; import com.stylefeng.guns.modular.system.warpper.DeptWarpper; import io.swagger.annotations.Api; 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.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * 部门控制器 * * @author fengshuonan * @Date 2017年2月17日20:27:22 */ @RequestMapping("/api/dept") public class DeptController extends BaseController { @Autowired private IDeptService deptService; @Autowired private IRoleService service; /** * 获取部门的tree列表 */ @RequestMapping(value = "/tree") @ResponseBody public List tree() { List tree = this.deptService.tree(); tree.add(ZTreeNode.createParent()); return tree; } /** * 新增部门 */ @ApiOperation(value = "新增部门",notes="新增部门") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/add") @ResponseBody public Object add(Dept dept) { return this.deptService.insert(dept); } /** * 获取所有部门列表 */ @ApiOperation(value = "获取部门列表",notes="获取部门列表") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "condition", value = "名称(用于模糊搜索)", required = false, dataType = "String"), }) @GetMapping(value = "/list") @ResponseBody public Object list(String condition) { List> list = this.deptService.list(condition); return new SuccessTip(list); } @ApiOperation(value = "获取根据部门id获取角色",notes="获取根据部门id获取角色") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "id", value = "部门id", required = true, dataType = "String"), }) @GetMapping(value = "/getRoleFromDept") @ResponseBody public Object getRoleFromDept(String id) { List roles = service.selectList(new EntityWrapper().eq("deptid", id)); return new SuccessTip(roles); } /** * 部门详情 */ @RequestMapping(value = "/detail/{deptId}") @Permission @ResponseBody public Object detail(@PathVariable("deptId") Integer deptId) { return deptService.selectById(deptId); } /** * 修改部门 */ @ApiOperation(value = "修改部门",notes="修改部门") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/update") @ResponseBody public Object update(Dept dept) { if (ToolUtil.isEmpty(dept) || dept.getId() == null) { throw new GunsException(BizExceptionEnum.REQUEST_NULL); } deptService.updateById(dept); return SUCCESS_TIP; } /** * 删除部门 */ @ApiOperation(value = "删除部门",notes="删除部门") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "deptId", value = "部门Id", required = true, dataType = "int"), }) @DeleteMapping(value = "/delete") @ResponseBody public Object delete(@RequestParam Integer deptId) { //缓存被删除的部门名称 LogObjectHolder.me().set(ConstantFactory.me().getDeptName(deptId)); Dept dept = deptService.selectById(deptId); dept.setRemove(1); deptService.updateById(dept); return SUCCESS_TIP; } }