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