package com.panzhihua.sangeshenbian.api;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.panzhihua.common.controller.BaseController;
|
import com.panzhihua.common.interfaces.OperLog;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.sangeshenbian.model.entity.SystemRole;
|
import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
|
import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService;
|
import com.panzhihua.sangeshenbian.service.ISystemRoleService;
|
import com.panzhihua.sangeshenbian.warpper.*;
|
import io.swagger.annotations.Api;
|
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("/systemRole")
|
public class SystemRoleController extends BaseController {
|
|
@Resource
|
private ISystemRoleService systemRoleService;
|
|
@Resource
|
private ISystemRoleMenuService systemRoleMenuService;
|
|
|
|
@GetMapping("/list")
|
@ApiOperation(value = "获取列表数据", tags = {"三个身边后台-角色管理"})
|
@OperLog(operModul = "三个身边后台",operType = 0,businessType = "获取角色列表数据")
|
public R<IPage<SystemRoleListVo>> list(SystemRoleList systemRoleList){
|
IPage<SystemRoleListVo> list = systemRoleService.list(systemRoleList);
|
return R.ok(list);
|
}
|
|
|
|
@PostMapping("/add")
|
@ApiOperation(value = "添加角色", tags = {"三个身边后台-角色管理"})
|
@OperLog(operModul = "三个身边后台",operType = 1,businessType = "添加角色")
|
public R add(@RequestBody AddSystemRole addSystemRole){
|
long 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();
|
}
|
|
@PostMapping("/edit")
|
@ApiOperation(value = "编辑角色", tags = {"三个身边后台-角色管理"})
|
@OperLog(operModul = "三个身边后台",operType = 2,businessType = "编辑角色")
|
public R edit(@RequestBody EditSystemRole editSystemRole){
|
long 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 = {"三个身边后台-角色管理"})
|
@OperLog(operModul = "三个身边后台",operType = 3,businessType = "删除角色")
|
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 = {"三个身边后台-角色管理"})
|
@OperLog(operModul = "三个身边后台",operType = 0,businessType = "获取角色详情")
|
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);
|
}
|
|
}
|