package com.ruoyi.sange.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.sange.domain.SystemRole;
|
import com.ruoyi.sange.domain.SystemRoleMenu;
|
import com.ruoyi.sange.service.ISystemRoleMenuService;
|
import com.ruoyi.sange.service.ISystemRoleService;
|
import com.ruoyi.sange.warpper.*;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/2/19 16:41
|
*/
|
@Api
|
@RestController
|
@RequestMapping("/api/systemRole")
|
public class SystemRoleController extends BaseController {
|
|
@Resource
|
private ISystemRoleService systemRoleService;
|
|
@Resource
|
private ISystemRoleMenuService systemRoleMenuService;
|
|
|
|
@GetMapping("/list")
|
@ApiOperation(value = "获取列表数据", tags = {"管理后台-角色管理"})
|
public TableDataInfo<SystemRoleListVo> list(SystemRoleList systemRoleList){
|
startPage();
|
List<SystemRoleListVo> list = systemRoleService.list(systemRoleList.getName());
|
return getDataTable(list);
|
}
|
|
|
|
@PostMapping("/add")
|
@ApiOperation(value = "添加角色", tags = {"管理后台-角色管理"})
|
public R add(@RequestBody AddSystemRole addSystemRole){
|
int count = systemRoleService.count(new LambdaQueryWrapper<SystemRole>().eq(SystemRole::getDel, 0).eq(SystemRole::getName, addSystemRole.getName()));
|
if(0 < count){
|
return R.fail("该角色名称已存在");
|
}
|
SystemRole systemRole = new SystemRole();
|
systemRole.setName(addSystemRole.getName());
|
systemRole.setDel(0);
|
systemRole.setCreateTime(LocalDateTime.now());
|
systemRoleService.save(systemRole);
|
//添加角色菜单权限
|
List<Integer> systemMenuIds = addSystemRole.getSystemMenuIds();
|
for (Integer systemMenuId : systemMenuIds) {
|
SystemRoleMenu systemRoleMenu = new SystemRoleMenu();
|
systemRoleMenu.setSystemRoleId(systemRole.getId());
|
systemRoleMenu.setSystemMenuId(systemMenuId);
|
systemRoleMenuService.save(systemRoleMenu);
|
}
|
return R.ok();
|
}
|
|
@PutMapping("/edit")
|
@ApiOperation(value = "编辑角色", tags = {"管理后台-角色管理"})
|
public R edit(@RequestBody EditSystemRole editSystemRole){
|
int count = systemRoleService.count(new LambdaQueryWrapper<SystemRole>().eq(SystemRole::getDel, 0)
|
.eq(SystemRole::getName, editSystemRole.getName()).ne(SystemRole::getId, editSystemRole.getId()));
|
if(0 < count){
|
return R.fail("该角色名称已存在");
|
}
|
SystemRole systemRole = systemRoleService.getById(editSystemRole.getId());
|
if(null == systemRole){
|
return R.fail("无效的角色数据");
|
}
|
systemRole.setName(editSystemRole.getName());
|
systemRoleService.updateById(systemRole);
|
//添加角色菜单权限
|
systemRoleMenuService.remove(new LambdaQueryWrapper<SystemRoleMenu>().eq(SystemRoleMenu::getSystemRoleId, editSystemRole.getId()));
|
List<Integer> systemMenuIds = editSystemRole.getSystemMenuIds();
|
for (Integer systemMenuId : systemMenuIds) {
|
SystemRoleMenu systemRoleMenu = new SystemRoleMenu();
|
systemRoleMenu.setSystemRoleId(systemRole.getId());
|
systemRoleMenu.setSystemMenuId(systemMenuId);
|
systemRoleMenuService.save(systemRoleMenu);
|
}
|
return R.ok();
|
}
|
|
|
@DeleteMapping("/delete/{id}")
|
@ApiOperation(value = "删除角色", tags = {"管理后台-角色管理"})
|
public R delete(@PathVariable("id") Integer id){
|
SystemRole systemRole = systemRoleService.getById(id);
|
systemRole.setDel(1);
|
systemRoleService.updateById(systemRole);
|
//删除角色菜单权限
|
systemRoleMenuService.remove(new LambdaQueryWrapper<SystemRoleMenu>().eq(SystemRoleMenu::getSystemRoleId, id));
|
return R.ok();
|
}
|
|
|
|
@GetMapping("/getSystemRoleInfo/{id}")
|
@ApiOperation(value = "获取角色详情", tags = {"管理后台-角色管理"})
|
public R<SystemRoleInfo> getSystemRoleInfo(@PathVariable("id") Integer id){
|
SystemRole systemRole = systemRoleService.getById(id);
|
if(null == systemRole){
|
return R.fail("无效的角色数据");
|
}
|
|
List<SystemRoleMenu> list = systemRoleMenuService.list(new LambdaQueryWrapper<SystemRoleMenu>().eq(SystemRoleMenu::getSystemRoleId, id));
|
SystemRoleInfo systemRoleInfo = new SystemRoleInfo();
|
systemRoleInfo.setId(systemRole.getId());
|
systemRoleInfo.setName(systemRoleInfo.getName());
|
systemRoleInfo.setSystemMenuIds(list.stream().map(SystemRoleMenu::getSystemMenuId).collect(Collectors.toList()));
|
return R.ok(systemRoleInfo);
|
}
|
|
}
|