From 31d24245d0fc6d0ad130bc128e1b0719feda319d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 29 五月 2025 11:42:03 +0800
Subject: [PATCH] 依赖修复

---
 ruoyi-admin/src/main/java/com/ruoyi/PlusCodeGenerator.java |  162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 162 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/PlusCodeGenerator.java b/ruoyi-admin/src/main/java/com/ruoyi/PlusCodeGenerator.java
new file mode 100644
index 0000000..196735f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/PlusCodeGenerator.java
@@ -0,0 +1,162 @@
+package com.ruoyi;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.OutputFile;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+import com.baomidou.mybatisplus.generator.fill.Column;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * MyBatis-Plus 浠g爜鐢熸垚鍣�
+ * 鍔熻兘锛氭牴鎹暟鎹簱琛ㄧ粨鏋勮嚜鍔ㄧ敓鎴怑ntity銆丮apper銆丼ervice銆丆ontroller绛変唬鐮�
+ * 淇锛氳В鍐矲reemarker妯℃澘涓璯enerateService鍙橀噺缂哄け鐨勯棶棰�
+ */
+@SpringBootApplication
+public class PlusCodeGenerator {
+
+    // 鏁版嵁搴撻厤缃�
+    private static final String DB_URL = "jdbc:postgresql://lunor.cn:5431/ruoyi-java";
+    private static final String DB_USERNAME = "test";
+    private static final String DB_PASSWORD = "chj123456";
+
+    // 椤圭洰鍩虹閰嶇疆
+    private static final String BASE_PACKAGE = "com.ruoyi";
+    private static final String MODULE_NAME = "basic"; // 妯″潡鍚�
+
+    public static void main(String[] args) {
+        String projectPath = System.getProperty("user.dir"); // 鑾峰彇椤圭洰鏍硅矾寰�
+        String path = "basic-server"; // 妯″潡鍚嶇О
+        String table = "test"; // 琛ㄥ悕锛屽涓〃閫楀彿闅斿紑
+
+        // 浠g爜杈撳嚭璺緞閰嶇疆
+        String outputBasePath = Paths.get(projectPath, path, "src", "main", "java").toString();
+        String outputResourcePath = Paths.get(projectPath, path, "src", "main", "resources", "mapper").toString();
+
+        // 浠g爜鐢熸垚鏍稿績閰嶇疆
+        FastAutoGenerator.create(DB_URL, DB_USERNAME, DB_PASSWORD)
+                .globalConfig(builder -> {
+                    builder.author("ruoyi") // 浣滆�呬俊鎭�
+                            .outputDir(outputBasePath) // 浠g爜杈撳嚭鐩綍
+                            .dateType(DateType.ONLY_DATE) // 鏃ユ湡绫诲瀷
+                            .commentDate("yyyy-MM-dd") // 娉ㄩ噴鏃ユ湡鏍煎紡
+                            .disableOpenDir(); // 绂佹鑷姩鎵撳紑杈撳嚭鐩綍
+                })
+                .packageConfig(builder -> {
+                    builder.parent(BASE_PACKAGE) // 鍩虹鍖呭悕
+                            .moduleName(MODULE_NAME) // 妯″潡鍚�
+                            .entity("entity") // Entity鍖呭悕
+                            .mapper("mapper") // Mapper鍖呭悕
+                            .service("service") // Service鍖呭悕
+                            .serviceImpl("service.impl") // Service瀹炵幇绫诲寘鍚�
+                            .controller("controller") // Controller鍖呭悕
+                            .pathInfo(Collections.singletonMap(
+                                    OutputFile.xml,
+                                    outputResourcePath // Mapper XML杈撳嚭璺緞
+                            ));
+                })
+                .strategyConfig(builder -> {
+                    builder.addInclude(table) // 瑕佺敓鎴愮殑琛ㄥ悕
+                            .addTablePrefix("t_", "sys_") // 杩囨护琛ㄥ墠缂�
+
+                            // 瀹炰綋绫婚厤缃�
+                            .entityBuilder()
+                            .superClass("com.ruoyi.common.core.domain.BaseEntity") // 缁ф壙鍩虹被
+                            .addSuperEntityColumns("create_by", "create_time", "update_by", "update_time") // 鎺掗櫎鍩虹被瀛楁
+                            .enableLombok() // 鍚敤Lombok
+                            .naming(NamingStrategy.underline_to_camel) // 琛ㄥ悕杞┘宄�
+                            .columnNaming(NamingStrategy.underline_to_camel) // 鍒楀悕杞┘宄�
+                            .enableFileOverride() // 鍏佽瑕嗙洊鏂囦欢
+                            .logicDeleteColumnName("deleted") // 閫昏緫鍒犻櫎瀛楁
+                            .addTableFills(
+                                    // 鑷姩濉厖閰嶇疆
+                                    new Column("create_by", FieldFill.INSERT), // 鍒涘缓浜猴紝鎻掑叆鏃跺~鍏�
+                                    new Column("update_by", FieldFill.INSERT_UPDATE), // 鏇存柊浜猴紝鎻掑叆鍜屾洿鏂版椂濉厖
+                                    new Column("create_time", FieldFill.INSERT), // 鍒涘缓鏃堕棿锛屾彃鍏ユ椂濉厖
+                                    new Column("update_time", FieldFill.INSERT_UPDATE) // 鏇存柊鏃堕棿锛屾彃鍏ュ拰鏇存柊鏃跺~鍏�
+                            )
+                            .idType(IdType.AUTO) // 涓婚敭绛栫暐
+                            .enableTableFieldAnnotation() // 鍚敤瀛楁娉ㄨВ
+
+                            // 鎺у埗鍣ㄩ厤缃�
+                            .controllerBuilder()
+                            .enableFileOverride() // 鍏佽瑕嗙洊
+                            .enableRestStyle() // 鐢熸垚RESTful椋庢牸鎺у埗鍣�
+
+                            // Service閰嶇疆
+                            .serviceBuilder()
+                            .formatServiceFileName("%sService") // Service鎺ュ彛鍛藉悕鏍煎紡
+                            .enableFileOverride() // 鍏佽瑕嗙洊
+                            .formatServiceImplFileName("%sServiceImpl") // Service瀹炵幇绫诲懡鍚嶆牸寮�
+                            .enableFileOverride() // 鍏佽瑕嗙洊
+
+                            // Mapper閰嶇疆
+                            .mapperBuilder()
+                            .enableFileOverride() // 鍏佽瑕嗙洊
+                            .enableMapperAnnotation() // 鍚敤@Mapper娉ㄨВ
+                            .enableBaseResultMap() // 鍚敤鍩虹ResultMap
+                            .enableBaseColumnList() // 鍚敤鍩虹ColumnList
+                            .formatMapperFileName("%sMapper") // Mapper鎺ュ彛鍛藉悕鏍煎紡
+                            .formatXmlFileName("%sMapper") // Mapper XML鍛藉悕鏍煎紡
+                            .enableFileOverride(); // 鍏佽瑕嗙洊
+                })
+                // 閰嶇疆鑷畾涔夋ā鏉�
+                .templateConfig(builder -> {
+                    builder
+                            .entity("/templates/entity.java") // 瀹炰綋绫绘ā鏉�
+                            .xml("/templates/mapper.xml") // Mapper XML妯℃澘
+                            .controller("/templates/controller.java") // 鎺у埗鍣ㄦā鏉�
+                            .serviceImpl("/templates/serviceImpl.java"); // Service瀹炵幇绫绘ā鏉�
+                })
+                // 娉ㄥ叆妯℃澘鍙橀噺
+                .injectionConfig(builder -> {
+                    Map<String, Object> customMap = new HashMap<>();
+                    customMap.put("superEntityColumns", Arrays.asList(
+                            "create_by", "create_time", "update_by", "update_time"
+                    )); // 鍩虹被瀛楁
+                    customMap.put("idType", "AUTO"); // 涓婚敭绫诲瀷
+                    customMap.put("superEntityClass", "com.ruoyi.common.core.domain.BaseEntity"); // 鍩虹被鍏ㄨ矾寰�
+                    customMap.put("author", "ruoyi"); // 浣滆�呬俊鎭�
+                    customMap.put("packageName", BASE_PACKAGE + "." + MODULE_NAME); // 鍖呭悕
+                    customMap.put("tableName", table); // 琛ㄥ悕
+
+                    // 鏂板锛氳В鍐矲reemarker妯℃澘涓璯enerateService鍙橀噺缂哄け鐨勯棶棰�
+                    // 鎺у埗Service瀹炵幇绫绘槸鍚﹀疄鐜癝ervice鎺ュ彛
+                    boolean generateService = true;
+                    customMap.put("generateService", generateService);
+
+                    builder.customMap(customMap);
+                })
+                .templateEngine(new FreemarkerTemplateEngine()) // 浣跨敤Freemarker妯℃澘寮曟搸
+                .execute(); // 鎵ц浠g爜鐢熸垚
+
+        // 鍚庡鐞嗭細淇瀹炰綋绫荤殑瀹屽叏闄愬畾鍚嶉棶棰�
+        try {
+            Path entityPath = Paths.get(outputBasePath, "com/ruoyi/basic/entity/Test.java");
+            if (Files.exists(entityPath)) {
+                String content = Files.readString(entityPath);
+                content = content.replace(
+                        "extends com.ruoyi.common.core.domain.BaseEntity",
+                        "extends BaseEntity"
+                ); // 绠�鍖栧熀绫诲紩鐢�
+                Files.writeString(entityPath, content);
+            }
+        } catch (IOException e) {
+            System.err.println("鈿狅笍 淇瀹炰綋绫诲け璐�: " + e.getMessage());
+        }
+
+        System.out.println("鉁� 浠g爜鐢熸垚瀹屾垚锛佹枃浠跺凡杈撳嚭鍒帮細" + outputBasePath);
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3