diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ae0bae..35e97e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,16 +3,20 @@ ```markdown 格式: ## [版本号] - 日期 - ### 模块名称 - - 🎈新增 - - 🐞修复 - - 📝文档 - - 🚀性能 - - 🎨样式 - - 🧹重构 - - 🧪测试 - - 🚧工作中(勿动) - ...... + ### 模板名称 (可选 console-ui, console, FileModule, common, ...) + - 🎈新增: {模块名称} {功能介绍} + - 🐞Bug: #{issue号} {bug描述} + - ⛏修复: #{issue号} {修复描述} + - 📝文档: {文件名} 添加注释 + - 🚀性能: {类} {方法} {描述} + - 🎨样式: + - 🧹重构: + - 🧪测试: {类|方法} {测试结果} + - 🛑更名: {旧名} ➡ {新名} + - ❌移除: {模块|方法} + + ------ + ``` ## [V 1.0.0] - 2023.4.20 ### console-ui @@ -23,7 +27,7 @@ - 🎈新增: 新增 `FileUtil` 工具类,用于进行文件复制文件删除等操作 - 🎈新增: 新增 `FileCondition` 方法,用于对文件递归删除进行条件过滤 - 🎈新增: 新增 `ModuleConfigSrcInit` 初始化模块,用于初始化各个模块的配置文件夹,以及模块配置文件路径管理 -- 🎈新增: 新增 `ModuleConfigSrc` 模块配置类 +- 🎈新增: 新增 `ModuleConfigSrc` 存放文件src路径 - 🧪测试: 测试 `FileUtil` 工具类, 测试 `JsonFileUtil` 工具类 ### console @@ -32,5 +36,15 @@ ### 🎈新增 common 模块 - 🎈新增: 新增 `InitMachine` 初始化机器接口,为所有模块初始化类提供统一接口 +------ +## [V 1.0.1] - 2023.4.21 +### common +- 🎈新增: 新增 `ConstPool` 常量池,用于存放常量,目前存放了模块名称常量,便于开发统一 +- 🎈新增: 新增 `ConfigFile` 配置文件类,用于存放配置文件路径, 包装配置文件,目前配置文件主要内容为data,新增更新时间 +### FileModule +- 🛑更名:`ModuleConfigSrcInit` ➡ `ModuleSrcConfigInit` +- 🛑更名:`ModuleConfigSrc` ➡ `ModuleSrcConfig` +- 🧹重构: 重构 `ModuleSrcConfig` 现在作为某块路径的配置文件类,负责管理模块的配置文件路径 +- ❌移除: 移除 `ModuleSrcConfigInit` 模块配置文件路径管理功能,只负责**初始化** diff --git a/FileModule/src/main/java/org/example/bean/ModuleConfigSrc.java b/FileModule/src/main/java/org/example/bean/ModuleConfigSrc.java deleted file mode 100644 index 72df930..0000000 --- a/FileModule/src/main/java/org/example/bean/ModuleConfigSrc.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.example.bean; - -import lombok.AllArgsConstructor; -import lombok.Data; - -/** - * @author Genius - * @date 2023/04/20 19:29 - **/ - -@Data -@AllArgsConstructor -public class ModuleConfigSrc { - private String src; -} diff --git a/FileModule/src/main/java/org/example/bean/ModuleSrcConfigFile.java b/FileModule/src/main/java/org/example/bean/ModuleSrcConfigFile.java new file mode 100644 index 0000000..0dec81b --- /dev/null +++ b/FileModule/src/main/java/org/example/bean/ModuleSrcConfigFile.java @@ -0,0 +1,51 @@ +package org.example.bean; + +import org.example.common.ConfigFile; +import org.example.constpool.ConstPool; + +import java.util.Map; + +/** + * @author Genius + * @date 2023/04/20 19:29 + **/ + + +public class ModuleSrcConfigFile extends ConfigFile> { + + private static final Map config; + + public static class SRC{ + private String src; + public SRC(String src) { + this.src = src; + } + + public String getSrc() { + return src; + } + } + + static{ + config = Map.of( + ConstPool.ACCOUNT, new SRC("./config/"+ConstPool.ACCOUNT), + ConstPool.SECTION, new SRC("./config/"+ConstPool.SECTION), + ConstPool.BARRAGE, new SRC("./config/"+ConstPool.BARRAGE), + ConstPool.CREEPER, new SRC("./config/"+ConstPool.CREEPER), + ConstPool.SECTION_WORK, new SRC("./config/"+ConstPool.SECTION_WORK), + ConstPool.HOT, new SRC("./config/"+ConstPool.HOT), + ConstPool.PUBLISH, new SRC("./config/"+ConstPool.PUBLISH) + ); + } + + + public ModuleSrcConfigFile() { + super("./config" + , "moduleConfig.json" + , config); + } + + public Map packageConfig() { + return super.packageConfig(); + } +} diff --git a/FileModule/src/main/java/org/example/init/ModuleConfigSrcInit.java b/FileModule/src/main/java/org/example/init/ModuleConfigSrcInit.java deleted file mode 100644 index bef80f5..0000000 --- a/FileModule/src/main/java/org/example/init/ModuleConfigSrcInit.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.example.init; - -import org.example.bean.ModuleConfigSrc; -import org.example.util.FileUtil; -import org.example.util.JsonFileUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Map; -import java.util.Objects; - -/** - * @author Genius - * @date 2023/04/20 18:34 - **/ - -public class ModuleConfigSrcInit implements InitMachine { - - private Logger logger = LoggerFactory.getLogger(ModuleConfigSrcInit.class); - private static final Map config; - - static{ - config = Map.of( - "account", new ModuleConfigSrc("./config/account"), - "section", new ModuleConfigSrc("./config/section"), - "barrage", new ModuleConfigSrc("./config/barrage"), - "creeper", new ModuleConfigSrc("./config/creeper"), - "videowork", new ModuleConfigSrc("./config/videowork"), - "hot", new ModuleConfigSrc("./config/hot"), - "publish", new ModuleConfigSrc("./config/publish") - ); - } - - private static final String CONFIG_SRC = "./config"; - private static final String CONFIG_SRC_FILE = "moduleConfig.json"; - - // 初始化每个模块的配置文件夹 - @Override - public boolean init() { - Path dir = Paths.get(CONFIG_SRC); - if (!createConfigDirectory(dir)) { - return false; - } - if (!createConfigFile(dir)) { - return false; - } - if (!createModuleDirectory()) { - return false; - } - return true; - } - - private boolean createConfigDirectory(Path dir) { - try { - if (!Files.exists(dir)) { - Files.createDirectory(dir); - logger.info("创建 config 文件夹成功 √ "); - } - }catch (Exception e) { - logger.error("创建配置文件夹失败"); - return false; - } - return true; - } - - private boolean createConfigFile(Path dir) { - Path path = Paths.get(dir.toString(), CONFIG_SRC_FILE); - try { - if (!Files.exists(path)) { - JsonFileUtil.writeJsonFile(path.toString(),config); - logger.info("创建 {} 配置文件成功 √",CONFIG_SRC_FILE); - } - }catch (Exception e) { - logger.error("创建配置文件失败"); - return false; - } - return true; - } - - private boolean createModuleDirectory() { - for (Map.Entry stringModuleConfigSrcEntry : config.entrySet()) { - ModuleConfigSrc moduleConfigSrc = stringModuleConfigSrcEntry.getValue(); - try { - if (!FileUtil.isFileExist(moduleConfigSrc.getSrc())) { - Files.createDirectory(Path.of(moduleConfigSrc.getSrc())); - logger.info("创建 {} 模块文件夹成功 √ ",moduleConfigSrc.getSrc()); - } - }catch (Exception e) { - logger.error("创建 {} 模块文件夹失败 ×",moduleConfigSrc.getSrc()); - return false; - } - } - return true; - } -} diff --git a/FileModule/src/main/java/org/example/init/ModuleSrcConfigFileInit.java b/FileModule/src/main/java/org/example/init/ModuleSrcConfigFileInit.java new file mode 100644 index 0000000..acb5ece --- /dev/null +++ b/FileModule/src/main/java/org/example/init/ModuleSrcConfigFileInit.java @@ -0,0 +1,89 @@ +package org.example.init; + +import org.example.bean.ModuleSrcConfigFile; +import org.example.util.FileUtil; +import org.example.util.JsonFileUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Map; + +/** + * @author Genius + * @date 2023/04/20 18:34 + **/ + +public class ModuleSrcConfigFileInit implements InitMachine { + + private Logger logger = LoggerFactory.getLogger(ModuleSrcConfigFileInit.class); + + ModuleSrcConfigFile moduleSrcConfigFile; + public ModuleSrcConfigFileInit() { + moduleSrcConfigFile = new ModuleSrcConfigFile(); + } + @Override + public boolean init() { + Path dir = Paths.get(moduleSrcConfigFile.getFilePath()); + if (!createConfigDirectory(dir)) { + return false; + } + if (!createConfigFile(dir)) { + return false; + } + if (!createModuleDirectory()) { + return false; + } + return true; + } + + private boolean createConfigDirectory(Path dir) { + try { + if (!Files.exists(dir)) { + Files.createDirectory(dir); + logger.info("创建 config 文件夹成功 √ "); + } + }catch (Exception e) { + logger.error("创建配置文件夹失败"); + return false; + } + return true; + } + + private boolean createConfigFile(Path dir) { + Path path = Paths.get(dir.toString(), moduleSrcConfigFile.getFileName()); + try { + if (!Files.exists(path)) { + JsonFileUtil.writeJsonFile(path.toString(),moduleSrcConfigFile.packageConfig()); + logger.info("创建 {} 配置文件成功 √",moduleSrcConfigFile.getFileName()); + } + }catch (Exception e) { + logger.error("创建配置文件失败"); + return false; + } + return true; + } + + private boolean createModuleDirectory() { + + Map moduleSrcConfigFileMap + = (Map) moduleSrcConfigFile.packageConfig().get("data"); + + for (Map.Entry stringModuleConfigSrcEntry : moduleSrcConfigFileMap.entrySet()) { + + ModuleSrcConfigFile.SRC src = stringModuleConfigSrcEntry.getValue(); + try { + if (!FileUtil.isFileExist(src.getSrc())) { + Files.createDirectory(Path.of(src.getSrc())); + logger.info("创建 {} 模块文件夹成功 √ ",src.getSrc()); + } + }catch (Exception e) { + logger.error("创建 {} 模块文件夹失败 ×",src.getSrc()); + return false; + } + } + return true; + } +} diff --git a/FileModule/src/main/resources/student2.json b/FileModule/src/main/resources/student2.json index c4be758..5d5bcbe 100644 --- a/FileModule/src/main/resources/student2.json +++ b/FileModule/src/main/resources/student2.json @@ -1 +1,18 @@ -[{"age":18,"hobby":["Coding","Reading","Playing"],"info":{"QQ":"123456789","WeChat":"987654321"},"major":"CS","name":"Genius","school":"HUST"}] \ No newline at end of file +{ + "hello":"11234", + "Student":{ + "age":18, + "hobby":[ + "Coding", + "Reading", + "Playing" + ], + "info":{ + "QQ":"123456789", + "WeChat":"987654321" + }, + "major":"CS", + "name":"Genius", + "school":"HUST" + } +} \ No newline at end of file diff --git a/FileModule/src/test/java/org/example/util/JsonFileUtilTest.java b/FileModule/src/test/java/org/example/util/JsonFileUtilTest.java index 3e5685c..dfef6a2 100644 --- a/FileModule/src/test/java/org/example/util/JsonFileUtilTest.java +++ b/FileModule/src/test/java/org/example/util/JsonFileUtilTest.java @@ -22,6 +22,26 @@ import java.util.Map; public class JsonFileUtilTest { + @Test + public void writeMapObj() throws IOException { + Student student = new Student( + "Genius", + 18, + "HUST", + "CS", + List.of("Coding", "Reading", "Playing"), + Map.of("QQ", "123456789", "WeChat", "987654321") + ); + JsonFileUtil.writeJsonFile("E:\\Project\\ChopperBot\\FileModule\\src\\main\\resources\\student2.json", + Map.of("Student", student,"hello","11234")); + Map stringObjectMap = JsonFileUtil.readJsonFile("E:\\Project\\ChopperBot\\FileModule\\src\\main\\resources\\student2.json"); + stringObjectMap.forEach( + (k,v)->{ + System.out.println(k); + System.out.println(v.getClass()); + } + ); + } @Test @@ -64,4 +84,5 @@ public class JsonFileUtilTest { JsonFileUtil.writeBigJsonFile(dir.toString(),maps); } + } diff --git a/FileModule/target/classes/org/example/bean/ModuleConfigSrc.class b/FileModule/target/classes/org/example/bean/ModuleConfigSrc.class deleted file mode 100644 index 38e1a24..0000000 Binary files a/FileModule/target/classes/org/example/bean/ModuleConfigSrc.class and /dev/null differ diff --git a/FileModule/target/classes/org/example/init/ModuleConfigSrcInit.class b/FileModule/target/classes/org/example/init/ModuleConfigSrcInit.class deleted file mode 100644 index 593c22d..0000000 Binary files a/FileModule/target/classes/org/example/init/ModuleConfigSrcInit.class and /dev/null differ diff --git a/FileModule/target/classes/student2.json b/FileModule/target/classes/student2.json index c4be758..5d5bcbe 100644 --- a/FileModule/target/classes/student2.json +++ b/FileModule/target/classes/student2.json @@ -1 +1,18 @@ -[{"age":18,"hobby":["Coding","Reading","Playing"],"info":{"QQ":"123456789","WeChat":"987654321"},"major":"CS","name":"Genius","school":"HUST"}] \ No newline at end of file +{ + "hello":"11234", + "Student":{ + "age":18, + "hobby":[ + "Coding", + "Reading", + "Playing" + ], + "info":{ + "QQ":"123456789", + "WeChat":"987654321" + }, + "major":"CS", + "name":"Genius", + "school":"HUST" + } +} \ No newline at end of file diff --git a/FileModule/target/test-classes/org/example/util/JsonFileUtilTest.class b/FileModule/target/test-classes/org/example/util/JsonFileUtilTest.class index 46f933c..a9384e8 100644 Binary files a/FileModule/target/test-classes/org/example/util/JsonFileUtilTest.class and b/FileModule/target/test-classes/org/example/util/JsonFileUtilTest.class differ diff --git a/common/src/main/java/org/example/common/ConfigFile.java b/common/src/main/java/org/example/common/ConfigFile.java new file mode 100644 index 0000000..78fa6c4 --- /dev/null +++ b/common/src/main/java/org/example/common/ConfigFile.java @@ -0,0 +1,52 @@ +package org.example.common; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Map; + +/** + * @author Genius + * @date 2023/04/21 02:24 + **/ + +//配置文件的抽象类 +public abstract class ConfigFile { + + private String filePath; + private String fileName; + + private T data; + + /** + * 用于打包配置文件 + */ + public Map packageConfig() { + + + return Map.of( + "data",data, + "updateTime", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + ); + } + + public ConfigFile() { + } + + public ConfigFile(String filePath, String fileName, T data) { + this.filePath = filePath; + this.fileName = fileName; + this.data = data; + } + + public String getFilePath() { + return filePath; + } + + public String getFileName() { + return fileName; + } + + protected T getData() { + return data; + } +} diff --git a/common/src/main/java/org/example/constpool/ConstPool.java b/common/src/main/java/org/example/constpool/ConstPool.java new file mode 100644 index 0000000..cf5b12a --- /dev/null +++ b/common/src/main/java/org/example/constpool/ConstPool.java @@ -0,0 +1,20 @@ +package org.example.constpool; + +/** + * @author Genius + * @date 2023/04/21 03:03 + **/ +//常量池 +public class ConstPool { + + /**模块名**/ + public static final String ACCOUNT = "account"; + public static final String SECTION = "section"; + public static final String BARRAGE = "barrage"; + public static final String CREEPER = "creeper"; + public static final String SECTION_WORK = "sectionwork"; + public static final String HOT = "hot"; + public static final String PUBLISH = "publish"; + + +} diff --git a/config/moduleConfig.json b/config/moduleConfig.json deleted file mode 100644 index 776ae56..0000000 --- a/config/moduleConfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "account":{ - "src":"./config/account" - }, - "section":{ - "src":"./config/section" - }, - "hot":{ - "src":"./config/hot" - }, - "publish":{ - "src":"./config/publish" - }, - "creeper":{ - "src":"./config/creeper" - }, - "barrage":{ - "src":"./config/barrage" - }, - "videowork":{ - "src":"./config/videowork" - } -} \ No newline at end of file diff --git a/console/src/main/java/org/example/ConsoleApplication.java b/console/src/main/java/org/example/ConsoleApplication.java index 44b4e04..996e45d 100644 --- a/console/src/main/java/org/example/ConsoleApplication.java +++ b/console/src/main/java/org/example/ConsoleApplication.java @@ -2,7 +2,7 @@ package org.example; import org.example.init.InitWorld; -import org.example.init.ModuleConfigSrcInit; +import org.example.init.ModuleSrcConfigFileInit; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -19,7 +19,7 @@ public class ConsoleApplication { public static void main(String[] args) { if (InitWorld.getInstance() - .setInitMachines(List.of(new ModuleConfigSrcInit())) + .setInitMachines(List.of(new ModuleSrcConfigFileInit())) .start()) { SpringApplication.run(ConsoleApplication.class, args); }