zj
2024-06-03 a15e4f9fa2c34c4f4bd69f924c77e72a4c80e5ec
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package com.crm.controller;
 
import com.crm.domain.SysRole;
import com.crm.service.ISysRoleService;
import com.crm.service.impl.SysPermissionService;
import com.crm.service.impl.TokenService;
import com.crm.vo.AjaxResult;
import com.crm.vo.LoginInfo;
import com.nq.common.constant.UserConstants;
import com.nq.common.controller.BaseController;
import com.nq.common.page.TableDataInfo;
import com.nq.pojo.User;
import com.nq.utils.BeanUtils;
import com.nq.utils.ServletUtils;
import com.nq.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import java.util.List;
 
/**
 * 角色信息
 *
 * @author ruoyi
 */
@RestController
@RequestMapping("/system/roles")
public class SysRoleController extends BaseController
{
    @Autowired
    private ISysRoleService roleService;
 
    @Autowired
    private TokenService tokenService;
 
    @Autowired
    private SysPermissionService permissionService;
 
 
    @GetMapping("/list")
    public TableDataInfo list(SysRole role)
    {
 
        startPage();
        List<SysRole> list = roleService.selectRoleList(role);
        return getDataTable(list);
    }
 
 
    /**
     * 根据角色编号获取详细信息
     */
    @GetMapping(value = "/{roleId}")
    public AjaxResult getInfo(@PathVariable Long roleId)
    {
        return AjaxResult.success(roleService.selectRoleById(roleId));
    }
 
    /**
     * 新增角色
     */
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysRole role)
    {
        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
        {
            return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
        }
        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
        {
            return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
        }
//        role.setCreateBy(SecurityUtils.getUsername());
        return toAjax(roleService.insertRole(role));
 
    }
 
    /**
     * 修改保存角色
     */
    @PutMapping
    public AjaxResult edit(@Validated @RequestBody SysRole role)
    {
        roleService.checkRoleAllowed(role);
        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
        {
            return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
        }
        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
        {
            return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
        }
//        role.setUpdateBy(SecurityUtils.getUsername());
 
        if (roleService.updateRole(role) > 0)
        {
            // 更新缓存用户权限
            LoginInfo loginUser = tokenService.getLoginInfo(ServletUtils.getRequest());
            User user = new User();
            BeanUtils.copyBeanProp(user,loginUser);
            if (StringUtils.isNotNull(user) && !user.isAdmin())
            {
                loginUser.setPermissions(permissionService.getMenuPermission(user));
            }
            return AjaxResult.success();
        }
        return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
    }
 
    /**
     * 修改保存数据权限
     */
    @PutMapping("/dataScope")
    public AjaxResult dataScope(@RequestBody SysRole role)
    {
        roleService.checkRoleAllowed(role);
        return toAjax(roleService.authDataScope(role));
    }
 
    /**
     * 状态修改
     */
    @PutMapping("/changeStatus")
    public AjaxResult changeStatus(@RequestBody SysRole role)
    {
        roleService.checkRoleAllowed(role);
//        role.setUpdateBy(SecurityUtils.getUsername());
        return toAjax(roleService.updateRoleStatus(role));
    }
 
    /**
     * 删除角色
     */
    @DeleteMapping("/{roleIds}")
    public AjaxResult remove(@PathVariable Long[] roleIds)
    {
        return toAjax(roleService.deleteRoleByIds(roleIds));
    }
 
    /**
     * 获取角色选择框列表
     */
    @GetMapping("/optionselect")
    public AjaxResult optionselect()
    {
        return AjaxResult.success(roleService.selectRoleAll());
    }
}