允许将权限点设置为空

This commit is contained in:
yangsong 2023-09-18 10:21:29 +08:00
parent 7e2cb2d11d
commit ecc03c376d
4 changed files with 15 additions and 9 deletions

View File

@ -5,5 +5,5 @@ import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
import java.util.List;
public interface SaasPgroupPermissionRelationService {
void saveOrUpdate(List<SaasPgroupPermissionRelation> relations);
void saveOrUpdate(List<Long> groupIds, List<SaasPgroupPermissionRelation> relations);
}

View File

@ -19,6 +19,7 @@ import cn.axzo.tyr.server.service.SaasPermissionGroupScopeService;
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -182,7 +183,7 @@ public class PermissionGroupImpl implements PermissionGroupService {
target.setUpdateBy(save.getOperatorId());
return target;
}).collect(Collectors.toList());
saasPgroupPermissionRelationService.saveOrUpdate(pgpRelations);
saasPgroupPermissionRelationService.saveOrUpdate(Lists.newArrayList(saasPermissionGroup.getId()), pgpRelations);
}
@Override

View File

@ -18,6 +18,7 @@ import cn.axzo.tyr.server.repository.dao.*;
import cn.axzo.tyr.server.repository.entity.*;
import cn.axzo.tyr.server.service.*;
import cn.hutool.core.bean.BeanUtil;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -242,7 +243,7 @@ public class RoleServiceImpl implements RoleService {
target.setUpdateBy(saveOrUpdateRole.getOperatorId());
return target;
}).collect(Collectors.toList());
saasPgroupPermissionRelationService.saveOrUpdate(pgpRelations);
saasPgroupPermissionRelationService.saveOrUpdate(Lists.newArrayList(saasPermissionGroup.getId()), pgpRelations);
return saasRole.getId();
}

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.SaasPgroupPermissionRelation;
import cn.axzo.tyr.server.repository.dao.SaasPgroupPermissionRelationDao;
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -22,20 +22,24 @@ public class SaasPgroupPermissionRelationServiceImpl implements SaasPgroupPermis
@Override
@Transactional(rollbackFor = Exception.class)
public void saveOrUpdate(List<SaasPgroupPermissionRelation> relations) {
if (CollectionUtils.isEmpty(relations)) {
public void saveOrUpdate(List<Long> groupIds, List<SaasPgroupPermissionRelation> relations) {
if (CollectionUtils.isEmpty(groupIds) && CollectionUtils.isEmpty(relations)) {
return;
}
// 移除权限点
if (CollectionUtils.isEmpty(groupIds)) {
groupIds = relations.stream().map(SaasPgroupPermissionRelation::getGroupId).distinct().sorted().collect(Collectors.toList());
}
List<SaasPgroupPermissionRelation> exists = saasPgroupPermissionRelationDao.lambdaQuery()
.in(SaasPgroupPermissionRelation::getGroupId, relations.stream().map(SaasPgroupPermissionRelation::getGroupId).distinct().sorted().collect(Collectors.toList()))
.eq(SaasPgroupPermissionRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
.in(SaasPgroupPermissionRelation::getGroupId, groupIds)
.eq(SaasPgroupPermissionRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
Collection<SaasPgroupPermissionRelation> insertList = CollectionUtils.subtract(relations, exists);
Collection<SaasPgroupPermissionRelation> deleteList = CollectionUtils.subtract(exists, relations);
if (CollectionUtils.isNotEmpty(insertList)) {
saasPgroupPermissionRelationDao.saveBatch(insertList);
}
if (CollectionUtils.isNotEmpty(deleteList)) {
saasPgroupPermissionRelationDao.removeByIds(deleteList.stream().map(SaasPgroupPermissionRelation::getId).collect(Collectors.toList()));
saasPgroupPermissionRelationDao.removeByIds(deleteList.stream().map(SaasPgroupPermissionRelation::getId).sorted().collect(Collectors.toList()));
}
}
}