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(); + } }