diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java index f60d41eae..5c8e269b9 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java @@ -28,6 +28,7 @@ import org.lowcoder.domain.application.service.ApplicationService; import org.lowcoder.domain.datasource.model.Datasource; import org.lowcoder.domain.datasource.service.DatasourceService; +import org.lowcoder.domain.folder.service.FolderElementRelationService; import org.lowcoder.domain.interaction.UserApplicationInteractionService; import org.lowcoder.domain.organization.model.Organization; import org.lowcoder.domain.organization.service.OrgMemberService; @@ -94,6 +95,7 @@ public class ApplicationApiServiceImpl implements ApplicationApiService { private final DatasourceService datasourceService; private final ApplicationHistorySnapshotService applicationHistorySnapshotService; private final ApplicationRecordService applicationRecordService; + private final FolderElementRelationService folderElementRelationService; @Override public Mono create(CreateApplicationRequest createApplicationRequest) { @@ -185,10 +187,10 @@ public Mono delete(String applicationId) { return checkApplicationStatus(applicationId, ApplicationStatus.RECYCLED) .then(updateApplicationStatus(applicationId, ApplicationStatus.DELETED)) .then(applicationService.findById(applicationId)) - .map(application -> ApplicationView.builder() - .applicationInfoView(buildView(application)) + .flatMap(application -> buildView(application).map(appInfoView -> ApplicationView.builder() + .applicationInfoView(appInfoView) .applicationDSL(application.getEditingApplicationDSL()) - .build()); + .build())); } @Override @@ -269,13 +271,14 @@ public Mono getEditingApplication(String applicationId) { .map(dsl -> Map.entry(app.getId(), sanitizeDsl(dsl)))) .collectMap(Map.Entry::getKey, Map.Entry::getValue) .flatMap(dependentModuleDsl -> - applicationService.updateById(applicationId, application).map(__ -> - ApplicationView.builder() - .applicationInfoView(buildView(application, permission.getResourceRole().getValue())) - .applicationDSL(application.getEditingApplicationDSL()) - .moduleDSL(dependentModuleDsl) - .orgCommonSettings(commonSettings) - .build())); + applicationService.updateById(applicationId, application).flatMap(__ -> + buildView(application, permission.getResourceRole().getValue()).map(appInfoView -> + ApplicationView.builder() + .applicationInfoView(appInfoView) + .applicationDSL(application.getEditingApplicationDSL()) + .moduleDSL(dependentModuleDsl) + .orgCommonSettings(commonSettings) + .build()))); }); } @@ -299,14 +302,15 @@ public Mono getPublishedApplication(String applicationId, Appli .map(dsl -> Map.entry(app.getId(), sanitizeDsl(dsl)))) .collectMap(Map.Entry::getKey, Map.Entry::getValue) .flatMap(dependentModuleDsl -> - application.getLiveApplicationDsl(applicationRecordService).map(liveDsl -> - ApplicationView.builder() - .applicationInfoView(buildView(application, permission.getResourceRole().getValue())) - .applicationDSL(sanitizeDsl(liveDsl)) - .moduleDSL(dependentModuleDsl) - .orgCommonSettings(commonSettings) - .templateId(templateId) - .build()) + application.getLiveApplicationDsl(applicationRecordService).flatMap(liveDsl -> + buildView(application, permission.getResourceRole().getValue()).map(appInfoView -> + ApplicationView.builder() + .applicationInfoView(appInfoView) + .applicationDSL(sanitizeDsl(liveDsl)) + .moduleDSL(dependentModuleDsl) + .orgCommonSettings(commonSettings) + .templateId(templateId) + .build())) ); }) .delayUntil(applicationView -> { @@ -346,10 +350,10 @@ public Mono update(String applicationId, Application applicatio applicationId, EDIT_APPLICATIONS)) .delayUntil(__ -> checkDatasourcePermissions(application)) .flatMap(permission -> doUpdateApplication(applicationId, application) - .map(applicationUpdated -> ApplicationView.builder() - .applicationInfoView(buildView(applicationUpdated, permission.getResourceRole().getValue())) + .flatMap(applicationUpdated -> buildView(applicationUpdated, permission.getResourceRole().getValue()).map(appInfoView -> ApplicationView.builder() + .applicationInfoView(appInfoView) .applicationDSL(applicationUpdated.getEditingApplicationDSL()) - .build())); + .build()))); } private Mono doUpdateApplication(String applicationId, Application application) { @@ -376,10 +380,10 @@ public Mono publish(String applicationId, ApplicationPublishReq .build()) .flatMap(applicationRecordService::insert)) .flatMap(permission -> applicationService.findById(applicationId) - .map(applicationUpdated -> ApplicationView.builder() - .applicationInfoView(buildView(applicationUpdated, permission.getResourceRole().getValue())) + .flatMap(applicationUpdated -> buildView(applicationUpdated, permission.getResourceRole().getValue()).map(appInfoView -> ApplicationView.builder() + .applicationInfoView(appInfoView) .applicationDSL(applicationUpdated.getEditingApplicationDSL()) - .build())); + .build()))); } @Override @@ -472,10 +476,10 @@ public Mono createFromTemplate(String templateId) { .delayUntil(orgMember -> orgDevChecker.checkCurrentOrgDev()) .delayUntil(bizThresholdChecker::checkMaxOrgApplicationCount) .flatMap(orgMember -> templateSolutionService.createFromTemplate(templateId, orgMember.getOrgId(), orgMember.getUserId()) - .map(applicationCreated -> ApplicationView.builder() - .applicationInfoView(buildView(applicationCreated)) + .flatMap(applicationCreated -> buildView(applicationCreated).map(appInfoView -> ApplicationView.builder() + .applicationInfoView(appInfoView) .applicationDSL(applicationCreated.getEditingApplicationDSL()) - .build())); + .build()))); } @Override @@ -547,8 +551,14 @@ public Mono checkApplicationPermissionWithReadableErrorMsg(S - private ApplicationInfoView buildView(Application application, String role) { - return buildView(application, role, null); + private Mono buildView(Application application, String role) { + return Mono.just(buildView(application, role, null)).delayUntil(applicationInfoView -> { + String applicationId = applicationInfoView.getApplicationId(); + return folderElementRelationService.getByElementIds(List.of(applicationId)) + .doOnNext(folderElement -> { + applicationInfoView.setFolderId(folderElement.folderId()); + }).then(); + }); } private ApplicationInfoView buildView(Application application, String role, @Nullable String folderId) { @@ -572,7 +582,7 @@ private ApplicationInfoView buildView(Application application, String role, @Nul .build(); } - private ApplicationInfoView buildView(Application application) { + private Mono buildView(Application application) { return buildView(application, ""); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index b765d19f6..b62a6e887 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -39,7 +39,6 @@ public class ApplicationController implements ApplicationEndpoints { private final BusinessEventPublisher businessEventPublisher; private final SessionUserService sessionUserService; private final GidService gidService; - private final FolderElementRelationService folderElementRelationService; private final ApplicationRecordService applicationRecordService; @Override @@ -187,13 +186,6 @@ public Mono>> getApplications(@RequestPar @RequestParam(required = false, defaultValue = "0") Integer pageSize) { ApplicationType applicationTypeEnum = applicationType == null ? null : ApplicationType.fromValue(applicationType); var flux = userHomeApiService.getAllAuthorisedApplications4CurrentOrgMember(applicationTypeEnum, applicationStatus, withContainerSize, name, category) - .delayUntil(applicationInfoView -> { - String applicationId = applicationInfoView.getApplicationId(); - return folderElementRelationService.getByElementIds(List.of(applicationId)) - .doOnNext(folderElement -> { - applicationInfoView.setFolderId(folderElement.folderId()); - }).then(); - }) .cache(); Mono countMono = flux.count(); var flux1 = flux.skip((long) (pageNum - 1) * pageSize); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java index efc27c41a..ee02ce0ab 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java @@ -21,6 +21,7 @@ import org.lowcoder.domain.bundle.model.BundleStatus; import org.lowcoder.domain.bundle.service.BundleElementRelationServiceImpl; import org.lowcoder.domain.bundle.service.BundleService; +import org.lowcoder.domain.folder.service.FolderElementRelationService; import org.lowcoder.domain.interaction.UserApplicationInteraction; import org.lowcoder.domain.interaction.UserApplicationInteractionService; import org.lowcoder.domain.organization.model.OrgMember; @@ -72,6 +73,7 @@ public class UserHomeApiServiceImpl implements UserHomeApiService { private final BundleElementRelationServiceImpl bundleElementRelationServiceImpl; private final BundleService bundleService; private final ApplicationRecordService applicationRecordService; + private final FolderElementRelationService folderElementRelationService; @Override public Mono buildUserProfileView(User user, ServerWebExchange exchange) { @@ -607,6 +609,12 @@ private Mono buildView(Application application, ResourceRol .build())); } return Mono.just(applicationInfoViewBuilder.build()); + }).delayUntil(applicationInfoView -> { + String applicationId = applicationInfoView.getApplicationId(); + return folderElementRelationService.getByElementIds(List.of(applicationId)) + .doOnNext(folderElement -> { + applicationInfoView.setFolderId(folderElement.folderId()); + }).then(); }); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy