package com.mindant.generator.action.config; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.mindant.generator.engine.SimpleTemplateEngine; import com.mindant.generator.engine.base.GunsTemplateEngine; import com.mindant.generator.engine.config.ContextConfig; import com.mindant.generator.util.FileUtil; import java.io.File; import java.util.List; /** * 代码生成的抽象配置 */ public abstract class AbstractGeneratorConfig { /** * Java实体自定义模板(在/src/main/resources目录下,*建议:与Rest模板保持一致*) */ private static final String templateFilePath = "/gunsTemplate/advanced/entity.java.vm"; /** * mybatis-plus代码生成器配置 */ GlobalConfig globalConfig = new GlobalConfig(); DataSourceConfig dataSourceConfig = new DataSourceConfig(); StrategyConfig strategyConfig = new StrategyConfig(); PackageConfig packageConfig = new PackageConfig(); TableInfo tableInfo = null; /** * Guns代码生成器配置 */ ContextConfig contextConfig = new ContextConfig(); // SqlConfig sqlConfig = new SqlConfig(); protected abstract void config(); public void init() { config(); packageConfig.setService(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service"); packageConfig.setServiceImpl(contextConfig.getProPackage() + ".modular." + contextConfig.getModuleName() + ".service.impl"); //controller没用掉,生成之后会自动删掉 packageConfig.setController("TTT"); if (!contextConfig.getEntitySwitch()) { packageConfig.setEntity("TTT"); } if (!contextConfig.getDaoSwitch()) { packageConfig.setMapper("TTT"); packageConfig.setXml("TTT"); } if (!contextConfig.getServiceSwitch()) { packageConfig.setService("TTT"); packageConfig.setServiceImpl("TTT"); } } /** * 删除不必要的代码 */ public void destory() { String outputDir = globalConfig.getOutputDir() + "/TTT"; FileUtil.deleteDir(new File(outputDir)); } public AbstractGeneratorConfig() { } public void doMpGeneration() { init(); AutoGenerator autoGenerator = new AutoGenerator(); autoGenerator.setGlobalConfig(globalConfig); autoGenerator.setDataSource(dataSourceConfig); autoGenerator.setStrategy(strategyConfig); autoGenerator.setPackageInfo(packageConfig); // 自定义模板配置【如使用默认模板,则注释此段代码】 TemplateConfig tc = new TemplateConfig(); tc.setEntity(templateFilePath); tc.setMapper("/gunsTemplate/advanced/mapper.java.vm"); tc.setService("/gunsTemplate/advanced/service.java.vm"); tc.setServiceImpl("/gunsTemplate/advanced/serviceImpl.java.vm"); // 如上任何一个模块如果设置 空 OR Null 将不生成该模块。 autoGenerator.setTemplate(tc); autoGenerator.execute(); destory(); //获取table信息,用于guns代码生成 List tableInfoList = autoGenerator.getConfig().getTableInfoList(); if (tableInfoList != null && tableInfoList.size() > 0) { this.tableInfo = tableInfoList.get(0); } } public void doGunsGeneration() { GunsTemplateEngine GunsTemplateEngine = new SimpleTemplateEngine(); GunsTemplateEngine.setContextConfig(contextConfig); // sqlConfig.setConnection(dataSourceConfig.getConn()); // GunsTemplateEngine.setSqlConfig(sqlConfig); GunsTemplateEngine.setTableInfo(tableInfo); GunsTemplateEngine.start(); } }