peng
2026-03-18 e59a0201057ba67cad425fed804c82ff4ba0c6f1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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<SysDepartPermission, ISysDepartPermissionService> {
 
    @Autowired
    private ISysDepartRolePermissionService sysDepartRolePermissionService;
 
    /**
     * 查询指定部门是否有数据规则
     *
     * @param permissionId 权限id
     * @param departId     部门id
     */
    @GetMapping("/dataRule/{permissionId}/{departId}")
    public Result<LoadDataRuleResponse> 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<List<String>> queryDeptRolePermission(@RequestParam String roleId) {
        List<SysDepartRolePermission> list = sysDepartRolePermissionService.list(new QueryWrapper<SysDepartRolePermission>().lambda().eq(SysDepartRolePermission::getRoleId, roleId));
        List<String> 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<TreeListForDeptRoleResponse> queryTreeListForDeptRole(@RequestParam String departId) {
        TreeListForDeptRoleResponse response = service.queryTreeListForDeptRole(departId);
        return Result.ok(response);
    }
}