From 1916f55359bb6c8f34548c26767569b000decbfc Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期六, 10 八月 2024 18:10:58 +0800 Subject: [PATCH] 新增加系统管理部分功能接口 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java | 360 +++++++++++++++--------------------------------------------- 1 files changed, 90 insertions(+), 270 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index 59337ac..b22299a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -12,8 +12,14 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.chargingPile.api.feignClient.SiteClient; +import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.other.api.domain.TRoleSite; +import com.ruoyi.other.api.feignClient.RoleSiteClient; import com.ruoyi.system.api.model.GetSysRoleByIds; import com.ruoyi.system.domain.SysMenus; import com.ruoyi.system.domain.SysRoleMenu; @@ -27,6 +33,7 @@ import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserRoleService; import com.ruoyi.system.service.ISysUserService; +import io.seata.spring.annotation.GlobalTransactional; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -55,72 +62,75 @@ @Api(tags = "角色模块") public class SysRoleController extends BaseController { - @Autowired + @Resource private ISysRoleService roleService; - @Autowired + @Resource private ISysUserService userService; - @Autowired + @Resource private ISysDeptService deptService; @Resource private SysRoleMenuMapper sysRoleMenuMapper; - @Autowired + @Resource private ISysUserRoleService sysUserRoleService; - @Resource private SysMenuMapper menuMapper; - - @ApiOperation("获取所有角色信息根据公司id") + + @Resource + private RoleSiteClient roleSiteClient; + + @Resource + private SiteClient siteClient; + + + + + @ApiOperation(value = "获取角色列表", tags = {"管理后台-系统用户管理"}) @GetMapping("/list") - public AjaxResult list(Integer companyId) - { - SysRole role = new SysRole(); - role.setCompanyId(companyId); - List<SysRole> list = roleService.selectRoleList(role); + public AjaxResult list() { + List<SysRole> list = roleService.list(new LambdaQueryWrapper<SysRole>().eq(SysRole::getDelFlag, 0).eq(SysRole::getStatus, 0)); return AjaxResult.success(list); } - - - - @ApiOperation("获取所有角色信息根据公司id--分页") + + + + @ResponseBody @GetMapping("/listPage") - public AjaxResult listPage(Integer companyId,int pageNumber,int pageSize) - { - PageInfo<SysRole> pageInfo = new PageInfo<>(pageNumber, pageSize); - - PageInfo<SysRole> page = roleService.page(pageInfo, new LambdaQueryWrapper<SysRole>().eq(SysRole::getCompanyId, companyId).ne(SysRole::getRoleId,20)); + @ApiOperation(value = "获取角色列表", tags = {"管理后台-角色管理"}) + public AjaxResult listPage(String name, BasePage basePage) { + PageInfo<SysRole> pageInfo = new PageInfo<>(basePage.getPageCurr(), basePage.getPageSize()); + LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<SysRole>().eq(SysRole::getStatus, 0).eq(SysRole::getDelFlag, 0); + if(StringUtils.isNotEmpty(name)){ + wrapper.like(SysRole::getRoleName, name); + } + + PageInfo<SysRole> page = roleService.page(pageInfo, wrapper.orderByDesc(SysRole::getCreateTime)); + for (SysRole record : page.getRecords()) { + List<Integer> data = roleSiteClient.getSiteIds(record.getRoleId()).getData(); + List<Site> sites = siteClient.getSiteByIds(data).getData(); + List<String> collect = sites.stream().map(Site::getName).collect(Collectors.toList()); + record.setSiteNames(collect); + } return AjaxResult.success(page); } - - - @ApiOperation("角色启用停用") - @GetMapping("/roleStart") - public AjaxResult roleStart(Long roleId) - { - SysRole role = roleService.selectRoleById(roleId); - if(role.getStatus().equals("1")){ - role.setStatus("0"); - }else { - role.setStatus("1"); - } - return AjaxResult.success(roleService.updateRole(role)); - } - - - - @ApiOperation("添加角色") + + + + + @ResponseBody @PostMapping("/roleAdd") + @ApiOperation(value = "添加角色", tags = {"管理后台-角色管理"}) + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 public AjaxResult roleAdd(@Validated @RequestBody RoleAddDto dto) { SysRole role = new SysRole(); role.setRoleName(dto.getRoleName()); long count = roleService.count(Wrappers.lambdaQuery(SysRole.class) - .eq(SysRole::getRoleName,dto.getRoleName()) - .eq(SysRole::getCompanyId,dto.getCompanyId())); + .eq(SysRole::getRoleName,dto.getRoleName())); if(count>0){ return AjaxResult.error("角色已存在,请重新输入"); } @@ -130,36 +140,29 @@ } role.setMenuIds(dto.getMenuIds().toArray((new Long[dto.getMenuIds().size()]))); // 添加角色 - role.setCompanyId(dto.getCompanyId()); - role.setCarDataAuth(dto.getCarDataAuth()); - role.setCarTrainOperAuth(dto.getCarTrainOperAuth()); - role.setContractDataAuth(dto.getContractDataAuth()); + role.setRemark(dto.getRemark()); role.setCreateBy(SecurityUtils.getUsername()); role.setCreateTime(new Date()); roleService.insertRole(role); -// ArrayList<SysRoleMenu> sysRoleMenus = new ArrayList<>(); -// List<Long> menuIds = dto.getMenuIds(); -// for (Long menuId : menuIds) { -// SysRoleMenu sysRoleMenu = new SysRoleMenu(); -// sysRoleMenu.setMenuId(menuId); -// sysRoleMenu.setRoleId(role.getRoleId()); -// sysRoleMenus.add(sysRoleMenu); -// } -// sysRoleMenuMapper.batchRoleMenu(sysRoleMenus); + //添加站点权限 + List<TRoleSite> roleSites = new ArrayList<>(); + for (Integer siteId : dto.getSiteIds()) { + TRoleSite roleSite = new TRoleSite(); + roleSite.setRoleId(role.getRoleId().intValue()); + roleSite.setSiteId(siteId); + roleSites.add(roleSite); + } + roleSiteClient.addRoleSite(roleSites); return AjaxResult.success(); } - @ApiOperation("角色详情") @GetMapping("/roleInfo") - public AjaxResult roleInfo( @RequestParam Long id) - { + @ApiOperation(value = "角色详情", tags = {"管理后台-角色管理"}) + public AjaxResult roleInfo( @RequestParam Long id) { SysRole role = roleService.selectRoleById(id); RoleInfoVo roleInfoVo = new RoleInfoVo(); roleInfoVo.setRoleId(role.getRoleId()); - roleInfoVo.setCarDataAuth(role.getCarDataAuth()); - roleInfoVo.setCarTrainOperAuth(role.getCarTrainOperAuth()); - roleInfoVo.setContractDataAuth(role.getContractDataAuth()); roleInfoVo.setRoleName(role.getRoleName()); // 获取当前角色的菜单id List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()); @@ -184,66 +187,29 @@ List<SysMenus> collect = s2.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList()); menus.setChildren(collect); } - roleInfoVo.setMenus(menusId); + roleInfoVo.setRemark(role.getRemark()); + List<Integer> siteIds = roleSiteClient.getSiteIds(role.getRoleId()).getData(); + List<Site> sites = siteClient.getSiteByIds(siteIds).getData(); + List<String> siteNames = sites.stream().map(Site::getName).collect(Collectors.toList()); + roleInfoVo.setSiteNames(siteNames); + roleInfoVo.setSiteIds(siteIds); return AjaxResult.success(roleInfoVo); } - @ApiOperation("用户获取权限菜单") - @GetMapping("/roleInfoFromUserId") - public AjaxResult roleInfoFromUserId( @RequestParam Long userId) - { - SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId)); - Long id =one.getRoleId(); - // 获取当前角色的菜单id - List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()); - if(menusId.size()==0){ - return AjaxResult.success(new ArrayList<>()); - } - if(id!=1){ - menusId = menusId.stream().filter(e->e!=1074 && e!=1075 && e!=1193 && e!=1194).collect(Collectors.toList()); - } - //获取当前的权限菜单 - List<SysMenus> all = menuMapper.getAllInIds(menusId); - // 第三级 - List<SysMenus> s3 = all.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList()); - // 第二级 - List<SysMenus> s2 = all.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList()); - // 第一级 - List<SysMenus> s1 = all.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList()); - for (SysMenus menus : s2) { - List<SysMenus> collect = s3.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList()); - menus.setChildren(collect); - } - - for (SysMenus menus : s1) { - List<SysMenus> collect = s2.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList()); - menus.setChildren(collect); - } - - return AjaxResult.success(s1); - } - - - - - @ApiOperation("编辑角色") @PostMapping("/roleUpdate") - public AjaxResult roleUpdate(@Validated @RequestBody RoleUpdateDto dto) - { + @ApiOperation(value = "编辑角色", tags = {"管理后台-角色管理"}) + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 + public AjaxResult roleUpdate(@Validated @RequestBody RoleUpdateDto dto) { SysRole role = new SysRole(); role.setRoleName(dto.getRoleName()); - SysRole one = roleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleId, dto.getRoleId())); - List<SysRole> sysRoles = roleService.isExitUpdate(dto.getRoleName(),dto.getRoleId(),one.getCompanyId()); - if(sysRoles.size()>0){ + SysRole one = roleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleName, dto.getRoleName())); + if(null != one && !one.getRoleId().equals(dto.getRoleId())){ return AjaxResult.error("角色已存在,请重新输入"); } - // 编辑角色 - role.setCarDataAuth(dto.getCarDataAuth()); - role.setCarTrainOperAuth(dto.getCarTrainOperAuth()); - role.setContractDataAuth(dto.getContractDataAuth()); + role.setRemark(dto.getRemark()); role.setUpdateBy(SecurityUtils.getUsername()); role.setUpdateTime(new Date()); role.setRoleId(dto.getRoleId()); @@ -272,110 +238,21 @@ sysRoleMenus.add(sysRoleMenu); } sysRoleMenuMapper.batchRoleMenu(sysRoleMenus); + //删除旧站点数据 + roleSiteClient.delRoleSite(dto.getRoleId()); + //添加站点权限 + List<TRoleSite> roleSites = new ArrayList<>(); + for (Integer siteId : dto.getSiteIds()) { + TRoleSite roleSite = new TRoleSite(); + roleSite.setRoleId(role.getRoleId().intValue()); + roleSite.setSiteId(siteId); + roleSites.add(roleSite); + } + roleSiteClient.addRoleSite(roleSites); return AjaxResult.success(); } - - - - - - - - - - - @Log(title = "角色管理", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:role:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysRole role) - { - List<SysRole> list = roleService.selectRoleList(role); - ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class); - util.exportExcel(response, list, "角色数据"); - } - - /** - * 根据角色编号获取详细信息 - */ - @RequiresPermissions("system:role:query") - @GetMapping(value = "/{roleId}") - public AjaxResult getInfo(@PathVariable Long roleId) - { - roleService.checkRoleDataScope(roleId); - return success(roleService.selectRoleById(roleId)); - } - - /** - * 新增角色 - */ - @RequiresPermissions("system:role:add") - @Log(title = "角色管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@Validated @RequestBody SysRole role) - { - if (!roleService.checkRoleNameUnique(role)) - { - return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); - } - else if (!roleService.checkRoleKeyUnique(role)) - { - return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); - } - role.setCreateBy(SecurityUtils.getUsername()); - return toAjax(roleService.insertRole(role)); - - } - - /** - * 修改保存角色 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@Validated @RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - if (!roleService.checkRoleNameUnique(role)) - { - return error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); - } - else if (!roleService.checkRoleKeyUnique(role)) - { - return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); - } - role.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(roleService.updateRole(role)); - } - - /** - * 修改保存数据权限 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping("/dataScope") - public AjaxResult dataScope(@RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - return toAjax(roleService.authDataScope(role)); - } - - /** - * 状态修改 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "角色管理", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysRole role) - { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - role.setUpdateBy(SecurityUtils.getUsername()); - return toAjax(roleService.updateRoleStatus(role)); - } /** * 删除角色 @@ -383,39 +260,14 @@ @RequiresPermissions("system:role:remove") @Log(title = "角色管理", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") - public AjaxResult remove(@PathVariable Long[] roleIds) - { + @ApiOperation(value = "删除角色", tags = {"管理后台-角色管理"}) + public AjaxResult remove(@PathVariable Long[] roleIds) { return toAjax(roleService.deleteRoleByIds(roleIds)); } + - /** - * 停用角色 - */ - @RequiresPermissions("system:role:stop") - @Log(title = "角色管理", businessType = BusinessType.STOP) - @PutMapping("/stop") - public AjaxResult stop(@RequestBody Long roleId) - { - SysRole sysRole = roleService.selectRoleById(roleId); - if(sysRole.getStatus().equals("0")){ - sysRole.setStatus("1"); - }else { - sysRole.setStatus("0"); - } - return toAjax(roleService.updateRole(sysRole)); - } - - /** - * 获取角色选择框列表 - */ - @RequiresPermissions("system:role:query") - @GetMapping("/optionselect") - public AjaxResult optionselect() - { - return success(roleService.selectRoleAll()); - } /** * 查询已分配用户角色列表 */ @@ -440,39 +292,7 @@ return getDataTable(list); } - /** - * 取消授权用户 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/cancel") - public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) - { - return toAjax(roleService.deleteAuthUser(userRole)); - } - - /** - * 批量取消授权用户 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/cancelAll") - public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds) - { - return toAjax(roleService.deleteAuthUsers(roleId, userIds)); - } - - /** - * 批量选择用户授权 - */ - @RequiresPermissions("system:role:edit") - @Log(title = "角色管理", businessType = BusinessType.GRANT) - @PutMapping("/authUser/selectAll") - public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) - { - roleService.checkRoleDataScope(roleId); - return toAjax(roleService.insertAuthUsers(roleId, userIds)); - } + /** * 获取对应角色部门树列表 -- Gitblit v1.7.1