Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfe89b29

Browse files
authored
Merge branch 'dev' into subscription-handling
2 parents86757ee +67a01ad commitfe89b29

File tree

5 files changed

+28
-7
lines changed

5 files changed

+28
-7
lines changed

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
importorg.springframework.data.mongodb.core.mapping.Document;
2121
importorg.springframework.util.StringUtils;
2222

23+
importjava.time.Instant;
2324
importjava.util.Collections;
2425
importjava.util.Map;
2526
importjava.util.Optional;
@@ -55,6 +56,9 @@ public class Application extends HasIdAndAuditing {
5556
@Getter
5657
@Setter
5758
privateStringeditingUserId;
59+
@Getter
60+
@Setter
61+
protectedInstantlastEditedAt;
5862

5963
publicApplication(
6064
@JsonProperty("orgId")StringorganizationId,
@@ -67,7 +71,8 @@ public Application(
6771
@JsonProperty("publicToAll")BooleanpublicToAll,
6872
@JsonProperty("publicToMarketplace")BooleanpublicToMarketplace,
6973
@JsonProperty("agencyProfile")BooleanagencyProfile,
70-
@JsonProperty("editingUserId")StringeditingUserId
74+
@JsonProperty("editingUserId")StringeditingUserId,
75+
@JsonProperty("lastEditedAt")InstantlastEditedAt
7176
) {
7277
this.gid =gid;
7378
this.organizationId =organizationId;
@@ -80,6 +85,7 @@ public Application(
8085
this.agencyProfile =agencyProfile;
8186
this.editingApplicationDSL =editingApplicationDSL;
8287
this.editingUserId =editingUserId;
88+
this.lastEditedAt =lastEditedAt;
8389
}
8490

8591
@Transient

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
importreactor.core.publisher.Flux;
88
importreactor.core.publisher.Mono;
99

10+
importjava.time.Instant;
1011
importjava.util.Collection;
1112
importjava.util.List;
1213
importjava.util.Map;
@@ -73,4 +74,6 @@ public interface ApplicationService {
7374
Mono<Set<String>>getPublicAgencyApplicationIds(Collection<String>applicationIds);
7475

7576
Flux<Application>findAll();
77+
78+
Mono<Boolean>updateLastEditedAt(StringapplicationId,Instanttime,StringvisitorId);
7679
}

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
importstaticorg.lowcoder.domain.application.ApplicationUtil.getDependentModulesFromDsl;
55

6+
importjava.time.Instant;
67
importjava.util.*;
78
importjava.util.stream.Collectors;
89

@@ -345,4 +346,13 @@ public Mono<Set<String>> getPublicAgencyApplicationIds(Collection<String> applic
345346
publicFlux<Application>findAll() {
346347
returnrepository.findAll();
347348
}
349+
350+
@Override
351+
publicMono<Boolean>updateLastEditedAt(StringapplicationId,Instanttime,StringvisitorId) {
352+
returnrepository.findById(applicationId)
353+
.filter(application ->application.getEditingUserId().equals(visitorId))
354+
.doOnNext(application ->application.setLastEditedAt(time))
355+
.flatMap(repository::save)
356+
.hasElement();
357+
}
348358
}

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public Mono<ApplicationView> create(CreateApplicationRequest createApplicationRe
102102
NORMAL,
103103
createApplicationRequest.publishedApplicationDSL(),
104104
createApplicationRequest.editingApplicationDSL(),
105-
false,false,false,"");
105+
false,false,false,"",Instant.now());
106106

107107
if (StringUtils.isBlank(application.getOrganizationId())) {
108108
returndeferredError(INVALID_PARAMETER,"ORG_ID_EMPTY");
@@ -256,17 +256,17 @@ public Mono<ApplicationView> getEditingApplication(String applicationId) {
256256
.delayUntil(application ->checkApplicationStatus(application,NORMAL)))
257257
.zipWhen(tuple ->applicationService.getAllDependentModulesFromApplication(tuple.getT2(),false),TupleUtils::merge)
258258
.zipWhen(tuple ->organizationService.getOrgCommonSettings(tuple.getT2().getOrganizationId()),TupleUtils::merge)
259-
.zipWhen(tuple ->sessionUserService.getVisitorId().zipWith(applicationHistorySnapshotService.getLastSnapshotByApp(applicationId)))
259+
.zipWhen(tuple ->sessionUserService.getVisitorId())
260260
.flatMap(tuple -> {
261261
ResourcePermissionpermission =tuple.getT1().getT1();
262262
Applicationapplication =tuple.getT1().getT2();
263263
List<Application>dependentModules =tuple.getT1().getT3();
264264
Map<String,Object>commonSettings =tuple.getT1().getT4();
265-
StringvisitorId =tuple.getT2().getT1();
266-
ApplicationHistorySnapshotlastSnapshot =tuple.getT2().getT2();
265+
StringvisitorId =tuple.getT2();
267266

268-
if(!visitorId.equals(application.getEditingUserId()) &&lastSnapshot.getCreatedAt().compareTo(Instant.now().minusSeconds(300)) <0) {
267+
if(!visitorId.equals(application.getEditingUserId()) &&(application.getLastEditedAt() ==null ||application.getLastEditedAt().compareTo(Instant.now().minusSeconds(300)) <0)) {
269268
application.setEditingUserId(visitorId);
269+
application.setLastEditedAt(Instant.now());
270270
}
271271

272272
Map<String,Map<String,Object>>dependentModuleDsl =dependentModules.stream()

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationHistorySnapshotController.java‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
importstaticorg.lowcoder.api.util.ViewBuilder.multiBuild;
44

5+
importjava.time.Instant;
56
importjava.util.List;
67
importjava.util.Map;
78
importjava.util.stream.Collectors;
@@ -43,11 +44,12 @@ public Mono<ResponseView<Boolean>> create(@RequestBody ApplicationHistorySnapsho
4344
returnsessionUserService.getVisitorId()
4445
.delayUntil(visitor ->resourcePermissionService.checkResourcePermissionWithError(visitor,request.applicationId(),
4546
ResourceAction.EDIT_APPLICATIONS))
46-
.flatMap(visitorId ->applicationHistorySnapshotService.createHistorySnapshot(request.applicationId(),
47+
.delayUntil(visitorId ->applicationHistorySnapshotService.createHistorySnapshot(request.applicationId(),
4748
request.dsl(),
4849
request.context(),
4950
visitorId)
5051
)
52+
.flatMap(visitorId ->applicationService.updateLastEditedAt(request.applicationId(),Instant.now(),visitorId))
5153
.map(ResponseView::success);
5254
}
5355

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp