From 7d6bbc82a4827f54fa741ba6a60ed25721bb3db9 Mon Sep 17 00:00:00 2001 From: linrf Date: Mon, 7 Aug 2023 15:58:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E9=87=87=E9=9B=86=E5=99=A8?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.properties | 4 +- .../common/LoadPackageCommandLineRunner.java | 66 ++++++++++++++++++- .../SchCollectorConfigApi.java | 2 + 3 files changed, 68 insertions(+), 4 deletions(-) diff --git a/collector-scheduling-management/src/main/resources/application.properties b/collector-scheduling-management/src/main/resources/application.properties index 63a543c..bde7d71 100644 --- a/collector-scheduling-management/src/main/resources/application.properties +++ b/collector-scheduling-management/src/main/resources/application.properties @@ -3,7 +3,7 @@ api.base-package=com.docus.server spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://db.docus.cn:3306/docus-collector-scheduling?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai -spring.datasource.username=root -spring.datasource.password=root +spring.datasource.username=docus +spring.datasource.password=docus702 mybatis-plus.type-enums-package=com.docus.server.enums diff --git a/collector-terminal-management/src/main/java/com/docus/server/common/LoadPackageCommandLineRunner.java b/collector-terminal-management/src/main/java/com/docus/server/common/LoadPackageCommandLineRunner.java index bcde6fd..c368992 100644 --- a/collector-terminal-management/src/main/java/com/docus/server/common/LoadPackageCommandLineRunner.java +++ b/collector-terminal-management/src/main/java/com/docus/server/common/LoadPackageCommandLineRunner.java @@ -9,7 +9,9 @@ import com.docus.core.util.json.JSON; import com.docus.server.api.scheduling.management.SchCollectorApi; import com.docus.server.api.scheduling.management.SchCollectorConfigApi; import com.docus.server.common.download.downLoader.HttpDownloader; +import com.docus.server.enums.ConfigTypeEnum; import com.docus.server.vo.scheduling.management.schcollector.LoadSchCollectorVO; +import com.docus.server.vo.scheduling.management.schcollectorconfig.SchCollectorConfigVO; import com.fasterxml.jackson.core.type.TypeReference; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -19,10 +21,14 @@ import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.io.File; +import java.io.FileWriter; +import java.io.PrintWriter; import java.util.List; import java.util.Map; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import java.util.stream.Collectors; /** * load collector package and config @@ -37,6 +43,7 @@ public class LoadPackageCommandLineRunner implements CommandLineRunner { @Value("${docus.collector-package-download-savePath:H://packages/}") private String saveCollectorPackagePath; + @Value("${docus.collector-package-download-url}") private String collectorPackageDownloadUrl; @@ -50,14 +57,69 @@ public class LoadPackageCommandLineRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { - loadPackages(); +// loadPackages(); loadConfig(); } private void loadConfig() { - schCollectorConfigApi.findAll(); + List schCollectorConfigVOList = schCollectorConfigApi.findAll(); + + List publicConfig = schCollectorConfigVOList + .stream() + .filter(p -> ConfigTypeEnum.PUBLIC_CONFIG.equals(p.getConfigType())) + .collect(Collectors.toList()); + + List privateConfig = schCollectorConfigVOList + .stream() + .filter(p -> ConfigTypeEnum.PRIVATE_CONFIG.equals(p.getConfigType())) + .collect(Collectors.toList()); + + Map> privateConfigMap = ListUtils.groupBy(privateConfig, SchCollectorConfigVO::getCollectorId); + + + Map publicConfigMap = JSON.fromJSONWithGeneric(publicConfig.get(0).getConfigJson(), new TypeReference>() { + }); + + privateConfigMap.forEach((key, value) -> { + try { + if (Func.isNotEmpty(value)) { + + SchCollectorConfigVO schCollectorConfigVO = value.get(0); + + String privateConfigJson = schCollectorConfigVO.getConfigJson(); + + Map privateConfigJsonMap = JSON.fromJSONWithGeneric(privateConfigJson, new TypeReference>() { + }); + + privateConfigJsonMap.putAll(publicConfigMap); + + File file = new File(saveCollectorPackagePath + schCollectorConfigVO.getCollectorId() + "\\collector.json"); + if (file.exists()) { + + FileWriter fileWriter = new FileWriter(file); + fileWriter.write(""); + fileWriter.flush(); + fileWriter.close(); + + log.info("文件已经存在"); + + } else { + + boolean result = file.createNewFile(); + log.info("创建新文件是否成功:" + result + ",文件路径为:" + file.getPath()); + } + + PrintWriter writer = new PrintWriter(file, "UTF-8"); + writer.println(JSON.toJSON(privateConfigJsonMap)); + writer.flush(); + writer.close(); + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + }); } private void loadPackages() throws Exception { diff --git a/docus-client-interface/src/main/java/com/docus/server/api/scheduling.management/SchCollectorConfigApi.java b/docus-client-interface/src/main/java/com/docus/server/api/scheduling.management/SchCollectorConfigApi.java index 7309eac..fdd8596 100644 --- a/docus-client-interface/src/main/java/com/docus/server/api/scheduling.management/SchCollectorConfigApi.java +++ b/docus-client-interface/src/main/java/com/docus/server/api/scheduling.management/SchCollectorConfigApi.java @@ -46,6 +46,8 @@ public interface SchCollectorConfigApi { * * @return SchCollectorConfigVO 配置 */ + @ApiOperation("查询所有") + @GetMapping("/findAll") List findAll(); /**