peter
2025-08-18 c50561d007e420f7397f73afce8966231973ec54
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
/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许,不可做商业用途!
 *
 * 版权所有,侵权必究!
 */
 
package com.yami.trading.sys.controller;
 
import java.util.List;
 
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yami.trading.sys.model.SysRole;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
 
import com.yami.trading.common.util.PageParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yami.trading.sys.service.SysMenuService;
import com.yami.trading.sys.service.SysRoleService;
import com.yami.trading.common.annotation.SysLog;
 
import cn.hutool.core.util.StrUtil;
 
 
 
/**
 * 角色管理
 * @author lgh
 */
@RestController
@RequestMapping("/sys/role")
@Api(tags = "角色管理")
public class SysRoleController{
    @Autowired
    private SysRoleService sysRoleService;
 
    @Autowired
    private SysMenuService sysMenuService;
 
    /**
     * 角色列表
     */
    @GetMapping("/page")
//    @PreAuthorize("@pms.hasPermission('sys:role:page')")
    public ResponseEntity<IPage<SysRole>> page(String roleName,PageParam<SysRole> page){
        IPage<SysRole> sysRoles = sysRoleService.page(page,new LambdaQueryWrapper<SysRole>().like(StrUtil.isNotBlank(roleName),SysRole::getRoleName,roleName)
                .orderByDesc(SysRole::getCreateTime));
//        for (SysRole s: sysRoles.getRecords()){
//            List<Long> menuList = sysMenuService.listMenuIdByRoleId(s.getRoleId());
//        }
        return ResponseEntity.ok(sysRoles);
    }
 
    /**
     * 角色列表
     */
    @GetMapping("/list")
//    @PreAuthorize("@pms.hasPermission('sys:role:list')")
    public ResponseEntity<List<SysRole>> list(){
        List<SysRole> list = sysRoleService.list();
        return ResponseEntity.ok(list);
    }
 
    /**
     * 角色信息
     */
    @GetMapping("/info/{roleId}")
    // @PreAuthorize("@pms.hasPermission('sys:role:info')")
    public ResponseEntity<SysRole> info(@PathVariable("roleId") Long roleId){
        SysRole role = sysRoleService.getById(roleId);
 
        //查询角色对应的菜单
        List<Long> menuList = sysMenuService.listMenuIdByRoleId(roleId);
        role.setMenuIdList(menuList);
 
        return ResponseEntity.ok(role);
    }
 
    /**
     * 保存角色
     */
    @SysLog("保存角色")
    @PostMapping
//    @PreAuthorize("@pms.hasPermission('sys:role:save')")
    public ResponseEntity<Void> save(@RequestBody SysRole role){
        sysRoleService.saveRoleAndRoleMenu(role);
        return ResponseEntity.ok().build();
    }
 
    /**
     * 修改角色
     */
    @SysLog("修改角色")
    @PutMapping
//    @PreAuthorize("@pms.hasPermission('sys:role:update')")
    public ResponseEntity<Void> update(@RequestBody SysRole role){
        sysRoleService.updateRoleAndRoleMenu(role);
        return ResponseEntity.ok().build();
    }
 
    /**
     * 删除角色
     */
    @SysLog("删除角色")
    @DeleteMapping
//    @PreAuthorize("@pms.hasPermission('sys:role:delete')")
    public ResponseEntity<Void> delete(@RequestBody Long[] roleIds){
        sysRoleService.deleteBatch(roleIds);
        return ResponseEntity.ok().build();
    }
}