From aa3f854b0705af38a049f62c1f6b39f09c540f50 Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Mon, 26 Apr 2021 15:27:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=92=E8=89=B2=E7=AE=A1?= =?UTF-8?q?=E7=90=86:=E4=BF=AE=E6=94=B9=E5=AF=B9=E8=B0=81=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E8=A7=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/dto/RoleDto.java | 9 ++++ .../ccsens/tall/service/IProRoleService.java | 7 ++++ .../ccsens/tall/service/ProRoleService.java | 41 +++++++++++++++++++ .../com/ccsens/tall/web/RoleController.java | 9 ++++ 4 files changed, 66 insertions(+) diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java index 64b7caea..57ccc427 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java @@ -105,4 +105,13 @@ public class RoleDto { @ApiModelProperty("角色id") private Long roleId; } + + @Data + @ApiModel("对谁不可见") + public static class RoleOfNoLook { + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("不可见角色id(数组)") + private List noRoleId; + } } diff --git a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java index eb634833..a6fd520a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java @@ -79,4 +79,11 @@ public interface IProRoleService { void queryRoleIsShows(QueryDto param); void upRoleShowsOrder(QueryDto param); + + /** + * 角色管理:修改对谁不可见 + * @param param 参数 + * @param userId 当前用户id + */ + void upRoleWhoNoLook(RoleDto.RoleOfNoLook param, Long userId); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 468ce041..96d660d6 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -1135,4 +1135,45 @@ public class ProRoleService implements IProRoleService { } return memberId; } + + /** + * 修改对谁不可见 + * @param param 参数 + * @param userId 当前用户id + */ + @Override + public void upRoleWhoNoLook(RoleDto.RoleOfNoLook param, Long userId) { + ProRole proRole = proRoleDao.selectByPrimaryKey(param.getRoleId()); + if (ObjectUtil.isNotNull(proRole)){ + //用户在项目中的最高权限 + int power = selectPowerByRoleName(userId, proRole.getProjectId()); + if (2 < power){ + //删除之前的记录 + ProRoleExcludeExample excludeExample = new ProRoleExcludeExample(); + excludeExample.createCriteria().andRoleIdEqualTo(param.getRoleId()).andRecStatusEqualTo((byte)0); + List proRoleExcludes = proRoleExcludeMapper.selectByExample(excludeExample); + if (CollectionUtil.isNotEmpty(proRoleExcludes)){ + for (ProRoleExclude proRoleExclude : proRoleExcludes) { + ProRoleExclude oldExclude = new ProRoleExclude(); + oldExclude.setId(proRoleExclude.getId()); + oldExclude.setRecStatus((byte)2); + proRoleExcludeMapper.updateByExampleSelective(oldExclude,excludeExample); + } + } + + //添加新数据 + for (Long noRoleId : param.getNoRoleId()) { + ProRoleExclude roleExclude = new ProRoleExclude(); + roleExclude.setId(snowflake.nextId()); + roleExclude.setRoleId(param.getRoleId()); + roleExclude.setOtherRoleId(noRoleId); + proRoleExcludeMapper.insertSelective(roleExclude); + } + }else{ + throw new BaseException(CodeEnum.NOT_POWER); + } + } + + } + } diff --git a/tall/src/main/java/com/ccsens/tall/web/RoleController.java b/tall/src/main/java/com/ccsens/tall/web/RoleController.java index dba40607..e2b7c9ee 100644 --- a/tall/src/main/java/com/ccsens/tall/web/RoleController.java +++ b/tall/src/main/java/com/ccsens/tall/web/RoleController.java @@ -163,4 +163,13 @@ public class RoleController { List roleInfoList = proRoleService.getRolesByProjectIdAndUserId(projectId, currentUserId,imitation,queryType); return JsonResponse.newInstance().ok(roleInfoList); } + + @MustLoginTall + @ApiOperation(value = "角色管理:修改对谁不可见",notes = "") + @RequestMapping(value = "/upRoleWhoNoLook", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse upRoleWhoNoLook(@ApiParam @Validated @RequestBody QueryDto params){ + log.info("传入参数:{}", params); + proRoleService.upRoleWhoNoLook(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(); + } }