|
@@ -41,10 +41,21 @@ public class SysRolePrivilegeServiceImpl extends ServiceImpl<SysRolePrivilegeMap
|
|
|
QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, role.getPrivilegeIds());
|
|
|
List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
|
|
|
- Set<Long> relatedList = sysPrivilegeList.stream().filter(s -> Objects.nonNull(s.getRelated())).map(s -> s.getRelated()).collect(Collectors.toSet());
|
|
|
- relatedList.addAll(Arrays.asList(role.getPrivilegeIds()));
|
|
|
+ Set<String> relatedSet = sysPrivilegeList.stream().filter(s -> Objects.nonNull(s.getRelated())).map(s -> s.getRelated()).collect(Collectors.toSet());
|
|
|
+ Set<Long> finalRelatedSet = new HashSet<>();
|
|
|
+ for (String s : relatedSet) {
|
|
|
+ if (s.contains(",")) {
|
|
|
+ String[] arrays = s.split(",");
|
|
|
+ for (int i = 0; i < arrays.length; i++) {
|
|
|
+ finalRelatedSet.add(Long.parseLong(arrays[i]));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ finalRelatedSet.add(Long.parseLong(s));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ finalRelatedSet.addAll(Arrays.asList(role.getPrivilegeIds()));
|
|
|
List<SysRolePrivilege> list = new ArrayList<>();
|
|
|
- for (Long privilegeId : relatedList) {
|
|
|
+ for (Long privilegeId : finalRelatedSet) {
|
|
|
SysRolePrivilege sysRolePrivilege = new SysRolePrivilege();
|
|
|
sysRolePrivilege.setRoleId(role.getId());
|
|
|
sysRolePrivilege.setPrivilegeId(privilegeId);
|