From aa90bd2eb609f4e33d330779ee8ae849660429be Mon Sep 17 00:00:00 2001 From: wuayee Date: Wed, 29 Oct 2025 15:28:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[app-builder]=20=E5=A2=9E=E5=8A=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=B8=82=E5=9C=BA=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9C=89=E7=9F=AD=E9=93=BE=E7=9A=84=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../converters/impl/AppVersionToAppDtoConverter.java | 6 +++++- .../jober/aipp/domains/appversion/AppVersion.java | 12 ++++++++---- .../aipp/domains/appversion/AppVersionFactory.java | 5 ++++- .../jober/aipp/domains/appversion/Dependencies.java | 1 + .../domains/appversion/publish/StorePublisher.java | 2 ++ .../aipp-plugin/src/main/resources/application.yml | 2 ++ .../aipp/domains/appversion/AppVersionTest.java | 2 +- .../aipp/service/AppBuilderAppServiceImplTest.java | 2 +- 8 files changed, 24 insertions(+), 8 deletions(-) diff --git a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/converters/impl/AppVersionToAppDtoConverter.java b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/converters/impl/AppVersionToAppDtoConverter.java index 16d50e5359..466702b32f 100644 --- a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/converters/impl/AppVersionToAppDtoConverter.java +++ b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/converters/impl/AppVersionToAppDtoConverter.java @@ -23,6 +23,7 @@ import modelengine.fit.jober.aipp.util.JsonUtils; import modelengine.fitframework.annotation.Component; +import modelengine.fitframework.annotation.Value; import modelengine.fitframework.inspection.Validation; import modelengine.fitframework.util.ObjectUtils; @@ -47,6 +48,9 @@ public class AppVersionToAppDtoConverter implements EntityConverter { private static final String FORM_PROPERTY_GROUP_NULL = "null"; private final IconConverter iconConverter; + @Value("${app-engine.chat-path.format}") + private String chatPathFormat; + @Override public Class source() { return AppVersion.class; @@ -83,7 +87,7 @@ public AppBuilderAppDto convert(Object appVersion) { .configFormProperties(this.buildConfigFormProperties(s.getFormProperties())); Optional.ofNullable(s.getData().getPath()) .filter(path -> !path.isEmpty()) - .ifPresent(path -> appDtoBuilder.chatUrl(String.format("/chat/%s", path))); + .ifPresent(path -> appDtoBuilder.chatUrl(String.format(this.chatPathFormat, path))); return appDtoBuilder.build(); }).orElse(null); } diff --git a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/AppVersion.java b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/AppVersion.java index 112c38019b..6a25daefef 100644 --- a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/AppVersion.java +++ b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/AppVersion.java @@ -199,6 +199,7 @@ public class AppVersion { private final FlowDefinitionService flowDefinitionService; private final KnowledgeCenterService knowledgeCenterService; private final String resourcePath; + private final String chatPathFormat; AppVersion(AppBuilderAppPo data, Dependencies dependencies) { this.data = data; @@ -233,6 +234,7 @@ public class AppVersion { this.maxUserContextLen = dependencies.getMaxUserContextLen(); this.knowledgeCenterService = dependencies.getKnowledgeCenterService(); this.resourcePath = dependencies.getResourcePath(); + this.chatPathFormat = dependencies.getChatPathFormat(); } /** @@ -344,12 +346,17 @@ public void publish(PublishContext context) { // 判断版本是否已存在. this.validateVersion(context); + // 发布时候需要用到 path 字段,所以需要提前生成一个唯一的 path + if (StringUtils.isBlank(this.data.getPath())) { + this.data.setPath(this.generateUniquePath()); + } + // 发布. List publishers = new ArrayList<>(); publishers.add(new GraphPublisher(this.flowGraphRepository)); publishers.add(new FormProperyPublisher(this.formPropertyRepository)); publishers.add(new FlowPublisher(this.flowsService)); - publishers.add(new StorePublisher(this.appService, this.pluginService, this.toolService)); + publishers.add(new StorePublisher(this.appService, this.pluginService, this.toolService, this.chatPathFormat)); publishers.add(new TaskPublisher(this.appTaskService)); publishers.forEach(p -> p.publish(context, this)); @@ -364,9 +371,6 @@ public void publish(PublishContext context) { this.attributes.put(PUBLISH_UPDATE_DESCRIPTION_KEY, context.getPublishData().getPublishedDescription()); this.attributes.put(PUBLISH_UPDATE_LOG_KEY, context.getPublishData().getPublishedUpdateLog()); this.attributes.put(ATTR_APP_IS_UPDATE, true); - if (StringUtils.isBlank(this.data.getPath())) { - this.data.setPath(this.generateUniquePath()); - } this.appVersionRepository.update(this); } diff --git a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/AppVersionFactory.java b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/AppVersionFactory.java index 033e99db64..12ba222508 100644 --- a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/AppVersionFactory.java +++ b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/AppVersionFactory.java @@ -71,6 +71,7 @@ public class AppVersionFactory { private final KnowledgeCenterService knowledgeCenterService; private final String resourcePath; private final IconConverter iconConverter; + private final String chatPathFormat; public AppVersionFactory(AppBuilderFormPropertyRepository formPropertyRepository, AppTaskService appTaskService, AppBuilderConfigRepository configRepository, AppBuilderFormRepository formRepository, @@ -85,7 +86,7 @@ public AppVersionFactory(AppBuilderFormPropertyRepository formPropertyRepository @Value("${app-engine.question.max-length}") Integer maxQuestionLen, @Value("${app-engine.user-context.max-length}") Integer maxUserContextLen, KnowledgeCenterService knowledgeCenterService, @Value("${app-engine.resource.path}") String resourcePath, - IconConverter iconConverter) { + IconConverter iconConverter, @Value("${app-engine.chat-path.format}") String chatPathFormat) { this.formPropertyRepository = formPropertyRepository; this.appTaskService = appTaskService; this.configRepository = configRepository; @@ -112,6 +113,7 @@ public AppVersionFactory(AppBuilderFormPropertyRepository formPropertyRepository this.knowledgeCenterService = knowledgeCenterService; this.resourcePath = resourcePath; this.iconConverter = iconConverter; + this.chatPathFormat = chatPathFormat; } /** @@ -150,6 +152,7 @@ public AppVersion create(AppBuilderAppPo data, AppVersionRepository appVersionRe .knowledgeCenterService(this.knowledgeCenterService) .resourcePath(this.resourcePath) .iconConverter(this.iconConverter) + .chatPathFormat(this.chatPathFormat) .build()); } } diff --git a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/Dependencies.java b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/Dependencies.java index a93909efaa..9001b97be8 100644 --- a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/Dependencies.java +++ b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/Dependencies.java @@ -70,4 +70,5 @@ public class Dependencies { private KnowledgeCenterService knowledgeCenterService; private String resourcePath; private IconConverter iconConverter; + private String chatPathFormat; } diff --git a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/publish/StorePublisher.java b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/publish/StorePublisher.java index 117dbcddcf..352d917a93 100644 --- a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/publish/StorePublisher.java +++ b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/publish/StorePublisher.java @@ -44,6 +44,7 @@ public class StorePublisher implements Publisher { private final AppService appService; private final PluginService pluginService; private final ToolService toolService; + private final String chatPathFormat; @Override public void publish(PublishContext context, AppVersion appVersion) { @@ -101,6 +102,7 @@ private Map buildRunnables(PublishContext context, AppVersion ap .put("aippId", appVersion.getData().getAppSuiteId()) .put("version", context.getPublishData().getVersion()) .put("appCategory", context.getPublishData().getAppCategory()) + .put("chatPath", String.format(this.chatPathFormat, appVersion.getData().getPath())) .build(); runnablesMap.put("APP", app); return runnablesMap; diff --git a/app-builder/plugins/aipp-plugin/src/main/resources/application.yml b/app-builder/plugins/aipp-plugin/src/main/resources/application.yml index ec97107868..93d567af62 100644 --- a/app-builder/plugins/aipp-plugin/src/main/resources/application.yml +++ b/app-builder/plugins/aipp-plugin/src/main/resources/application.yml @@ -62,6 +62,8 @@ app-engine: max-length: 500 plugin: system-creator: 'system' + chat-path: + format: '/chat/%s' elsa: endpoint: elsaKey: diff --git a/app-builder/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/domains/appversion/AppVersionTest.java b/app-builder/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/domains/appversion/AppVersionTest.java index 278f128c05..07830b4832 100644 --- a/app-builder/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/domains/appversion/AppVersionTest.java +++ b/app-builder/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/domains/appversion/AppVersionTest.java @@ -205,7 +205,7 @@ public void setUp() { 300, this.knowledgeCenterService, "/var/share", - this.iconConverter); + this.iconConverter, "/chat/%s"); when(this.iconConverter.toFrontend(anyString())).thenReturn("/v1/api"); when(this.iconConverter.toStorage(anyString())).thenReturn("/v1/api"); } diff --git a/app-builder/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/service/AppBuilderAppServiceImplTest.java b/app-builder/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/service/AppBuilderAppServiceImplTest.java index b3bdb4c297..3a01464da8 100644 --- a/app-builder/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/service/AppBuilderAppServiceImplTest.java +++ b/app-builder/plugins/aipp-plugin/src/test/java/modelengine/fit/jober/aipp/service/AppBuilderAppServiceImplTest.java @@ -643,7 +643,7 @@ public static AppVersion mockAppVersion(AppBuilderAppPo appPo) { 300, null, "/var/share", - null); + null, "/chat/%s"); if (StringUtils.isBlank(appPo.getConfigId())) { appPo.setConfigId("defaultConfigId"); } From 04284a6de58c4e336ef546bd8c27af6935225511 Mon Sep 17 00:00:00 2001 From: wuayee Date: Wed, 29 Oct 2025 16:05:25 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[app-builder]=20=E5=BA=94=E7=94=A8=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E5=90=8E=EF=BC=8C=E5=BA=94=E7=94=A8=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E6=9C=89=E5=BA=94=E7=94=A8=E5=88=86=E7=B1=BB=E7=9A=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aipp/domains/appversion/publish/StorePublisher.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/publish/StorePublisher.java b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/publish/StorePublisher.java index 352d917a93..502a2b7e88 100644 --- a/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/publish/StorePublisher.java +++ b/app-builder/plugins/aipp-plugin/src/main/java/modelengine/fit/jober/aipp/domains/appversion/publish/StorePublisher.java @@ -6,6 +6,7 @@ package modelengine.fit.jober.aipp.domains.appversion.publish; +import modelengine.fitframework.util.StringUtils; import modelengine.jade.store.service.ToolService; import modelengine.fit.jane.task.util.Entities; import modelengine.fit.jober.WaterFlowService; @@ -29,6 +30,7 @@ import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -85,7 +87,12 @@ private AppPublishData buildItemData(PublishContext context, AppVersion appVersi itemData.setUniqueName(appVersion.getData().getUniqueName()); itemData.setSchema(ToolSchemaBuilder.create(context).build()); itemData.setSource(appCategory.getSource()); - itemData.setTags(Set.of(appCategory.getTag())); + Set tag = new HashSet<>(); + tag.add(appCategory.getTag()); + if (StringUtils.isNotBlank(appVersion.getClassification())) { + tag.add(appVersion.getClassification()); + } + itemData.setTags(tag); itemData.setRunnables(this.buildRunnables(context, appVersion)); itemData.setUserGroupId(context.getPublishData().getUserGroupId()); return itemData;