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("/sangeshenbian/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> list(SystemRoleList systemRoleList){ IPage list = systemRoleService.list(systemRoleList); return R.ok(list); } @PostMapping("/add") @ApiOperation(value = "添加角色", tags = {"三个身边后台-角色管理"}) @OperLog(operModul = "三个身边后台",operType = 1,businessType = "添加角色") public R add(@RequestBody AddSystemRole addSystemRole){ int count = systemRoleService.count(new LambdaQueryWrapper().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 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){ int count = systemRoleService.count(new LambdaQueryWrapper().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().eq(SystemRoleMenu::getSystemRoleId, editSystemRole.getId())); List 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().eq(SystemRoleMenu::getSystemRoleId, id)); return R.ok(); } @GetMapping("/getSystemRoleInfo/{id}") @ApiOperation(value = "获取角色详情", tags = {"三个身边后台-角色管理"}) @OperLog(operModul = "三个身边后台",operType = 0,businessType = "获取角色详情") public R getSystemRoleInfo(@PathVariable("id") Integer id){ SystemRole systemRole = systemRoleService.getById(id); if(null == systemRole){ return R.fail("无效的角色数据"); } List list = systemRoleMenuService.list(new LambdaQueryWrapper().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); } }