From 7b3aa92a33bac242a7908cd14a1add1c7831d45f Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Tue, 18 Jun 2024 19:05:49 +0800 Subject: [PATCH] =?UTF-8?q?perf(X-Pack):=20=E4=BC=98=E5=8C=96=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E5=8A=A0=E8=BD=BD=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- de-xpack | 2 +- .../xpack/component/XpackComponentApi.java | 2 +- .../dataease/api/xpack/plugin/PluginApi.java | 13 ++++++ .../api/xpack/plugin/dto/PluginEditor.java | 14 +++++++ .../constant/StaticResourceConstants.java | 1 + .../view/factory/PluginsChartFactory.java | 3 +- .../view/template/PluginsChartTemplate.java | 40 ++++++++----------- .../view}/vo/XpackPluginsViewVO.java | 2 +- sdk/extensions/pom.xml | 6 +++ 9 files changed, 56 insertions(+), 27 deletions(-) create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/xpack/plugin/dto/PluginEditor.java rename sdk/{api/api-base/src/main/java/io/dataease/api/xpack/component => extensions/extensions-view/src/main/java/io/dataease/extensions/view}/vo/XpackPluginsViewVO.java (91%) diff --git a/de-xpack b/de-xpack index 070ee75a6d..0bfb0e20ea 160000 --- a/de-xpack +++ b/de-xpack @@ -1 +1 @@ -Subproject commit 070ee75a6da1e59e8b021462fe0604cbc04b0f64 +Subproject commit 0bfb0e20ead5a4711cb54957003b63388067eb8b diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/component/XpackComponentApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/xpack/component/XpackComponentApi.java index 5f5efb74db..5dc026e1f3 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/component/XpackComponentApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/xpack/component/XpackComponentApi.java @@ -1,7 +1,7 @@ package io.dataease.api.xpack.component; import io.dataease.api.xpack.component.vo.XpackMenuVO; -import io.dataease.api.xpack.component.vo.XpackPluginsViewVO; +import io.dataease.extensions.view.vo.XpackPluginsViewVO; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/plugin/PluginApi.java b/sdk/api/api-base/src/main/java/io/dataease/api/xpack/plugin/PluginApi.java index d9637a1e3c..a38b10a368 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/plugin/PluginApi.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/xpack/plugin/PluginApi.java @@ -1,9 +1,14 @@ package io.dataease.api.xpack.plugin; import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.dataease.api.xpack.plugin.dto.PluginEditor; import io.dataease.api.xpack.plugin.vo.PluginVO; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -14,4 +19,12 @@ public interface PluginApi { @GetMapping("/query") List query(); + @PostMapping("/install") + void install(@RequestPart(value = "file") MultipartFile file); + + @PostMapping("/uninstall/{id}") + void uninstall(@PathVariable("id") String id); + + void update(@RequestPart("request") PluginEditor request, @RequestPart(value = "file") MultipartFile file); + } diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/plugin/dto/PluginEditor.java b/sdk/api/api-base/src/main/java/io/dataease/api/xpack/plugin/dto/PluginEditor.java new file mode 100644 index 0000000000..d04558efb3 --- /dev/null +++ b/sdk/api/api-base/src/main/java/io/dataease/api/xpack/plugin/dto/PluginEditor.java @@ -0,0 +1,14 @@ +package io.dataease.api.xpack.plugin.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +@Data +public class PluginEditor implements Serializable { + @Serial + private static final long serialVersionUID = -1793403914368070138L; + + private String id; +} diff --git a/sdk/common/src/main/java/io/dataease/constant/StaticResourceConstants.java b/sdk/common/src/main/java/io/dataease/constant/StaticResourceConstants.java index a1ca7d327e..50fa830cfe 100644 --- a/sdk/common/src/main/java/io/dataease/constant/StaticResourceConstants.java +++ b/sdk/common/src/main/java/io/dataease/constant/StaticResourceConstants.java @@ -19,6 +19,7 @@ public class StaticResourceConstants { public static String CUSTOM_MAP_DIR = ensureSuffix(USER_HOME, FILE_SEPARATOR) + "geo"; public static String APPEARANCE_DIR = ensureSuffix(USER_HOME, FILE_SEPARATOR) + "appearance"; public static String REPORT_DIR = ensureSuffix(USER_HOME, FILE_SEPARATOR) + "report"; + public static String PLUGIN_DIR = ensureSuffix(USER_HOME, FILE_SEPARATOR) + "plugin"; public static String MAP_URL = "/map"; public static String GEO_URL = "/geo"; diff --git a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/factory/PluginsChartFactory.java b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/factory/PluginsChartFactory.java index fce6afcaed..382036c3a7 100644 --- a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/factory/PluginsChartFactory.java +++ b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/factory/PluginsChartFactory.java @@ -1,6 +1,7 @@ package io.dataease.extensions.view.factory; import io.dataease.extensions.view.template.PluginsChartTemplate; +import io.dataease.extensions.view.vo.XpackPluginsViewVO; import java.util.List; import java.util.Map; @@ -21,7 +22,7 @@ public class PluginsChartFactory { templateMap.put(key, template); } - public static List getViewConfigList() { + public static List getViewConfigList() { return templateMap.values().stream().map(PluginsChartTemplate::getConfig).toList(); } diff --git a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/template/PluginsChartTemplate.java b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/template/PluginsChartTemplate.java index b2a6a28176..448ed34496 100644 --- a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/template/PluginsChartTemplate.java +++ b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/template/PluginsChartTemplate.java @@ -3,40 +3,34 @@ package io.dataease.extensions.view.template; import io.dataease.extensions.view.dto.ChartViewDTO; import io.dataease.extensions.view.dto.ChartViewFieldDTO; import io.dataease.extensions.view.dto.DatasetTableFieldDTO; +import io.dataease.extensions.view.factory.PluginsChartFactory; import io.dataease.extensions.view.model.SQLMeta; +import io.dataease.extensions.view.vo.XpackPluginsViewVO; +import io.dataease.license.utils.JsonUtil; +import io.dataease.plugins.template.DataEasePlugin; +import io.dataease.plugins.vo.DataEasePluginVO; import java.util.List; import java.util.Map; -public abstract class PluginsChartTemplate { +public abstract class PluginsChartTemplate implements DataEasePlugin { - public abstract String getConfig(); + @Override + public void loadPlugin() { + XpackPluginsViewVO viewConfig = getConfig(); + PluginsChartFactory.loadTemplate(viewConfig.getRender(), viewConfig.getCategory(), this); + } + public XpackPluginsViewVO getConfig() { + DataEasePluginVO pluginInfo = getPluginInfo(); + String config = pluginInfo.getConfig(); + return JsonUtil.parseObject(config, XpackPluginsViewVO.class); + } + public abstract Map> formatChartAxis(ChartViewDTO view); - /*public Map> formatChartAxis(ChartViewDTO view) { - Map> result = new HashMap<>(); - - List xAxisBase = new ArrayList<>(view.getXAxis()); - result.put("xAxisBase", xAxisBase); - List xAxis = new ArrayList<>(view.getXAxis()); - result.put("xAxis", xAxis); - List xAxisExt = new ArrayList<>(view.getXAxisExt()); - result.put("xAxisExt", xAxisExt); - List yAxis = new ArrayList<>(view.getYAxis()); - result.put("yAxis", yAxis); - List extStack = new ArrayList<>(view.getExtStack()); - result.put("extStack", extStack); - List extBubble = new ArrayList<>(view.getExtBubble()); - result.put("extBubble", extBubble); - List drill = new ArrayList<>(view.getDrillFields()); - result.put("drill", drill); - List viewFields = new ArrayList<>(view.getViewFields()); - result.put("viewFields", viewFields); - return result; - }*/ public abstract ChartViewDTO calcResult(SQLMeta sqlMeta, List xaxis, List yaxis, List allFields, boolean crossDs, Map dsTypeMap); diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/component/vo/XpackPluginsViewVO.java b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/vo/XpackPluginsViewVO.java similarity index 91% rename from sdk/api/api-base/src/main/java/io/dataease/api/xpack/component/vo/XpackPluginsViewVO.java rename to sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/vo/XpackPluginsViewVO.java index 8da2f16acd..96856520b6 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/xpack/component/vo/XpackPluginsViewVO.java +++ b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/vo/XpackPluginsViewVO.java @@ -1,4 +1,4 @@ -package io.dataease.api.xpack.component.vo; +package io.dataease.extensions.view.vo; import lombok.Data; diff --git a/sdk/extensions/pom.xml b/sdk/extensions/pom.xml index a56c714bc1..3360803ad8 100644 --- a/sdk/extensions/pom.xml +++ b/sdk/extensions/pom.xml @@ -27,6 +27,12 @@ com.fasterxml.jackson.core jackson-databind + + + io.dataease + dataease-license-sdk + ${project.version} + \ No newline at end of file