From 8ce9b72e36c1919669c961ba026d745d730cf1bd Mon Sep 17 00:00:00 2001 From: Thomasr Date: Mon, 16 Sep 2024 03:12:22 -0400 Subject: [PATCH 1/4] Fix error while dsl == null --- .../domain/application/model/Application.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java index b4247621e..715832b62 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java @@ -21,10 +21,7 @@ import org.springframework.util.StringUtils; import java.time.Instant; -import java.util.Collections; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.function.Supplier; import static com.google.common.base.Suppliers.memoize; @@ -155,7 +152,9 @@ public ApplicationQuery getQueryByViewModeAndQueryId(boolean isViewMode, String @Transient @JsonIgnore public Map getLiveApplicationDsl() { - return MapUtils.isEmpty(publishedApplicationDSL) ? editingApplicationDSL : publishedApplicationDSL; + var dsl = MapUtils.isEmpty(publishedApplicationDSL) ? editingApplicationDSL : publishedApplicationDSL; + if (dsl == null) dsl = new HashMap<>(); + return dsl; } public String getOrganizationId() { @@ -175,7 +174,9 @@ public int getApplicationType() { } public Map getEditingApplicationDSL() { - return editingApplicationDSL; + var dsl = editingApplicationDSL; + if (dsl == null) dsl = new HashMap<>(); + return dsl; } public Object getLiveContainerSize() { From bd579b63ec6a94c24e59fb001c18c9161a94b964 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Mon, 16 Sep 2024 10:45:27 -0400 Subject: [PATCH 2/4] Fix error that erased app content when update. --- .../domain/application/service/ApplicationServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java index c6e757c13..1953acbe6 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java @@ -349,10 +349,10 @@ public Flux findAll() { @Override public Mono updateLastEditedAt(String applicationId, Instant time, String visitorId) { - return repository.findById(applicationId) + return repository.findByIdIn(List.of(applicationId)) .filter(application -> application.getEditingUserId().equals(visitorId)) .doOnNext(application -> application.setLastEditedAt(time)) .flatMap(repository::save) - .hasElement(); + .hasElements(); } } From aa47da2b26ae4255cdbfe774d3069d242a37985e Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 17 Sep 2024 10:59:20 -0400 Subject: [PATCH 3/4] add lastEditedAt to the response of edit endpoint. --- .../org/lowcoder/api/application/ApplicationApiServiceImpl.java | 2 ++ .../org/lowcoder/api/application/view/ApplicationInfoView.java | 1 + .../main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java | 1 + 3 files changed, 4 insertions(+) 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 17f3aedec..b5323d18e 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 @@ -556,6 +556,8 @@ private ApplicationInfoView buildView(Application application, String role, @Nul .publicToMarketplace(application.isPublicToMarketplace()) .agencyProfile(application.agencyProfile()) .editingUserId(application.getEditingUserId()) + .lastModifyTime(application.getUpdatedAt()) + .lastEditedAt(application.getLastEditedAt().toEpochMilli()) .build(); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java index cd306736a..1a19c76eb 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java @@ -33,6 +33,7 @@ public class ApplicationInfoView { @Nullable private final Instant lastViewTime; // user last visit time for this app private final Instant lastModifyTime; // app's last update time + private final long lastEditedAt; private final boolean publicToAll; private final boolean publicToMarketplace; 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 5201d3d4b..0e4bb49c0 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 @@ -575,6 +575,7 @@ private ApplicationInfoView buildView(Application application, ResourceRole maxR .applicationStatus(application.getApplicationStatus()) .lastModifyTime(application.getUpdatedAt()) .lastViewTime(lastViewTime) + .lastEditedAt(application.getLastEditedAt().toEpochMilli()) .publicToAll(application.isPublicToAll()) .publicToMarketplace(application.isPublicToMarketplace()) .agencyProfile(application.agencyProfile()); From 88339bbd007552e5032bf8d79c9e11d3f700fdca Mon Sep 17 00:00:00 2001 From: Thomasr Date: Wed, 18 Sep 2024 04:33:12 -0400 Subject: [PATCH 4/4] fix lastEditedAt issue --- .../lowcoder/api/application/ApplicationApiServiceImpl.java | 2 +- .../lowcoder/api/application/view/ApplicationInfoView.java | 6 +++++- .../java/org/lowcoder/api/home/UserHomeApiServiceImpl.java | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) 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 b5323d18e..db3e9171f 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 @@ -557,7 +557,7 @@ private ApplicationInfoView buildView(Application application, String role, @Nul .agencyProfile(application.agencyProfile()) .editingUserId(application.getEditingUserId()) .lastModifyTime(application.getUpdatedAt()) - .lastEditedAt(application.getLastEditedAt().toEpochMilli()) + .lastEditedAt(application.getLastEditedAt()) .build(); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java index 1a19c76eb..e4bc664a7 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java @@ -33,7 +33,7 @@ public class ApplicationInfoView { @Nullable private final Instant lastViewTime; // user last visit time for this app private final Instant lastModifyTime; // app's last update time - private final long lastEditedAt; + private final Instant lastEditedAt; private final boolean publicToAll; private final boolean publicToMarketplace; @@ -49,6 +49,10 @@ public long getLastModifyTime() { return lastModifyTime == null ? 0 : lastModifyTime.toEpochMilli(); } + public long getLastEditedAt() { + return lastEditedAt == null ? 0 : lastEditedAt.toEpochMilli(); + } + /** * used by front end. * 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 0e4bb49c0..b125f82fc 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 @@ -575,7 +575,7 @@ private ApplicationInfoView buildView(Application application, ResourceRole maxR .applicationStatus(application.getApplicationStatus()) .lastModifyTime(application.getUpdatedAt()) .lastViewTime(lastViewTime) - .lastEditedAt(application.getLastEditedAt().toEpochMilli()) + .lastEditedAt(application.getLastEditedAt()) .publicToAll(application.isPublicToAll()) .publicToMarketplace(application.isPublicToMarketplace()) .agencyProfile(application.agencyProfile());