refactor(权限点): 代码优化

This commit is contained in:
zhansihu 2023-09-14 14:26:35 +08:00
parent 0fc1694edf
commit 017588b230
3 changed files with 17 additions and 8 deletions

View File

@ -27,4 +27,6 @@ public interface SaasBasicDictService {
Boolean update(BasicDictUpdateReq req);
Boolean updateStauts(BasicDictUpdateStatusReq req);
BasicDictNodeResp getWorkspaceType(String workspaceType);
}

View File

@ -17,7 +17,6 @@ import cn.axzo.tyr.client.model.permission.PermissionPointMoveRequest;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode;
import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq;
import cn.axzo.tyr.client.model.permission.PermissionPointVO;
import cn.axzo.tyr.server.repository.SaasBasicDictDao;
import cn.axzo.tyr.server.repository.entity.SaasFeature;
import cn.axzo.tyr.server.repository.service.SaasFeatureDao;
import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao;
@ -33,7 +32,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -52,7 +50,6 @@ import static cn.axzo.tyr.server.common.constants.PermissionConstant.*;
public class PermissionPointServiceImpl implements PermissionPointService {
private final SaasFeatureDao saasFeatureDao;
private final SaasBasicDictDao saasBasicDictDao;
private final SaasBasicDictService saasBasicDictService;
private final SaasPgroupPermissionRelationDao saasPgroupPermissionRelationDao;
@ -78,10 +75,15 @@ public class PermissionPointServiceImpl implements PermissionPointService {
return nodesResult;
}
return buildTopNodes(nodesResult);
}
private List<PermissionPointTreeNode> buildTopNodes(List<PermissionPointTreeNode> nodesResult) {
//构建workspace-terminal工作台层级
//按terminal分组
Map<String, List<PermissionPointTreeNode>> mappingNode = nodesResult.stream()
.collect(Collectors.groupingBy(PermissionPointTreeNode::getTerminal));
//构建workspace-terminal工作台层级
List<BasicDictTreeResp> dictList = saasBasicDictService.getBasicDictNodeTree(BasicDictQueryReq.builder()
.type(DictTypeFiledEnum.TERMINAL).build());
//遍历所有workspace和terminal-构建顶层两级
@ -90,7 +92,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
List<BasicDictTreeResp> terminals = workspace.getChildren();
PermissionPointTreeNode workspaceNode = null;
for (BasicDictTreeResp terminal : terminals) {
//对应权限点 则建立上级
//下级权限点 则建立上级
List<PermissionPointTreeNode> childrenNodes = mappingNode.get(terminal.getCode());
if (CollectionUtil.isNotEmpty(childrenNodes)) {
PermissionPointTreeNode terminalTree = new PermissionPointTreeNode();
@ -140,7 +142,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
for (String workSpaceType : request.getWorkspaceType()) {
dictReq.setWorkspaceType(DictWorkSpaceTypeEnum.getByValue(workSpaceType));
dictReq.setType(DictTypeFiledEnum.TERMINAL);
List<BasicDictNodeResp> dictList = saasBasicDictDao.getBasicDictNodeList(dictReq);
List<BasicDictNodeResp> dictList = saasBasicDictService.getBasicDictNodeList(dictReq);
terminals.addAll(dictList.stream().map(BasicDictNodeResp::getCode).collect(Collectors.toList()));
}
request.setTerminalList(terminals);
@ -216,8 +218,8 @@ public class PermissionPointServiceImpl implements PermissionPointService {
BasicDictNodeReq terminalReq = new BasicDictNodeReq();
terminalReq.setCode(feature.getTerminal());
terminalReq.setType(DictTypeFiledEnum.TERMINAL);
BasicDictNodeResp terminal = saasBasicDictDao.getBasicDictNode(terminalReq);
BasicDictNodeResp workspace = saasBasicDictDao.getWorkspaceType(terminal.getWorkspaceType());
BasicDictNodeResp terminal = saasBasicDictService.getBasicDictNode(terminalReq);
BasicDictNodeResp workspace = saasBasicDictService.getWorkspaceType(terminal.getWorkspaceType());
List<String> pathName = new ArrayList<>();
pathName.add(workspace.getName());
pathName.add(terminal.getName());

View File

@ -170,6 +170,11 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
return saasBasicDictDao.updateStatus(req);
}
@Override
public BasicDictNodeResp getWorkspaceType(String workspaceType) {
return saasBasicDictDao.getWorkspaceType(workspaceType);
}
@Override
public BasicDictNodeResp getById(Long id) {
return BeanMapper.copyBean(saasBasicDictDao.getById(id), BasicDictNodeResp.class);