Merge remote-tracking branch 'origin/feature/REQ-1102' into feature/REQ-1102

This commit is contained in:
zhansihu 2023-09-18 13:43:40 +08:00
commit 4a6ff5e037
4 changed files with 19 additions and 7 deletions

View File

@ -5,5 +5,5 @@ import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
import java.util.List;
public interface SaasPermissionGroupScopeService {
void saveOrUpdate(List<SaasPermissionGroupScope> scopes);
void saveOrUpdate(List<Long> pgroupIds, List<SaasPermissionGroupScope> scopes);
}

View File

@ -227,7 +227,7 @@ public class PermissionGroupImpl implements PermissionGroupService {
return scope;
}).collect(Collectors.toList()));
}
saasPermissionGroupScopeService.saveOrUpdate(scopes);
saasPermissionGroupScopeService.saveOrUpdate(Lists.newArrayList(saasPermissionGroup.getId()), scopes);
return saasPermissionGroup.getId();
}
@ -341,7 +341,8 @@ public class PermissionGroupImpl implements PermissionGroupService {
List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO> selectedOu = permissionGroup.getSelectedOu();
Set<Integer> scopeTypes = new HashSet<>();
if (CollectionUtils.isEmpty(selectedWorkspace) && CollectionUtils.isEmpty(selectedOu)) {
throw new ServiceException("例外不能为空");
//throw new ServiceException("例外不能为空");
return;
}
if (CollectionUtils.isNotEmpty(selectedWorkspace)) {
Map<Integer, List<SaveOrUpdatePermissionGroupVO.PermissionGroupScopeVO>> selectedWorkspaceMap = selectedWorkspace.stream()

View File

@ -1,8 +1,8 @@
package cn.axzo.tyr.server.service.impl;
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
import cn.axzo.tyr.server.repository.dao.SaasPermissionGroupScopeDao;
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
import cn.axzo.tyr.server.service.SaasPermissionGroupScopeService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -10,8 +10,10 @@ import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@ -21,12 +23,17 @@ public class SaasPermissionGroupScopeServiceImpl implements SaasPermissionGroupS
private final SaasPermissionGroupScopeDao saasPermissionGroupScopeDao;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveOrUpdate(List<SaasPermissionGroupScope> scopes) {
if (CollectionUtils.isEmpty(scopes)) {
public void saveOrUpdate(List<Long> pgroupIds, List<SaasPermissionGroupScope> scopes) {
if (CollectionUtils.isEmpty(pgroupIds) && CollectionUtils.isEmpty(scopes)) {
return;
}
if (CollectionUtils.isEmpty(pgroupIds)) {
pgroupIds = scopes.stream().map(SaasPermissionGroupScope::getPgroupId).distinct().sorted().collect(Collectors.toList());
} else if (Objects.isNull(scopes)) {
scopes = new ArrayList<>();
}
List<SaasPermissionGroupScope> exists = saasPermissionGroupScopeDao.lambdaQuery()
.in(SaasPermissionGroupScope::getPgroupId, scopes.stream().map(SaasPermissionGroupScope::getPgroupId).distinct().sorted().collect(Collectors.toList()))
.in(SaasPermissionGroupScope::getPgroupId, pgroupIds)
.eq(SaasPermissionGroupScope::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
Collection<SaasPermissionGroupScope> insertList = CollectionUtils.subtract(scopes, exists);
Collection<SaasPermissionGroupScope> deleteList = CollectionUtils.subtract(exists, scopes);

View File

@ -10,8 +10,10 @@ import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@ -29,6 +31,8 @@ public class SaasPgroupPermissionRelationServiceImpl implements SaasPgroupPermis
// 移除权限点
if (CollectionUtils.isEmpty(groupIds)) {
groupIds = relations.stream().map(SaasPgroupPermissionRelation::getGroupId).distinct().sorted().collect(Collectors.toList());
} else if (Objects.isNull(relations)){
relations = new ArrayList<>();
}
List<SaasPgroupPermissionRelation> exists = saasPgroupPermissionRelationDao.lambdaQuery()
.in(SaasPgroupPermissionRelation::getGroupId, groupIds)