From 075707e6d261aeecf7eafef2afce1deaa23ee974 Mon Sep 17 00:00:00 2001 From: xuwenbo <717567226@qq.com> Date: Mon, 18 May 2020 10:53:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E4=BF=AE=E6=94=B9=E7=BB=91=E5=AE=9A=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/rest/RoleController.java | 4 +- .../modules/system/service/RoleService.java | 13 ++++ .../system/service/impl/RoleServiceImpl.java | 76 ++++++++++++++++--- 3 files changed, 82 insertions(+), 11 deletions(-) diff --git a/yshop-system/src/main/java/co/yixiang/modules/system/rest/RoleController.java b/yshop-system/src/main/java/co/yixiang/modules/system/rest/RoleController.java index 8c5238ea..b345a4c9 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/system/rest/RoleController.java +++ b/yshop-system/src/main/java/co/yixiang/modules/system/rest/RoleController.java @@ -106,7 +106,7 @@ public class RoleController { throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID"); } getLevels(resources.getLevel()); - return new ResponseEntity<>(roleService.save(resources),HttpStatus.CREATED); + return new ResponseEntity<>(roleService.create(resources),HttpStatus.CREATED); } @Log("修改角色") @@ -116,7 +116,7 @@ public class RoleController { public ResponseEntity update(@Validated @RequestBody Role resources){ //if(StrUtil.isNotEmpty("22")) throw new BadRequestException("演示环境禁止操作"); getLevels(resources.getLevel()); - roleService.saveOrUpdate(resources); + roleService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } diff --git a/yshop-system/src/main/java/co/yixiang/modules/system/service/RoleService.java b/yshop-system/src/main/java/co/yixiang/modules/system/service/RoleService.java index 22e2aad4..40d9e81a 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/system/service/RoleService.java +++ b/yshop-system/src/main/java/co/yixiang/modules/system/service/RoleService.java @@ -88,6 +88,19 @@ public interface RoleService extends BaseService{ */ void updateMenu(Role resources, RoleDto roleDto); + /** + * 创建 + * @param resources / + * @return / + */ + RoleDto create(Role resources); + + /** + * 编辑 + * @param resources / + */ + void update(Role resources); + /** * 获取用户权限信息 * @param user 用户信息 diff --git a/yshop-system/src/main/java/co/yixiang/modules/system/service/impl/RoleServiceImpl.java b/yshop-system/src/main/java/co/yixiang/modules/system/service/impl/RoleServiceImpl.java index e11a596b..51021409 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/system/service/impl/RoleServiceImpl.java +++ b/yshop-system/src/main/java/co/yixiang/modules/system/service/impl/RoleServiceImpl.java @@ -8,12 +8,10 @@ */ package co.yixiang.modules.system.service.impl; -import co.yixiang.modules.system.domain.Dept; -import co.yixiang.modules.system.domain.Menu; -import co.yixiang.modules.system.domain.Role; +import co.yixiang.exception.EntityExistException; +import co.yixiang.modules.system.domain.*; import co.yixiang.common.service.impl.BaseServiceImpl; -import co.yixiang.modules.system.service.DeptService; -import co.yixiang.modules.system.service.MenuService; +import co.yixiang.modules.system.service.*; import co.yixiang.modules.system.service.dto.RoleSmallDto; import co.yixiang.modules.system.service.dto.UserDto; import co.yixiang.modules.system.service.mapper.DeptMapper; @@ -28,7 +26,6 @@ import com.github.pagehelper.PageInfo; import co.yixiang.common.utils.QueryHelpPlus; import co.yixiang.utils.ValidationUtil; import co.yixiang.utils.FileUtil; -import co.yixiang.modules.system.service.RoleService; import co.yixiang.modules.system.service.dto.RoleDto; import co.yixiang.modules.system.service.dto.RoleQueryCriteria; import co.yixiang.modules.system.service.mapper.RoleMapper; @@ -74,6 +71,8 @@ public class RoleServiceImpl extends BaseServiceImpl implement private final RoleMapper roleMapper; private final MenuMapper menuMapper; private final DeptMapper deptMapper; + private final RolesMenusService rolesMenusService; + private final RolesDeptsService rolesDeptsService; @Override public Map queryAll(RoleQueryCriteria criteria, Pageable pageable) { @@ -174,11 +173,70 @@ public class RoleServiceImpl extends BaseServiceImpl implement @Override // @CacheEvict(allEntries = true) public void updateMenu(Role resources, RoleDto roleDto) { - Role role =generator.convert(roleDto,Role.class); - role.setMenus(resources.getMenus()); - this.save(role); + if(resources.getMenus().size()>0){ + List rolesMenusList = resources.getMenus().stream().map(i ->{ + RolesMenus rolesMenus = new RolesMenus(); + rolesMenus.setRoleId(resources.getId()); + rolesMenus.setMenuId(i.getId()); + return rolesMenus; + }).collect(Collectors.toList()); + rolesMenusService.saveOrUpdateBatch(rolesMenusList); + } } + + @Override +// @CacheEvict(allEntries = true) + @Transactional(rollbackFor = Exception.class) + public RoleDto create(Role resources) { + if(this.getOne(new QueryWrapper().lambda().eq(Role::getName,resources.getName())) != null){ + throw new EntityExistException(Role.class,"username",resources.getName()); + } + + if(resources.getDepts().size()>0){ + List rolesDeptsList = resources.getDepts().stream().map(i ->{ + RolesDepts rolesDepts = new RolesDepts(); + rolesDepts.setRoleId(resources.getId()); + rolesDepts.setDeptId(i.getId()); + return rolesDepts; + }).collect(Collectors.toList()); + rolesDeptsService.saveBatch(rolesDeptsList); + } + this.save(resources); + return generator.convert(resources,RoleDto.class); + } + + @Override +// @CacheEvict(allEntries = true) + @Transactional(rollbackFor = Exception.class) + public void update(Role resources) { + Role role = this.getById(resources.getId()); + + Role role1 = this.getOne(new QueryWrapper().lambda().eq(Role::getName,resources.getName())); + + if(role1 != null && !role1.getId().equals(role.getId())){ + throw new EntityExistException(Role.class,"username",resources.getName()); + } + role1 = this.getOne(new QueryWrapper().lambda().eq(Role::getPermission,resources.getPermission())); + if(role1 != null && !role1.getId().equals(role.getId())){ + throw new EntityExistException(Role.class,"permission",resources.getPermission()); + } + role.setName(resources.getName()); + role.setRemark(resources.getRemark()); + role.setDataScope(resources.getDataScope()); + if(resources.getDepts().size()>0){ + List rolesDeptsList = resources.getDepts().stream().map(i ->{ + RolesDepts rolesDepts = new RolesDepts(); + rolesDepts.setRoleId(resources.getId()); + rolesDepts.setDeptId(i.getId()); + return rolesDepts; + }).collect(Collectors.toList()); + rolesDeptsService.saveOrUpdateBatch(rolesDeptsList); + } + role.setLevel(resources.getLevel()); + role.setPermission(resources.getPermission()); + this.saveOrUpdate(role); + } /** * 获取用户权限信息 *