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

Commita8e8b9a

Browse files
authored
Merge pull requestlowcoder-org#960 from th37rose/feature/gid
Introduce GID(UUID) to all objects in the database
2 parentsdb1a528 +b3308a3 commita8e8b9a

File tree

40 files changed

+376
-305
lines changed

40 files changed

+376
-305
lines changed

‎server/api-service/lowcoder-domain/pom.xml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,11 @@
262262
<artifactId>jaxb-runtime</artifactId>
263263
</dependency>
264264
<!-- oss-->
265+
<dependency>
266+
<groupId>com.github.f4b6a3</groupId>
267+
<artifactId>uuid-creator</artifactId>
268+
<version>5.2.0</version>
269+
</dependency>
265270
</dependencies>
266271

267272
<build>

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@
66
importstaticorg.lowcoder.domain.application.ApplicationUtil.getContainerSizeFromDSL;
77
importstaticorg.lowcoder.domain.application.ApplicationUtil.getDependentModulesFromDsl;
88

9-
importjava.util.Collections;
10-
importjava.util.Map;
11-
importjava.util.Optional;
12-
importjava.util.Set;
9+
importjava.util.*;
1310
importjava.util.function.Supplier;
1411

12+
importcom.github.f4b6a3.uuid.UuidCreator;
13+
importlombok.Getter;
1514
importlombok.NoArgsConstructor;
1615
importlombok.Setter;
1716
importlombok.experimental.SuperBuilder;
@@ -37,7 +36,8 @@
3736
@SuperBuilder
3837
@NoArgsConstructor
3938
publicclassApplicationextendsHasIdAndAuditing {
40-
39+
@Getter
40+
privateStringgid;
4141
privateStringorganizationId;
4242
privateStringname;
4343
privateIntegerapplicationType;
@@ -64,6 +64,7 @@ public Application(
6464
@JsonProperty("publicToMarketplace")BooleanpublicToMarketplace,
6565
@JsonProperty("agencyProfile")BooleanagencyProfile
6666
) {
67+
this.gid =UuidCreator.getTimeOrderedEpoch().toString();
6768
this.organizationId =organizationId;
6869
this.name =name;
6970
this.applicationType =applicationType;

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,37 @@ public interface ApplicationRepository extends ReactiveMongoRepository<Applicati
2525
@Query(fields ="{ publishedApplicationDSL : 0 , editingApplicationDSL : 0 }")
2626
Mono<Application>findById(@NonnullStringid);
2727

28+
@Query(fields ="{ publishedApplicationDSL : 0 , editingApplicationDSL : 0 }")
29+
Flux<Application>findByGid(@NonnullStringgid);
30+
2831
Mono<Long>countByOrganizationIdAndApplicationStatus(StringorganizationId,ApplicationStatusapplicationStatus);
2932

3033
@Query("{$or : [{'publishedApplicationDSL.queries.datasourceId':?0},{'editingApplicationDSL.queries.datasourceId':?0}]}")
3134
Flux<Application>findByDatasourceId(StringdatasourceId);
3235

3336
Flux<Application>findByIdIn(Collection<String>ids);
37+
Flux<Application>findByGidIn(Collection<String>ids);
3438

3539
Flux<Application>findByCreatedByAndIdIn(StringuserId,Collection<String>ids);
40+
Flux<Application>findByCreatedByAndGidIn(StringuserId,Collection<String>gids);
3641

3742
/**
3843
* Filter public applications from list of supplied IDs
3944
*/
4045
Flux<Application>findByPublicToAllIsTrueAndIdIn(Collection<String>ids);
46+
Flux<Application>findByPublicToAllIsTrueAndGidIn(Collection<String>gids);
4147

4248
/**
4349
* Filter marketplace applications from list of supplied IDs
4450
*/
4551
Flux<Application>findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndIdIn(Collection<String>ids);
52+
Flux<Application>findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndGidIn(Collection<String>ids);
4653

4754
/**
4855
* Filter agency applications from list of supplied IDs
4956
*/
5057
Flux<Application>findByPublicToAllIsTrueAndAgencyProfileIsTrueAndIdIn(Collection<String>ids);
58+
Flux<Application>findByPublicToAllIsTrueAndAgencyProfileIsTrueAndGidIn(Collection<String>ids);
5159

5260
/**
5361
* Find all marketplace applications

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
packageorg.lowcoder.domain.application.repository;
22

33
importorg.lowcoder.domain.application.model.Application;
4+
importorg.lowcoder.sdk.constants.FieldName;
45
importorg.springframework.beans.factory.annotation.Autowired;
56
importorg.springframework.data.mongodb.core.ReactiveMongoTemplate;
67
importorg.springframework.data.mongodb.core.query.Criteria;
@@ -25,6 +26,6 @@ public Flux<Application> findByOrganizationIdWithDsl(String organizationId) {
2526

2627
@Override
2728
publicMono<Application>findByIdWithDsl(StringapplicationId) {
28-
returnreactiveMongoTemplate.findById(applicationId,Application.class);
29+
returnreactiveMongoTemplate.findOne(newQuery(Criteria.where(FieldName.guessFieldNameFromId(applicationId)).is(applicationId)),Application.class);
2930
}
3031
}

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

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ public Mono<Application> findByIdWithoutDsl(String id) {
6161
returnMono.error(newBizException(BizError.INVALID_PARAMETER,"INVALID_PARAMETER",FieldName.ID));
6262
}
6363

64+
if(FieldName.isGID(id))
65+
returnMono.from(repository.findByGid(id)).switchIfEmpty(Mono.error(newBizException(BizError.NO_RESOURCE_FOUND,"CANT_FIND_APPLICATION",id)));
6466
returnrepository.findById(id)
6567
.switchIfEmpty(Mono.error(newBizException(BizError.NO_RESOURCE_FOUND,"CANT_FIND_APPLICATION",id)));
6668
}
@@ -127,6 +129,8 @@ public Mono<Long> countByOrganizationId(String orgId, ApplicationStatus applicat
127129

128130
@Override
129131
publicFlux<Application>findByIdIn(List<String>applicationIds) {
132+
if(!applicationIds.isEmpty() &&FieldName.isGID(applicationIds.get(0)))
133+
returnrepository.findByGidIn(applicationIds);
130134
returnrepository.findByIdIn(applicationIds);
131135
}
132136

@@ -256,10 +260,14 @@ public Mono<Set<String>> getFilteredPublicApplicationIds(ApplicationRequestType
256260
@NonEmptyMono
257261
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")
258262
publicMono<Set<String>>getPublicApplicationIds(Collection<String>applicationIds) {
263+
if(!applicationIds.isEmpty() &&FieldName.isGID(applicationIds.stream().findFirst().get()))
264+
returnrepository.findByPublicToAllIsTrueAndGidIn(applicationIds)
265+
.map(Application::getGid)
266+
.collect(Collectors.toSet());
259267

260268
returnrepository.findByPublicToAllIsTrueAndIdIn(applicationIds)
261-
.map(HasIdAndAuditing::getId)
262-
.collect(Collectors.toSet());
269+
.map(HasIdAndAuditing::getId)
270+
.collect(Collectors.toSet());
263271
}
264272

265273

@@ -272,13 +280,14 @@ public Mono<Set<String>> getPublicApplicationIds(Collection<String> applicationI
272280
publicMono<Set<String>>getPrivateApplicationIds(Collection<String>applicationIds,StringuserId) {
273281

274282
// TODO: in 2.4.0 we need to check whether the app was published or not
275-
returnrepository.findByCreatedByAndIdIn(userId,applicationIds)
276-
.map(HasIdAndAuditing::getId)
277-
.collect(Collectors.toSet());
283+
if(!applicationIds.isEmpty() &&FieldName.isGID(applicationIds.stream().findFirst().get()))
284+
returnrepository.findByCreatedByAndGidIn(userId,applicationIds)
285+
.map(Application::getGid)
286+
.collect(Collectors.toSet());
278287

279-
// return repository.findByIdIn(applicationIds)
280-
// .map(HasIdAndAuditing::getId)
281-
// .collect(Collectors.toSet());
288+
returnrepository.findByCreatedByAndIdIn(userId,applicationIds)
289+
.map(HasIdAndAuditing::getId)
290+
.collect(Collectors.toSet());
282291
}
283292

284293

@@ -292,6 +301,11 @@ public Mono<Set<String>> getPublicMarketplaceApplicationIds(Collection<String> a
292301

293302
if ((isAnonymous && !isPrivateMarketplace) || !isAnonymous)
294303
{
304+
if(!applicationIds.isEmpty() &&FieldName.isGID(applicationIds.stream().findFirst().get()))
305+
returnrepository.findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndGidIn(applicationIds)
306+
.map(Application::getGid)
307+
.collect(Collectors.toSet());
308+
295309
returnrepository.findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndIdIn(applicationIds)
296310
.map(HasIdAndAuditing::getId)
297311
.collect(Collectors.toSet());
@@ -307,6 +321,11 @@ public Mono<Set<String>> getPublicMarketplaceApplicationIds(Collection<String> a
307321
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")
308322
publicMono<Set<String>>getPublicAgencyApplicationIds(Collection<String>applicationIds) {
309323

324+
if(!applicationIds.isEmpty() &&FieldName.isGID(applicationIds.stream().findFirst().get()))
325+
returnrepository.findByPublicToAllIsTrueAndAgencyProfileIsTrueAndGidIn(applicationIds)
326+
.map(Application::getGid)
327+
.collect(Collectors.toSet());
328+
310329
returnrepository.findByPublicToAllIsTrueAndAgencyProfileIsTrueAndIdIn(applicationIds)
311330
.map(HasIdAndAuditing::getId)
312331
.collect(Collectors.toSet());

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/model/Bundle.java‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
packageorg.lowcoder.domain.bundle.model;
22

33

4+
importcom.github.f4b6a3.uuid.UuidCreator;
45
importjakarta.annotation.Nullable;
56
importlombok.Getter;
67
importlombok.NoArgsConstructor;
@@ -10,6 +11,8 @@
1011
importorg.lowcoder.sdk.models.HasIdAndAuditing;
1112
importorg.springframework.data.mongodb.core.mapping.Document;
1213

14+
importjava.util.UUID;
15+
1316
importjava.util.Map;
1417

1518
@Getter
@@ -18,6 +21,8 @@
1821
@NoArgsConstructor
1922
@SuperBuilder
2023
publicclassBundleextendsHasIdAndAuditing {
24+
@Getter
25+
privateStringgid;
2126
privateStringorganizationId;
2227
@Nullable
2328
privateStringname;

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/repository/BundleRepository.java‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,37 @@
11
packageorg.lowcoder.domain.bundle.repository;
22

3+
importjakarta.annotation.Nonnull;
34
importorg.lowcoder.domain.bundle.model.Bundle;
45
importorg.springframework.data.mongodb.repository.ReactiveMongoRepository;
56
importorg.springframework.stereotype.Repository;
67
importreactor.core.publisher.Flux;
8+
importreactor.core.publisher.Mono;
79

810
importjava.util.Collection;
911

1012
@Repository
1113
publicinterfaceBundleRepositoryextendsReactiveMongoRepository<Bundle,String> {
14+
Mono<Void>deleteAllByGid(Collection<String>gids);
15+
Flux<Bundle>findByGid(@NonnullStringgid);
1216

1317
Flux<Bundle>findByCreatedBy(StringuserId);
1418
/**
1519
* Filter marketplace bundles from list of supplied IDs
1620
*/
1721
Flux<Bundle>findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndIdIn(Collection<String>ids);
22+
Flux<Bundle>findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndGidIn(Collection<String>gids);
1823
/**
1924
* Filter public bundles from list of supplied IDs
2025
*/
2126
Flux<Bundle>findByPublicToAllIsTrueAndIdIn(Collection<String>ids);
27+
Flux<Bundle>findByPublicToAllIsTrueAndGidIn(Collection<String>gids);
2228
Flux<Bundle>findByCreatedByAndIdIn(StringuserId,Collection<String>ids);
29+
Flux<Bundle>findByCreatedByAndGidIn(StringuserId,Collection<String>gids);
2330
/**
2431
* Filter agency bundles from list of supplied IDs
2532
*/
2633
Flux<Bundle>findByPublicToAllIsTrueAndAgencyProfileIsTrueAndIdIn(Collection<String>ids);
34+
Flux<Bundle>findByPublicToAllIsTrueAndAgencyProfileIsTrueAndGidIn(Collection<String>gids);
2735

2836
Flux<Bundle>findByPublicToAllIsTrueAndPublicToMarketplaceIsTrue();
2937

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleServiceImpl.java‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ public Mono<Bundle> findById(String id) {
4848
returnMono.error(newBizException(BizError.INVALID_PARAMETER,"INVALID_PARAMETER",FieldName.ID));
4949
}
5050

51+
if(FieldName.isGID(id))
52+
returnMono.from(repository.findByGid(id))
53+
.switchIfEmpty(Mono.error(newBizException(BizError.NO_RESOURCE_FOUND,"BUNDLE_NOT_FOUND",id)));
54+
5155
returnrepository.findById(id)
5256
.switchIfEmpty(Mono.error(newBizException(BizError.NO_RESOURCE_FOUND,"BUNDLE_NOT_FOUND",id)));
5357
}
@@ -75,6 +79,8 @@ public Flux<Bundle> findByUserId(String userId) {
7579

7680
@Override
7781
publicMono<Void>deleteAllById(Collection<String>ids) {
82+
if(!ids.isEmpty() &&FieldName.isGID(ids.stream().findFirst().get()))
83+
returnrepository.deleteAllByGid(ids);
7884
returnrepository.deleteAllById(ids);
7985
}
8086

@@ -138,6 +144,11 @@ public Mono<Set<String>> getFilteredPublicBundleIds(BundleRequestType requestTyp
138144
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")
139145
publicMono<Set<String>>getPublicBundleIds(Collection<String>bundleIds) {
140146

147+
if(!bundleIds.isEmpty() &&FieldName.isGID(bundleIds.stream().findFirst().get()))
148+
returnrepository.findByPublicToAllIsTrueAndGidIn(bundleIds)
149+
.map(Bundle::getGid)
150+
.collect(Collectors.toSet());
151+
141152
returnrepository.findByPublicToAllIsTrueAndIdIn(bundleIds)
142153
.map(HasIdAndAuditing::getId)
143154
.collect(Collectors.toSet());
@@ -153,6 +164,10 @@ public Mono<Set<String>> getPublicBundleIds(Collection<String> bundleIds) {
153164
publicMono<Set<String>>getPrivateBundleIds(Collection<String>bundleIds,StringuserId) {
154165

155166
// TODO: in 2.4.0 we need to check whether the app was published or not
167+
if(!bundleIds.isEmpty() &&FieldName.isGID(bundleIds.stream().findFirst().get()))
168+
returnrepository.findByCreatedByAndGidIn(userId,bundleIds)
169+
.map(Bundle::getGid)
170+
.collect(Collectors.toSet());
156171
returnrepository.findByCreatedByAndIdIn(userId,bundleIds)
157172
.map(HasIdAndAuditing::getId)
158173
.collect(Collectors.toSet());
@@ -173,6 +188,11 @@ public Mono<Set<String>> getPublicMarketplaceBundleIds(Collection<String> bundle
173188

174189
if (!isAnonymous || !isPrivateMarketplace)
175190
{
191+
if(!bundleIds.isEmpty() &&FieldName.isGID(bundleIds.stream().findFirst().get()))
192+
returnrepository.findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndGidIn(bundleIds)
193+
.map(Bundle::getGid)
194+
.collect(Collectors.toSet());
195+
176196
returnrepository.findByPublicToAllIsTrueAndPublicToMarketplaceIsTrueAndIdIn(bundleIds)
177197
.map(HasIdAndAuditing::getId)
178198
.collect(Collectors.toSet());
@@ -188,6 +208,11 @@ public Mono<Set<String>> getPublicMarketplaceBundleIds(Collection<String> bundle
188208
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")
189209
publicMono<Set<String>>getPublicAgencyBundleIds(Collection<String>bundleIds) {
190210

211+
if(!bundleIds.isEmpty() &&FieldName.isGID(bundleIds.stream().findFirst().get()))
212+
returnrepository.findByPublicToAllIsTrueAndAgencyProfileIsTrueAndGidIn(bundleIds)
213+
.map(Bundle::getGid)
214+
.collect(Collectors.toSet());
215+
191216
returnrepository.findByPublicToAllIsTrueAndAgencyProfileIsTrueAndIdIn(bundleIds)
192217
.map(HasIdAndAuditing::getId)
193218
.collect(Collectors.toSet());

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/model/Folder.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
packageorg.lowcoder.domain.folder.model;
22

33

4+
importcom.github.f4b6a3.uuid.UuidCreator;
45
importjakarta.annotation.Nullable;
56
importlombok.Getter;
67
importlombok.NoArgsConstructor;
@@ -15,8 +16,10 @@
1516
publicclassFolderextendsHasIdAndAuditing {
1617

1718
privateStringorganizationId;
19+
privateStringgid;
1820
@Nullable
1921
privateStringparentFolderId;// null represents folder in the root folder
22+
privateStringparentFolderGid;// null represents folder in the root folder
2023
privateStringname;
2124
privateStringtitle;
2225
privateStringdescription;

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/folder/repository/FolderRepository.java‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@
55
importorg.springframework.stereotype.Repository;
66

77
importreactor.core.publisher.Flux;
8+
importreactor.core.publisher.Mono;
9+
10+
importjava.util.Collection;
811

912
@Repository
1013
publicinterfaceFolderRepositoryextendsReactiveMongoRepository<Folder,String> {
1114

1215
Flux<Folder>findByOrganizationId(StringorganizationId);
16+
Mono<Folder>findByGid(StringorganizationGid);
17+
Mono<Void>deleteAllByGid(Collection<String>gids);
1318
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp