/** * Copyright (c) 2018 人人开源 All rights reserved. * * https://www.renren.io * * 版权所有,侵权必究! */ package com.zt.modules.sys.controller; import com.zt.common.annotation.LogOperation; import com.zt.common.annotation.QueryParam; import com.zt.common.constant.Constant; import com.zt.common.db.query.QueryFilter; import com.zt.common.servlet.PageResult; import com.zt.common.servlet.Result; import com.zt.common.validator.AssertUtils; import com.zt.common.validator.ValidatorUtils; import com.zt.common.validator.group.AddGroup; import com.zt.common.validator.group.DefaultGroup; import com.zt.common.validator.group.UpdateGroup; import com.zt.core.sys.model.SysUser; import com.zt.modules.sys.dto.RoleDataScopeDto; import com.zt.modules.sys.dto.RoleMenuDto; import com.zt.modules.sys.dto.UserDto; import com.zt.modules.sys.model.SysRole; import com.zt.modules.sys.model.SysRoleDataScope; import com.zt.modules.sys.model.SysRoleMenu; import com.zt.modules.sys.model.SysRoleUser; import com.zt.modules.sys.service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import java.util.List; /** * 角色管理 * * @author hehz */ @RestController @RequestMapping("/sys/role") @Api(tags = "角色管理") public class SysRoleController { @Autowired private SysRoleService sysRoleService; @Autowired private SysRoleUserService sysRoleUserService; @Autowired private SysInterfaceService sysInterfaceService; @Autowired private SysRoleMenuService sysRoleMenuService; @Autowired private SysRoleDataScopeService sysRoleDataScopeService; @GetMapping("page") @ApiOperation("分页") @ApiImplicitParams({ @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), @ApiImplicitParam(name = "name", value = "角色名", dataType = Constant.QT.STRING, format = "name^LK"), @ApiImplicitParam(name = "companyId", value = "公司Id", required = true, dataType = Constant.QT.STRING, format = "company_id^EQ") }) @RequiresPermissions("sys:role:page") public PageResult page(@ApiIgnore @QueryParam QueryFilter queryFilter) { List list = sysRoleService.page(queryFilter); return PageResult.ok(list); } @GetMapping("list") @ApiOperation("列表") @RequiresPermissions("sys:role:list") public Result> list(@QueryParam Long deptId) { List data = sysRoleService.listWithParents(deptId); return Result.ok(data); } @GetMapping("{id}") @ApiOperation("信息") @RequiresPermissions("sys:role:info") public Result get(@PathVariable("id") Long id) { SysRole data = sysRoleService.get(id); return Result.ok(data); } @GetMapping("roleMenu") @ApiOperation("权限") public Result> roleMenu(){ List sysRoleMenus = sysRoleMenuService.roleMenu(); return Result.ok(sysRoleMenus); } @PostMapping @ApiOperation("新增") @LogOperation("权限管理--->新增") @RequiresPermissions("sys:role") public Result insert(@RequestBody SysRole entity) { // 效验数据 ValidatorUtils.validateEntity(entity, AddGroup.class, DefaultGroup.class); sysRoleService.insert(entity); return Result.ok(); } @PutMapping @ApiOperation("修改") @LogOperation("权限管理--->修改") @RequiresPermissions("sys:role:update") public Result update(@RequestBody SysRole entity) { // 效验数据 ValidatorUtils.validateEntity(entity, UpdateGroup.class, DefaultGroup.class); sysRoleService.update(entity); return Result.ok(); } @DeleteMapping @ApiOperation("删除") @LogOperation("权限管理--->删除") @RequiresPermissions("sys:role:delete") public Result delete(@RequestBody Long[] ids) { // 效验数据 AssertUtils.isArrayEmpty(ids, "id"); sysRoleService.delete(ids); return Result.ok(); } @GetMapping("menu") @ApiOperation("获取菜单权限") @RequiresPermissions("sys:role:info") public Result> getRoleMenu(@QueryParam Long roleId) { return Result.ok(sysRoleMenuService.getRoleMenuIds(roleId)); } @PostMapping("menu") @ApiOperation("配置菜单权限") @LogOperation("权限管理--->配置菜单权限") @RequiresPermissions("sys:role:menu") public Result setRoleMenu(@RequestBody RoleMenuDto entity) { // 效验数据 ValidatorUtils.validateEntity(entity, UpdateGroup.class, DefaultGroup.class); sysRoleMenuService.saveOrUpdate(entity.getRoleId(), entity.getMenuIdList()); return Result.ok(); } @GetMapping("dataScope") @ApiOperation("获取角色数据权限") @RequiresPermissions("sys:role:info") public Result> getRoleDataScope(@QueryParam Long roleId) { return Result.ok(sysRoleDataScopeService.getByRoleId(roleId)); } @PostMapping("dataScope") @ApiOperation("配置角色数据权限") @RequiresPermissions("sys:role:dataScope") public Result setRoleDataScope(@RequestBody RoleDataScopeDto entity) { // 效验数据 ValidatorUtils.validateEntity(entity, UpdateGroup.class, DefaultGroup.class); sysRoleDataScopeService.saveOrUpdate(entity.getRoleId(), entity.getDataScopeList()); return Result.ok(); } @GetMapping("roleUsers") @ApiOperation("获取角色人员") @RequiresPermissions("sys:role:info") public PageResult getUserRoles(@QueryParam Long roleId) { List list = sysRoleService.getRoleUsers(roleId); return PageResult.ok(list); } @PostMapping("addroleuser") @ApiOperation("添加角色人员") @LogOperation("权限管理--->添加角色人员") @RequiresPermissions("sys:role:update") public Result addRoleUser(@RequestBody RoleMenuDto model) { sysRoleUserService.addRoleUser(model.getRoleId(),model.getMenuIdList()); return Result.ok(); } @PostMapping("deleteRoleUsers") @ApiOperation("删除角色用户") @LogOperation("权限管理--->删除角色用户") public Result deleteRoleUsers(@RequestBody SysRoleUser model) { List list = sysRoleUserService.getSingleRoleUsers(model.getRoleId(), model.getUserId()); sysRoleUserService.deleteLogic(list); return Result.ok(); } }