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

Commit8190bea

Browse files
authored
Merge pull request#1461 from lowcoder-org/environment
Add required info into events
2 parentsafa744b +a1880a2 commit8190bea

File tree

6 files changed

+59
-13
lines changed

6 files changed

+59
-13
lines changed

‎server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/AbstractEvent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public abstract class AbstractEvent implements LowcoderEvent
2424

2525
publicMap<String,Object>details()
2626
{
27+
this.details.put("environmentId",environmentID);
2728
returnthis.details;
2829
}
2930

‎server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/ApplicationCommonEvent.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,17 @@ public class ApplicationCommonEvent extends AbstractEvent {
1212
privatefinalStringapplicationId;
1313
privatefinalStringapplicationGid;
1414
privatefinalStringapplicationName;
15+
privatefinalStringapplicationCategory;
16+
privatefinalStringapplicationDescription;
1517
privatefinalEventTypetype;
1618
@Nullable
1719
privatefinalStringfolderId;
1820
@Nullable
1921
privatefinalStringfolderName;
22+
@Nullable
23+
privatefinalStringoldFolderId;
24+
@Nullable
25+
privatefinalStringoldFolderName;
2026

2127
@Override
2228
publicEventTypegetEventType() {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,15 @@ public Mono<ResponseView<ApplicationView>> createFromTemplate(@RequestParam Stri
5959
publicMono<ResponseView<Boolean>>recycle(@PathVariableStringapplicationId) {
6060
returngidService.convertApplicationIdToObjectId(applicationId).flatMap(appId ->
6161
applicationApiService.recycle(appId)
62-
.delayUntil(__ ->businessEventPublisher.publishApplicationCommonEvent(applicationId,null,APPLICATION_RECYCLED))
62+
.delayUntil(__ ->businessEventPublisher.publishApplicationCommonEvent(applicationId,null,null,APPLICATION_RECYCLED))
6363
.map(ResponseView::success));
6464
}
6565

6666
@Override
6767
publicMono<ResponseView<Boolean>>restore(@PathVariableStringapplicationId) {
6868
returngidService.convertApplicationIdToObjectId(applicationId).flatMap(appId ->
6969
applicationApiService.restore(appId)
70-
.delayUntil(__ ->businessEventPublisher.publishApplicationCommonEvent(applicationId,null,APPLICATION_RESTORE))
70+
.delayUntil(__ ->businessEventPublisher.publishApplicationCommonEvent(applicationId,null,null,APPLICATION_RESTORE))
7171
.map(ResponseView::success));
7272
}
7373

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ public class ApplicationInfoView {
2929
privatefinalObjectcontainerSize;// for module size
3030
@Nullable
3131
privateStringfolderId;
32+
@Nullable
33+
@JsonInclude(Include.NON_NULL)
34+
privateStringfolderIdFrom;
3235

3336
@Nullable
3437
privatefinalInstantlastViewTime;// user last visit time for this app

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
11
packageorg.lowcoder.api.home;
22

3-
importstaticorg.lowcoder.plugin.api.event.LowcoderEvent.EventType.APPLICATION_MOVE;
4-
importstaticorg.lowcoder.sdk.exception.BizError.INVALID_PARAMETER;
5-
importstaticorg.lowcoder.sdk.util.ExceptionUtils.ofError;
6-
3+
importlombok.RequiredArgsConstructor;
74
importorg.lowcoder.api.application.view.ApplicationPermissionView;
85
importorg.lowcoder.api.framework.view.PageResponseView;
96
importorg.lowcoder.api.framework.view.ResponseView;
107
importorg.lowcoder.api.util.BusinessEventPublisher;
118
importorg.lowcoder.api.util.GidService;
129
importorg.lowcoder.domain.application.model.ApplicationType;
1310
importorg.lowcoder.domain.folder.model.Folder;
11+
importorg.lowcoder.domain.folder.service.FolderElementRelationService;
1412
importorg.lowcoder.domain.folder.service.FolderService;
1513
importorg.lowcoder.domain.permission.model.ResourceRole;
1614
importorg.lowcoder.plugin.api.event.LowcoderEvent.EventType;
1715
importorg.springframework.web.bind.annotation.PathVariable;
1816
importorg.springframework.web.bind.annotation.RequestBody;
1917
importorg.springframework.web.bind.annotation.RequestParam;
2018
importorg.springframework.web.bind.annotation.RestController;
21-
22-
importlombok.RequiredArgsConstructor;
2319
importreactor.core.publisher.Mono;
2420

21+
importjava.util.List;
22+
23+
importstaticorg.lowcoder.plugin.api.event.LowcoderEvent.EventType.APPLICATION_MOVE;
24+
importstaticorg.lowcoder.sdk.exception.BizError.INVALID_PARAMETER;
25+
importstaticorg.lowcoder.sdk.util.ExceptionUtils.ofError;
26+
2527
@RequiredArgsConstructor
2628
@RestController
2729
publicclassFolderControllerimplementsFolderEndpoints
@@ -31,6 +33,7 @@ public class FolderController implements FolderEndpoints
3133
privatefinalFolderApiServicefolderApiService;
3234
privatefinalBusinessEventPublisherbusinessEventPublisher;
3335
privatefinalGidServicegidService;
36+
privatefinalFolderElementRelationServicefolderElementRelationService;
3437

3538
@Override
3639
publicMono<ResponseView<FolderInfoView>>create(@RequestBodyFolderfolder) {
@@ -89,10 +92,11 @@ public Mono<PageResponseView<?>> getElements(@RequestParam(value = "id", require
8992
@Override
9093
publicMono<ResponseView<Void>>move(@PathVariable("id")StringapplicationLikeId,
9194
@RequestParam(value ="targetFolderId",required =false)StringtargetFolderId) {
92-
returngidService.convertFolderIdToObjectId(targetFolderId).flatMap(objectId ->
93-
folderApiService.move(applicationLikeId,objectId.orElse(null))
94-
.then(businessEventPublisher.publishApplicationCommonEvent(applicationLikeId,objectId.orElse(null),APPLICATION_MOVE))
95-
.then(Mono.fromSupplier(() ->ResponseView.success(null))));
95+
returnfolderElementRelationService.getByElementIds(List.of(applicationLikeId)).next().flatMap(folderElement ->
96+
gidService.convertFolderIdToObjectId(targetFolderId).flatMap(objectId ->
97+
folderApiService.move(applicationLikeId,objectId.orElse(null))
98+
.then(businessEventPublisher.publishApplicationCommonEvent(applicationLikeId,folderElement.folderId(),objectId.orElse(null),APPLICATION_MOVE))
99+
.then(Mono.fromSupplier(() ->ResponseView.success(null)))));
96100
}
97101

98102
@Override

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/BusinessEventPublisher.java

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
importlombok.RequiredArgsConstructor;
66
importlombok.extern.slf4j.Slf4j;
77
importorg.apache.commons.lang3.StringUtils;
8+
importorg.apache.commons.lang3.tuple.Pair;
89
importorg.lowcoder.api.application.view.ApplicationInfoView;
910
importorg.lowcoder.api.application.view.ApplicationView;
1011
importorg.lowcoder.api.home.SessionUserService;
1112
importorg.lowcoder.api.usermanagement.view.AddMemberRequest;
1213
importorg.lowcoder.api.usermanagement.view.UpdateRoleRequest;
14+
importorg.lowcoder.domain.application.service.ApplicationRecordServiceImpl;
1315
importorg.lowcoder.domain.application.service.ApplicationService;
1416
importorg.lowcoder.domain.datasource.model.Datasource;
1517
importorg.lowcoder.domain.datasource.service.DatasourceService;
@@ -40,6 +42,7 @@
4042
importorg.lowcoder.infra.event.groupmember.GroupMemberRoleUpdateEvent;
4143
importorg.lowcoder.infra.event.user.UserLoginEvent;
4244
importorg.lowcoder.infra.event.user.UserLogoutEvent;
45+
importorg.lowcoder.infra.util.TupleUtils;
4346
importorg.lowcoder.plugin.api.event.LowcoderEvent.EventType;
4447
importorg.lowcoder.sdk.constants.Authentication;
4548
importorg.lowcoder.sdk.util.LocaleUtils;
@@ -65,6 +68,7 @@ public class BusinessEventPublisher {
6568
privatefinalApplicationServiceapplicationService;
6669
privatefinalDatasourceServicedatasourceService;
6770
privatefinalResourcePermissionServiceresourcePermissionService;
71+
privatefinalApplicationRecordServiceImplapplicationRecordServiceImpl;
6872

6973
publicMono<Void>publishFolderCommonEvent(StringfolderId,StringfolderName,EventTypeeventType) {
7074

@@ -93,13 +97,14 @@ public Mono<Void> publishFolderCommonEvent(String folderId, String folderName, E
9397
});
9498
}
9599

96-
publicMono<Void>publishApplicationCommonEvent(StringapplicationId,@NullableStringfolderId,EventTypeeventType) {
100+
publicMono<Void>publishApplicationCommonEvent(StringapplicationId,@NullableStringfolderIdFrom,@NullableStringfolderId,EventTypeeventType) {
97101
returnapplicationService.findByIdWithoutDsl(applicationId)
98102
.map(application -> {
99103
ApplicationInfoViewapplicationInfoView =ApplicationInfoView.builder()
100104
.applicationId(applicationId)
101105
.name(application.getName())
102106
.folderId(folderId)
107+
.folderIdFrom(folderIdFrom)
103108
.build();
104109
returnApplicationView.builder()
105110
.applicationInfoView(applicationInfoView)
@@ -125,21 +130,48 @@ public Mono<Void> publishApplicationCommonEvent(ApplicationView applicationView,
125130
.map(Optional::of)
126131
.onErrorReturn(Optional.empty());
127132
}))
133+
.zipWith(Mono.defer(() -> {
134+
StringfolderId =applicationView.getApplicationInfoView().getFolderIdFrom();
135+
if (StringUtils.isBlank(folderId)) {
136+
returnMono.just(Optional.<Folder>empty());
137+
}
138+
returnfolderService.findById(folderId)
139+
.map(Optional::of)
140+
.onErrorReturn(Optional.empty());
141+
}),TupleUtils::merge)
128142
.zipWith(sessionUserService.getVisitorToken())
143+
.zipWith(Mono.defer(() -> {
144+
StringappId =applicationView.getApplicationInfoView().getApplicationId();
145+
returnapplicationService.findById(appId)
146+
.zipWhen(application ->application.getCategory(applicationRecordServiceImpl))
147+
.zipWhen(application ->application.getT1().getDescription(applicationRecordServiceImpl))
148+
.map(tuple -> {
149+
Stringcategory =tuple.getT1().getT2();
150+
Stringdescription =tuple.getT2();
151+
returnPair.of(category,description);
152+
});
153+
}),TupleUtils::merge)
129154
.doOnNext(tuple -> {
130155
OrgMemberorgMember =tuple.getT1().getT1();
131156
Optional<Folder>optional =tuple.getT1().getT2();
157+
Optional<Folder>optionalFrom =tuple.getT1().getT3();
132158
Stringtoken =tuple.getT2();
159+
Stringcategory =tuple.getT3().getLeft();
160+
Stringdescription =tuple.getT3().getRight();
133161
ApplicationInfoViewapplicationInfoView =applicationView.getApplicationInfoView();
134162
ApplicationCommonEventevent =ApplicationCommonEvent.builder()
135163
.orgId(orgMember.getOrgId())
136164
.userId(orgMember.getUserId())
137165
.applicationId(applicationInfoView.getApplicationId())
138166
.applicationGid(applicationInfoView.getApplicationGid())
139167
.applicationName(applicationInfoView.getName())
168+
.applicationCategory(category)
169+
.applicationDescription(description)
140170
.type(eventType)
141171
.folderId(optional.map(Folder::getId).orElse(null))
142172
.folderName(optional.map(Folder::getName).orElse(null))
173+
.oldFolderId(optionalFrom.map(Folder::getId).orElse(null))
174+
.oldFolderName(optionalFrom.map(Folder::getName).orElse(null))
143175
.isAnonymous(anonymous)
144176
.sessionHash(Hashing.sha512().hashString(token,StandardCharsets.UTF_8).toString())
145177
.build();

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp