diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/DomainResp.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/DomainResp.java index d615f8ae0..dc9ffa21f 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/DomainResp.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/DomainResp.java @@ -27,6 +27,8 @@ public class DomainResp extends SchemaItem { private boolean hasEditPermission = false; + private boolean hasModel; + @Override public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DomainServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DomainServiceImpl.java index 8b487c744..3107ac1df 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DomainServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DomainServiceImpl.java @@ -106,15 +106,20 @@ public class DomainServiceImpl implements DomainService { domainWithAuthAll.addAll(getParentDomain(domainIds)); } List modelResps = modelService.getModelAuthList(user, null, AuthType.ADMIN); + List domainIdsFromModel = modelResps.stream().map(ModelResp::getDomainId).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(modelResps)) { - List domainIds = modelResps.stream().map(ModelResp::getDomainId).collect(Collectors.toList()); - domainWithAuthAll.addAll(getParentDomain(domainIds)); + domainWithAuthAll.addAll(getParentDomain(domainIdsFromModel)); } List dataSetResps = dataSetService.getDataSets(user); if (!CollectionUtils.isEmpty(dataSetResps)) { List domainIds = dataSetResps.stream().map(DataSetResp::getDomainId).collect(Collectors.toList()); domainWithAuthAll.addAll(getParentDomain(domainIds)); } + for (DomainResp domainResp : domainWithAuthAll) { + if (domainIdsFromModel.contains(domainResp.getId())) { + domainResp.setHasModel(true); + } + } return new ArrayList<>(domainWithAuthAll).stream() .sorted(Comparator.comparingLong(DomainResp::getId)).collect(Collectors.toList()); }