Skip to content

Commit 5221870

Browse files
author
Thomas
committed
use UUIDv7
Add GID to Organization
1 parent 3f88b5b commit 5221870

File tree

6 files changed

+28
-4
lines changed

6 files changed

+28
-4
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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.*;
1010
import java.util.function.Supplier;
1111

12+
import com.github.f4b6a3.uuid.UuidCreator;
1213
import lombok.Getter;
1314
import lombok.NoArgsConstructor;
1415
import lombok.Setter;
@@ -36,7 +37,7 @@
3637
@NoArgsConstructor
3738
public class Application extends HasIdAndAuditing {
3839
@Getter
39-
private String gid = UUID.randomUUID().toString();
40+
private String gid = UuidCreator.getTimeOrderedEpoch().toString();
4041
private String organizationId;
4142
private String name;
4243
private Integer applicationType;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.lowcoder.domain.bundle.model;
22

33

4+
import com.github.f4b6a3.uuid.UuidCreator;
45
import jakarta.annotation.Nullable;
56
import lombok.Getter;
67
import lombok.NoArgsConstructor;
@@ -20,7 +21,7 @@
2021
@SuperBuilder
2122
public class Bundle extends HasIdAndAuditing {
2223
@Getter
23-
private String gid = UUID.randomUUID().toString();
24+
private String gid = UuidCreator.getTimeOrderedEpoch().toString();
2425
private String organizationId;
2526
@Nullable
2627
private String name;

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/model/Organization.java

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

99
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
1010
import com.fasterxml.jackson.annotation.JsonView;
11+
import com.github.f4b6a3.uuid.UuidCreator;
1112
import lombok.experimental.SuperBuilder;
1213
import lombok.extern.jackson.Jacksonized;
1314
import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -37,6 +38,8 @@
3738
public class Organization extends HasIdAndAuditing implements BeforeMongodbWrite, AfterMongodbRead {
3839

3940
private static final OrganizationCommonSettings EMPTY_SETTINGS = new OrganizationCommonSettings();
41+
@Getter
42+
private String gid = UuidCreator.getTimeOrderedEpoch().toString();
4043

4144
private String name;
4245

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/repository/OrganizationRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ public interface OrganizationRepository extends ReactiveMongoRepository<Organiza
1515
Mono<Organization> findFirstByStateMatches(OrganizationState state);
1616

1717
Flux<Organization> findByIdInAndState(Collection<String> id, OrganizationState state);
18+
Flux<Organization> findByIdGinAndState(Collection<String> gid, OrganizationState state);
1819

1920
Mono<Organization> findByIdAndState(String id, OrganizationState state);
21+
Mono<Organization> findByGidAndState(String gid, OrganizationState state);
2022

2123
Mono<Organization> findBySourceAndThirdPartyCompanyIdAndState(String source, String tpCompanyId, OrganizationState state);
2224

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public Mono<Organization> createDefault(User user, boolean isSuperAdmin) {
103103

104104
private Mono<Boolean> joinOrganizationInEnterpriseMode(String userId) {
105105
return getOrganizationInEnterpriseMode()
106-
.flatMap(organization -> orgMemberService.addMember(organization.getId(), userId, MemberRole.MEMBER))
106+
.flatMap(organization -> orgMemberService.addMember(organization.getGid(), userId, MemberRole.MEMBER))
107107
.defaultIfEmpty(false);
108108
}
109109

@@ -164,19 +164,28 @@ private Mono<Boolean> setOrgAdmin(String userId, Organization newOrg, boolean is
164164

165165
@Override
166166
public Mono<Organization> getById(String id) {
167+
if(FieldName.isGID(id))
168+
return repository.findByGidAndState(id, ACTIVE)
169+
.switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID"));
167170
return repository.findByIdAndState(id, ACTIVE)
168171
.switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID"));
169172
}
170173

171174
@Override
172175
public Mono<OrganizationCommonSettings> getOrgCommonSettings(String orgId) {
176+
if(FieldName.isGID(orgId))
177+
return repository.findByGidAndState(orgId, ACTIVE)
178+
.switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID"))
179+
.map(Organization::getCommonSettings);
173180
return repository.findByIdAndState(orgId, ACTIVE)
174181
.switchIfEmpty(deferredError(UNABLE_TO_FIND_VALID_ORG, "INVALID_ORG_ID"))
175182
.map(Organization::getCommonSettings);
176183
}
177184

178185
@Override
179186
public Flux<Organization> getByIds(Collection<String> ids) {
187+
if(!ids.isEmpty() && FieldName.isGID(ids.stream().findFirst().get()))
188+
return repository.findByIdGinAndState(ids, ACTIVE);
180189
return repository.findByIdInAndState(ids, ACTIVE);
181190
}
182191

@@ -203,7 +212,10 @@ public Mono<Boolean> uploadLogo(String organizationId, Part filePart) {
203212

204213
@Override
205214
public Mono<Boolean> deleteLogo(String organizationId) {
206-
return repository.findByIdAndState(organizationId, ACTIVE)
215+
Mono<Organization> organizationMono;
216+
if(FieldName.isGID(organizationId)) organizationMono = repository.findByGidAndState(organizationId, ACTIVE);
217+
else organizationMono = repository.findByIdAndState(organizationId, ACTIVE);
218+
return organizationMono
207219
.flatMap(organization -> {
208220
// delete from asset repo.
209221
final String prevAssetId = organization.getLogoAssetId();

0 commit comments

Comments
 (0)