package com.tievd.cube.modules.system.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.tievd.cube.commons.base.CubeController; import com.tievd.cube.commons.base.Result; import com.tievd.cube.modules.system.entity.SysDepartPermission; import com.tievd.cube.modules.system.entity.SysDepartRolePermission; import com.tievd.cube.modules.system.model.api.request.SaveDataRuleRequest; import com.tievd.cube.modules.system.model.api.request.SaveDeptRolePermissionRequest; import com.tievd.cube.modules.system.model.api.response.LoadDataRuleResponse; import com.tievd.cube.modules.system.model.api.response.TreeListForDeptRoleResponse; import com.tievd.cube.modules.system.service.ISysDepartPermissionService; import com.tievd.cube.modules.system.service.ISysDepartRolePermissionService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.stream.Collectors; /** * 部门权限 * * @author xinwuy * @version V1.0.0 * @since 2020-02-11 */ @Slf4j @Tag(name = "部门权限相关接口") @RestController @RequestMapping("/sys/depart/permission") public class SysDepartPermissionController extends CubeController { @Autowired private ISysDepartRolePermissionService sysDepartRolePermissionService; /** * 查询指定部门是否有数据规则 * * @param permissionId 权限id * @param departId 部门id */ @GetMapping("/dataRule/{permissionId}/{departId}") public Result loadDataRule(@PathVariable String permissionId, @PathVariable String departId) { LoadDataRuleResponse response = service.loadDataRule(permissionId, departId); return Result.ok(response); } /** * 保存数据规则 * * @param request 参数 * @apiNote 保存数据规则至部门菜单关联表 */ @PostMapping("/dataRule") public Result saveDataRule(@Validated @RequestBody SaveDataRuleRequest request) { service.saveDataRule(request.getPermissionId(), request.getDepartId(), request.getDataRuleIds()); return Result.ok(); } /** * 查询角色授权 * * @param roleId 角色id */ @GetMapping("/queryDeptRolePermission") public Result> queryDeptRolePermission(@RequestParam String roleId) { List list = sysDepartRolePermissionService.list(new QueryWrapper().lambda().eq(SysDepartRolePermission::getRoleId, roleId)); List permissions = list.stream().map(SysDepartRolePermission -> String.valueOf(SysDepartRolePermission.getPermissionId())).collect(Collectors.toList()); return Result.ok(permissions); } /** * 保存角色授权 * * @param request 参数 */ @PostMapping("/saveDeptRolePermission") public Result saveDeptRolePermission(@RequestBody SaveDeptRolePermissionRequest request) { sysDepartRolePermissionService.saveDeptRolePermission(request.getRoleId(), request.getPermissionIds(), request.getLastpermissionIds()); return Result.ok(); } /** * 查询部门用户角色授权功能 * * @param departId 部门id * @apiNote 查询菜单权限树 */ @GetMapping("/queryTreeListForDeptRole") public Result queryTreeListForDeptRole(@RequestParam String departId) { TreeListForDeptRoleResponse response = service.queryTreeListForDeptRole(departId); return Result.ok(response); } }