liujie
2026-06-09 c96fbe6b0aeb413a17c429133ee6d81d138144b9
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.xiaopeng.account.controller;
 
 
import com.xiaopeng.account.model.dto.SysRoleAddDTO;
import com.xiaopeng.account.model.dto.SysRoleEditDTO;
import com.xiaopeng.account.model.query.SysRolePageQuery;
import com.xiaopeng.account.model.vo.SysRoleDetailVO;
import com.xiaopeng.account.model.vo.SysRolePageVO;
import com.xiaopeng.account.service.ISysRoleService;
import com.xiaopeng.api.model.account.SysRole;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.log.annotation.AdminOperationLog;
import com.xiaopeng.common.log.enums.AdminBusinessType;
import com.xiaopeng.common.log.enums.AdminOperationType;
import com.xiaopeng.common.security.annotation.Logical;
import com.xiaopeng.common.security.annotation.RequiresPermissions;
import io.swagger.annotations.*;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Lazy;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.xiaopeng.common.log.annotation.AdminOperationLog;
import com.xiaopeng.common.log.enums.AdminBusinessType;
import com.xiaopeng.common.log.enums.AdminOperationType;
 
/**
 * <p>
 * 角色管理 前端控制器
 * </p>
 *
 * @author mitao
 * @since 2026-02-03
 */
@RequiredArgsConstructor(onConstructor_ = @Lazy)
@RestController
public class SysRoleController {
 
    private final ISysRoleService sysRoleService;
 
 
 
    @ApiOperation(value = "新增角色", tags = {"管理后台-角色管理"})
    @RequiresPermissions(value = {"role:add"}, logical = Logical.OR)
    @PostMapping("/api/v1/role/add")
    @AdminOperationLog(
            businessType = AdminBusinessType.ROLE_MANAGEMENT,
            operationType = AdminOperationType.ADD,
            content = "新增角色",
            appendRequestData = true
    )
    public R<?> add(@Validated @RequestBody SysRoleAddDTO dto) {
        sysRoleService.addRole(dto);
        return R.ok();
    }
 
    @ApiOperation(value = "编辑角色", tags = {"管理后台-角色管理"})
    @RequiresPermissions(value = {"role:edit"}, logical = Logical.OR)
    @PostMapping("/api/v1/role/edit")
    @AdminOperationLog(
            businessType = AdminBusinessType.ROLE_MANAGEMENT,
            operationType = AdminOperationType.EDIT,
            content = "编辑角色",
            appendRequestData = true
    )
    public R<?> edit(@Validated @RequestBody SysRoleEditDTO dto) {
        sysRoleService.editRole(dto);
        return R.ok();
    }
 
    @ApiOperation(value = "角色详情", tags = {"管理后台-角色管理"})
    @RequiresPermissions(value = {"role:info"}, logical = Logical.OR)
    @GetMapping("/api/v1/role/queryById")
    public R<SysRoleDetailVO> queryById(@ApiParam(value = "角色id", required = true) @RequestParam Long id) {
        SysRoleDetailVO detail = sysRoleService.getRoleDetail(id);
        return R.ok(detail);
    }
 
    @ApiOperation(value = "角色分页列表", tags = {"管理后台-角色管理"})
    @RequiresPermissions(value = {"role:list"}, logical = Logical.OR)
    @PostMapping("/api/v1/role/pageList")
    public R<PageInfo<SysRolePageVO>> pageList(@Validated @RequestBody SysRolePageQuery query) {
        PageInfo<SysRolePageVO> pageInfo = sysRoleService.pageList(query);
        return R.ok(pageInfo);
    }
 
    @ApiOperation(value = "删除角色", tags = {"管理后台-角色管理"})
    @RequiresPermissions(value = {"role:delete"}, logical = Logical.OR)
    @DeleteMapping("/api/v1/role/delete/{id}")
    @AdminOperationLog(
            businessType = AdminBusinessType.ROLE_MANAGEMENT,
            operationType = AdminOperationType.DELETE,
            content = "删除角色",
            appendRequestData = true
    )
    public R<?> delete(@ApiParam(value = "角色id", required = true) @PathVariable Long id) {
        sysRoleService.deleteRole(id);
        return R.ok();
    }
 
 
    /**
     * 根据id获取角色数据
     * @param id
     * @return
     */
    @PostMapping("/logan/api/v1/role/getRoleById")
    public R<SysRole> getRoleById(@RequestParam("id") Long id){
        SysRole sysRole = sysRoleService.getById(id);
        return R.ok(sysRole);
    }
 
 
 
    /**
     * 检查菜单是否被角色使用
     * @param menuId
     * @return
     */
    @PostMapping("/logan/inner/sysRoleMenu/checkMenuExistRole")
    public R<Boolean> checkMenuExistRole(Long menuId){
        Boolean checked = sysRoleService.checkMenuExistRole(menuId);
        return R.ok(checked);
    }
 
    @ApiOperation(value = "获取角色不分页列表", tags = {"管理后台-车队管理"})
    @GetMapping("/api/v1/role/list")
    public R<?> getList() {
        return R.ok(sysRoleService.list());
    }
}