|
|
@ -19,6 +19,7 @@ import java.sql.Connection;
|
|
|
|
import java.sql.DriverManager;
|
|
|
|
import java.sql.DriverManager;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
import java.sql.Statement;
|
|
|
|
import java.sql.Statement;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.concurrent.Callable;
|
|
|
|
import java.util.concurrent.Callable;
|
|
|
@ -26,17 +27,13 @@ import java.util.concurrent.Callable;
|
|
|
|
public class SpringBootCallable implements Callable {
|
|
|
|
public class SpringBootCallable implements Callable {
|
|
|
|
|
|
|
|
|
|
|
|
private String root;
|
|
|
|
private String root;
|
|
|
|
private DataBase dataBase;
|
|
|
|
|
|
|
|
private Project project;
|
|
|
|
private Project project;
|
|
|
|
private boolean cloud;
|
|
|
|
|
|
|
|
private AbstractDBmapper dBmapper;
|
|
|
|
private AbstractDBmapper dBmapper;
|
|
|
|
private FreeMarkerManager freeMarkerManager;
|
|
|
|
private FreeMarkerManager freeMarkerManager;
|
|
|
|
|
|
|
|
|
|
|
|
public SpringBootCallable(Project project, String root) {
|
|
|
|
public SpringBootCallable(Project project, String root) {
|
|
|
|
this.root = root;
|
|
|
|
this.root = root;
|
|
|
|
this.dataBase = DataBase.valueOf(project.getDatabase());
|
|
|
|
|
|
|
|
this.project = project;
|
|
|
|
this.project = project;
|
|
|
|
this.cloud = project.isCloud();
|
|
|
|
|
|
|
|
this.freeMarkerManager = ManagerFactory.getFreeMarkerManager();
|
|
|
|
this.freeMarkerManager = ManagerFactory.getFreeMarkerManager();
|
|
|
|
this.dBmapper = ProjectManager.dBmapper;
|
|
|
|
this.dBmapper = ProjectManager.dBmapper;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -66,17 +63,17 @@ public class SpringBootCallable implements Callable {
|
|
|
|
File testResourcesDir = Tool.createPath(projectDir.getAbsolutePath(), "src", "test", "resources");
|
|
|
|
File testResourcesDir = Tool.createPath(projectDir.getAbsolutePath(), "src", "test", "resources");
|
|
|
|
|
|
|
|
|
|
|
|
// 生成POM
|
|
|
|
// 生成POM
|
|
|
|
generatePom(projectDir, project, dataBase);
|
|
|
|
generatePom(projectDir, project);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{//生成java文件
|
|
|
|
{//生成java文件
|
|
|
|
//生成 Controller
|
|
|
|
//生成 Controller
|
|
|
|
System.out.println("生成模块:action");
|
|
|
|
System.out.println("生成模块:action");
|
|
|
|
generateController(Tool.createPath(domainDir.getAbsolutePath(), "action"), project, dataBase);
|
|
|
|
generateController(Tool.createPath(domainDir.getAbsolutePath(), "action"), project);
|
|
|
|
|
|
|
|
|
|
|
|
// 生成 Config
|
|
|
|
// 生成 Config
|
|
|
|
System.out.println("生成模块:config");
|
|
|
|
System.out.println("生成模块:config");
|
|
|
|
generateConfig(Tool.createPath(domainDir.getAbsolutePath(), "config"), project, dataBase);
|
|
|
|
generateConfig(Tool.createPath(domainDir.getAbsolutePath(), "config"), project);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{// 模块
|
|
|
|
{// 模块
|
|
|
@ -88,58 +85,58 @@ public class SpringBootCallable implements Callable {
|
|
|
|
File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", module.getModuleName());
|
|
|
|
File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", module.getModuleName());
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println("生成模块:Entity");
|
|
|
|
System.out.println("生成模块:Entity");
|
|
|
|
generateEntity(Tool.createPath(moduleDir.getAbsolutePath(), "ent"), module, dataBase);
|
|
|
|
generateEntity(Tool.createPath(moduleDir.getAbsolutePath(), "ent"), module);
|
|
|
|
System.out.println("生成模块:Mapper");
|
|
|
|
System.out.println("生成模块:Mapper");
|
|
|
|
generateMapper(Tool.createPath(moduleDir.getAbsolutePath(), "mpr"), module, dataBase);
|
|
|
|
generateMapper(Tool.createPath(moduleDir.getAbsolutePath(), "mpr"), module);
|
|
|
|
System.out.println("生成模块:Manager");
|
|
|
|
System.out.println("生成模块:Manager");
|
|
|
|
generateManager(Tool.createPath(moduleDir.getAbsolutePath(), "mgr"), module, dataBase);
|
|
|
|
generateManager(Tool.createPath(moduleDir.getAbsolutePath(), "mgr"), module);
|
|
|
|
System.out.println("生成模块:Request");
|
|
|
|
System.out.println("生成模块:Request");
|
|
|
|
generateRequest(Tool.createPath(moduleDir.getAbsolutePath(), "req"), module, dataBase);
|
|
|
|
generateRequest(Tool.createPath(moduleDir.getAbsolutePath(), "req"), module);
|
|
|
|
System.out.println("生成模块:Response");
|
|
|
|
System.out.println("生成模块:Response");
|
|
|
|
generateResponse(Tool.createPath(moduleDir.getAbsolutePath(), "rsp"), module, dataBase);
|
|
|
|
generateResponse(Tool.createPath(moduleDir.getAbsolutePath(), "rsp"), module);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (project.getSysMD()) {//生成系统模块
|
|
|
|
if (project.isNeedSys()) {//生成系统模块
|
|
|
|
Module module = new Module();
|
|
|
|
Module module = new Module();
|
|
|
|
module.setModuleName("system");
|
|
|
|
module.setModuleName("system");
|
|
|
|
module.setProjectAuthor(project.getProjectAuthor());
|
|
|
|
module.setProjectAuthor(project.getProjectAuthor());
|
|
|
|
module.setProjectBasePackage(project.getProjectBasePackage());
|
|
|
|
module.setProjectBasePackage(project.getProjectBasePackage());
|
|
|
|
module.setProjectName(project.getProjectName());
|
|
|
|
module.setProjectName(project.getProjectName());
|
|
|
|
File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", "system");
|
|
|
|
File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", "system");
|
|
|
|
generateSystemModule(moduleDir, module, dataBase);
|
|
|
|
generateSystemModule(moduleDir, module);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// frame等内容
|
|
|
|
// frame等内容
|
|
|
|
System.out.println("生成模块:frame");
|
|
|
|
System.out.println("生成模块:frame");
|
|
|
|
generateFrame(Tool.createPath(domainDir.getAbsolutePath(), "frame"), project, dataBase);
|
|
|
|
generateFrame(Tool.createPath(domainDir.getAbsolutePath(), "frame"), project);
|
|
|
|
|
|
|
|
|
|
|
|
// Task
|
|
|
|
// Task
|
|
|
|
System.out.println("生成模块:task");
|
|
|
|
System.out.println("生成模块:task");
|
|
|
|
generateTask(Tool.createPath(domainDir.getAbsolutePath(), "task"), project, dataBase);
|
|
|
|
generateTask(Tool.createPath(domainDir.getAbsolutePath(), "task"), project);
|
|
|
|
|
|
|
|
|
|
|
|
// Application
|
|
|
|
// Application
|
|
|
|
System.out.println("生成模块:Application");
|
|
|
|
System.out.println("生成模块:Application");
|
|
|
|
generateApplication(Tool.createPath(domainDir.getAbsolutePath()), project, dataBase);
|
|
|
|
generateApplication(Tool.createPath(domainDir.getAbsolutePath()), project);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{//生成resources文件
|
|
|
|
{//生成resources文件
|
|
|
|
System.out.println("生成模块:Resources");
|
|
|
|
System.out.println("生成模块:Resources");
|
|
|
|
generateResources(resourcesDir, project, dataBase);
|
|
|
|
generateResources(resourcesDir, project);
|
|
|
|
System.out.println("生成模块:Static");
|
|
|
|
System.out.println("生成模块:Static");
|
|
|
|
generateStatic(resourcesDir, project, dataBase);
|
|
|
|
generateStatic(resourcesDir, project);
|
|
|
|
System.out.println("生成模块:Templates");
|
|
|
|
System.out.println("生成模块:Templates");
|
|
|
|
generateTemplates(resourcesDir, project, dataBase);
|
|
|
|
generateTemplates(resourcesDir, project);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{//生成Test
|
|
|
|
{//生成Test
|
|
|
|
System.out.println("生成模块:Test");
|
|
|
|
System.out.println("生成模块:Test");
|
|
|
|
generateTest(testDomainDir, project, dataBase);
|
|
|
|
generateTest(testDomainDir, project);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{//生成Test Resources
|
|
|
|
{//生成Test Resources
|
|
|
|
System.out.println("生成模块:Test Resources");
|
|
|
|
System.out.println("生成模块:Test Resources");
|
|
|
|
generateTestResources(testResourcesDir, project, dataBase);
|
|
|
|
generateTestResources(testResourcesDir, project);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
System.out.println("finish");
|
|
|
|
System.out.println("finish");
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
@ -152,12 +149,12 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param project
|
|
|
|
* @param project
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generatePom(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generatePom(File root, Project project) {
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
ctx.put("projectName", project.getProjectName());
|
|
|
|
ctx.put("projectName", project.getProjectName());
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("dataBase", dataBase.toString());
|
|
|
|
ctx.put("dataBase", project.getDatabase().toString());
|
|
|
|
ctx.put("cloud", cloud);
|
|
|
|
ctx.put("project", project);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "pom.xml"), "SpringBoot/pom.ftl", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "pom.xml"), "SpringBoot/pom.ftl", ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -167,7 +164,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param project
|
|
|
|
* @param project
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateController(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateController(File root, Project project) {
|
|
|
|
Tool.clear(root);
|
|
|
|
Tool.clear(root);
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
@ -197,7 +194,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (project.getSysMD()) {//生成系统模块
|
|
|
|
if (project.isNeedSys()) {//生成系统模块
|
|
|
|
File system = Tool.createPath(ajax.getAbsolutePath(), "system");
|
|
|
|
File system = Tool.createPath(ajax.getAbsolutePath(), "system");
|
|
|
|
|
|
|
|
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/ajax/system/")) {
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/ajax/system/")) {
|
|
|
@ -223,7 +220,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (project.getSysMD()) {//生成系统模块
|
|
|
|
if (project.isNeedSys()) {//生成系统模块
|
|
|
|
File system = Tool.createPath(api.getAbsolutePath(), "system");
|
|
|
|
File system = Tool.createPath(api.getAbsolutePath(), "system");
|
|
|
|
|
|
|
|
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/api/system/")) {
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/api/system/")) {
|
|
|
@ -235,7 +232,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "GlobalController.java"), "SpringBoot/java/action/GlobalController.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "GlobalController.java"), "SpringBoot/java/action/GlobalController.java", ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void generateConfig(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateConfig(File root, Project project) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
root.mkdirs();
|
|
|
|
root.mkdirs();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -255,10 +252,10 @@ public class SpringBootCallable implements Callable {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ScheduleConfig.java"), "SpringBoot/java/config/ScheduleConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ScheduleConfig.java"), "SpringBoot/java/config/ScheduleConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ThreadPoolConfig.java"), "SpringBoot/java/config/ThreadPoolConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ThreadPoolConfig.java"), "SpringBoot/java/config/ThreadPoolConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "WebMvcConfig.java"), "SpringBoot/java/config/WebMvcConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "WebMvcConfig.java"), "SpringBoot/java/config/WebMvcConfig.java", ctx);
|
|
|
|
if (dataBase.name().equals(DataBase.SQLite.name())) {
|
|
|
|
if (project.getDatabase().name().equals(DataBase.SQLite.name())) {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "SQLiteConfig.java"), "SpringBoot/java/config/SQLiteConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "SQLiteConfig.java"), "SpringBoot/java/config/SQLiteConfig.java", ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (project.getMultiDB()) {
|
|
|
|
if (project.isNeedMoreDB()) {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperMainConfig.java"), "SpringBoot/java/config/MapperMainConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperMainConfig.java"), "SpringBoot/java/config/MapperMainConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperTwoConfig.java"), "SpringBoot/java/config/MapperTwoConfig.java", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperTwoConfig.java"), "SpringBoot/java/config/MapperTwoConfig.java", ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -270,7 +267,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param md
|
|
|
|
* @param md
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateEntity(File root, Module md, DataBase dataBase) {
|
|
|
|
public void generateEntity(File root, Module md) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
root.mkdirs();
|
|
|
|
root.mkdirs();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -297,7 +294,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param md
|
|
|
|
* @param md
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateMapper(File root, Module md, DataBase dataBase) {
|
|
|
|
public void generateMapper(File root, Module md) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
root.mkdirs();
|
|
|
|
root.mkdirs();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -307,7 +304,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
|
|
|
|
|
|
|
|
ctx.put("tool", Tool.class);
|
|
|
|
ctx.put("tool", Tool.class);
|
|
|
|
ctx.put("module", md);
|
|
|
|
ctx.put("module", md);
|
|
|
|
ctx.put("dataBase", dataBase.toString());
|
|
|
|
ctx.put("dataBase", project.getDatabase().toString());
|
|
|
|
ctx.put("basePackage", md.getProjectBasePackage());
|
|
|
|
ctx.put("basePackage", md.getProjectBasePackage());
|
|
|
|
ctx.put("moduleName", md.getModuleName());
|
|
|
|
ctx.put("moduleName", md.getModuleName());
|
|
|
|
ctx.put("author", md.getProjectAuthor());
|
|
|
|
ctx.put("author", md.getProjectAuthor());
|
|
|
@ -319,14 +316,14 @@ public class SpringBootCallable implements Callable {
|
|
|
|
|
|
|
|
|
|
|
|
if (table.getSys()) {
|
|
|
|
if (table.getSys()) {
|
|
|
|
// freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), dataBase.name() + "_" + Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + dataBase.name() + "_mapper.xml", ctx);
|
|
|
|
// freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), dataBase.name() + "_" + Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + dataBase.name() + "_mapper.xml", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + dataBase.name() + "_mapper.xml", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + project.getDatabase().name() + "_mapper.xml", ctx);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/Nosys_mapper.ftl", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/Nosys_mapper.ftl", ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void generateManager(File root, Module md, DataBase dataBase) {
|
|
|
|
public void generateManager(File root, Module md) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
root.mkdirs();
|
|
|
|
root.mkdirs();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -354,7 +351,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param md
|
|
|
|
* @param md
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateRequest(File root, Module md, DataBase dataBase) {
|
|
|
|
public void generateRequest(File root, Module md) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
root.mkdirs();
|
|
|
|
root.mkdirs();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -408,7 +405,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param md
|
|
|
|
* @param md
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateResponse(File root, Module md, DataBase dataBase) {
|
|
|
|
public void generateResponse(File root, Module md) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
root.mkdirs();
|
|
|
|
root.mkdirs();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -456,7 +453,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void generateSystemModule(File root, Module md, DataBase dataBase) {
|
|
|
|
public void generateSystemModule(File root, Module md) {
|
|
|
|
File ent = Tool.createPath(root.getAbsolutePath(), "ent");
|
|
|
|
File ent = Tool.createPath(root.getAbsolutePath(), "ent");
|
|
|
|
File mpr = Tool.createPath(root.getAbsolutePath(), "mpr");
|
|
|
|
File mpr = Tool.createPath(root.getAbsolutePath(), "mpr");
|
|
|
|
File mgr = Tool.createPath(root.getAbsolutePath(), "mgr");
|
|
|
|
File mgr = Tool.createPath(root.getAbsolutePath(), "mgr");
|
|
|
@ -468,7 +465,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
ctx.put("moduleName", md.getModuleName());
|
|
|
|
ctx.put("moduleName", md.getModuleName());
|
|
|
|
ctx.put("author", md.getProjectAuthor());
|
|
|
|
ctx.put("author", md.getProjectAuthor());
|
|
|
|
ctx.put("date", new Date());
|
|
|
|
ctx.put("date", new Date());
|
|
|
|
ctx.put("dataBase", dataBase.toString());
|
|
|
|
ctx.put("dataBase", project.getDatabase().toString());
|
|
|
|
|
|
|
|
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/ent/")) {
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/ent/")) {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), name), "SpringBoot/java/module/system/ent/" + name, ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), name), "SpringBoot/java/module/system/ent/" + name, ctx);
|
|
|
@ -481,10 +478,10 @@ public class SpringBootCallable implements Callable {
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/mpr/")) {
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/mpr/")) {
|
|
|
|
if (name.endsWith(".java")) {
|
|
|
|
if (name.endsWith(".java")) {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx);
|
|
|
|
} else if (name.contains(dataBase.name())) {
|
|
|
|
} else if (name.contains(project.getDatabase().name())) {
|
|
|
|
//todo dateBase调试
|
|
|
|
//todo dateBase调试
|
|
|
|
// freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx);
|
|
|
|
// freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name.replaceAll(dataBase.name() + "_", "")), "SpringBoot/java/module/system/mpr/" + name, ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name.replaceAll(project.getDatabase().name() + "_", "")), "SpringBoot/java/module/system/mpr/" + name, ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -503,7 +500,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param project
|
|
|
|
* @param project
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateFrame(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateFrame(File root, Project project) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
root.mkdirs();
|
|
|
|
root.mkdirs();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -558,7 +555,16 @@ public class SpringBootCallable implements Callable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//utils
|
|
|
|
//utils
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) {
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx);
|
|
|
|
ArrayList<String> filters = new ArrayList<>();
|
|
|
|
|
|
|
|
filters.add("MailUtil.java");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (filters.contains(name)) {
|
|
|
|
|
|
|
|
if (project.isNeedEMail()) {
|
|
|
|
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//validation
|
|
|
|
//validation
|
|
|
@ -574,7 +580,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param project
|
|
|
|
* @param project
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateTask(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateTask(File root, Project project) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
if (!root.exists()) {
|
|
|
|
root.mkdirs();
|
|
|
|
root.mkdirs();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -597,14 +603,12 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param project
|
|
|
|
* @param project
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateApplication(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateApplication(File root, Project project) {
|
|
|
|
|
|
|
|
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("moduleName", project.getProjectName());
|
|
|
|
ctx.put("moduleName", project.getProjectName());
|
|
|
|
ctx.put("multiDB", project.getMultiDB());
|
|
|
|
ctx.put("project", project);
|
|
|
|
ctx.put("timestamp", new Date().getTime());
|
|
|
|
ctx.put("timestamp", new Date().getTime());
|
|
|
|
|
|
|
|
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "Application.java"), "SpringBoot/java/Application.ftl", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "Application.java"), "SpringBoot/java/Application.ftl", ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -614,19 +618,18 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param project
|
|
|
|
* @param project
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateResources(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateResources(File root, Project project) {
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("tool", Tool.class);
|
|
|
|
ctx.put("tool", Tool.class);
|
|
|
|
ctx.put("dataBase", dataBase.toString());
|
|
|
|
ctx.put("dataBase", project.getDatabase().toString());
|
|
|
|
ctx.put("author", project.getProjectAuthor());
|
|
|
|
ctx.put("author", project.getProjectAuthor());
|
|
|
|
ctx.put("dBmapper", dBmapper);
|
|
|
|
ctx.put("dBmapper", dBmapper);
|
|
|
|
ctx.put("date", new Date());
|
|
|
|
ctx.put("date", new Date());
|
|
|
|
ctx.put("author", project.getProjectAuthor());
|
|
|
|
ctx.put("author", project.getProjectAuthor());
|
|
|
|
ctx.put("projectName", project.getProjectName());
|
|
|
|
ctx.put("projectName", project.getProjectName());
|
|
|
|
ctx.put("multiDB", project.getMultiDB());
|
|
|
|
ctx.put("project", project);
|
|
|
|
ctx.put("cloud", cloud);
|
|
|
|
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-dev.bat"), "SpringBoot/resources/start-dev.bat", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-dev.bat"), "SpringBoot/resources/start-dev.bat", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-prod.bat"), "SpringBoot/resources/start-prod.bat", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-prod.bat"), "SpringBoot/resources/start-prod.bat", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application-dev.properties"), "SpringBoot/resources/application-dev.ftl", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application-dev.properties"), "SpringBoot/resources/application-dev.ftl", ctx);
|
|
|
@ -645,27 +648,27 @@ public class SpringBootCallable implements Callable {
|
|
|
|
File tableDir = Tool.createPath(dbtool.getAbsolutePath(), module.getModuleName() + "_table");
|
|
|
|
File tableDir = Tool.createPath(dbtool.getAbsolutePath(), module.getModuleName() + "_table");
|
|
|
|
for (Table table : module.getTables()) {
|
|
|
|
for (Table table : module.getTables()) {
|
|
|
|
ctx.put("table", table);
|
|
|
|
ctx.put("table", table);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), dataBase.name() + "_" + table.getTableName() + ".sql"), "SpringBoot/resources/dbtool/table.ftl", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), project.getDatabase().name() + "_" + table.getTableName() + ".sql"), "SpringBoot/resources/dbtool/table.ftl", ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), dataBase.name() + "_ALL_TABLE" + ".sql"), "SpringBoot/resources/dbtool/tableAll.ftl", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), project.getDatabase().name() + "_ALL_TABLE" + ".sql"), "SpringBoot/resources/dbtool/tableAll.ftl", ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (project.getSysMD()) {//生成系统模块
|
|
|
|
if (project.isNeedSys()) {//生成系统模块
|
|
|
|
File system = Tool.createPath(dbtool.getAbsolutePath(), "system_table");
|
|
|
|
File system = Tool.createPath(dbtool.getAbsolutePath(), "system_table");
|
|
|
|
|
|
|
|
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/dbtool/system/")) {
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/dbtool/system/")) {
|
|
|
|
if (name.contains(dataBase.name())) {
|
|
|
|
if (name.contains(project.getDatabase().name())) {
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), name), "SpringBoot/resources/dbtool/system/" + name, ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), name), "SpringBoot/resources/dbtool/system/" + name, ctx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (DataBase.Oracle.name().equals(dataBase.name())) {
|
|
|
|
if (DataBase.Oracle.name().equals(project.getDatabase().name())) {
|
|
|
|
File lib = Tool.createPath(root.getAbsolutePath(), "lib");
|
|
|
|
File lib = Tool.createPath(root.getAbsolutePath(), "lib");
|
|
|
|
Tool.outputResource("SpringBoot/resources/lib/ojdbc7-12.1.0.2.jar", Tool.createFile(lib.getAbsolutePath(), "ojdbc7-12.1.0.2.jar"));
|
|
|
|
Tool.outputResource("SpringBoot/resources/lib/ojdbc7-12.1.0.2.jar", Tool.createFile(lib.getAbsolutePath(), "ojdbc7-12.1.0.2.jar"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (DataBase.SQLite.name().equals(dataBase.name())) {
|
|
|
|
if (DataBase.SQLite.name().equals(project.getDatabase().name())) {
|
|
|
|
File dbFile = Tool.createFile(root.getAbsolutePath(), project.getProjectName() + ".db");
|
|
|
|
File dbFile = Tool.createFile(root.getAbsolutePath(), project.getProjectName() + ".db");
|
|
|
|
Connection connection = null;
|
|
|
|
Connection connection = null;
|
|
|
|
Statement statement = null;
|
|
|
|
Statement statement = null;
|
|
|
@ -699,18 +702,17 @@ public class SpringBootCallable implements Callable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void generateTestResources(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateTestResources(File root, Project project) {
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
|
|
|
|
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("projectName", project.getProjectName());
|
|
|
|
ctx.put("projectName", project.getProjectName());
|
|
|
|
ctx.put("tool", Tool.class);
|
|
|
|
ctx.put("tool", Tool.class);
|
|
|
|
ctx.put("dataBase", dataBase.toString());
|
|
|
|
ctx.put("dataBase", project.getDatabase().toString());
|
|
|
|
ctx.put("author", project.getProjectAuthor());
|
|
|
|
ctx.put("author", project.getProjectAuthor());
|
|
|
|
ctx.put("dBmapper", dBmapper);
|
|
|
|
ctx.put("dBmapper", dBmapper);
|
|
|
|
ctx.put("date", new Date());
|
|
|
|
ctx.put("date", new Date());
|
|
|
|
ctx.put("multiDB", project.getMultiDB());
|
|
|
|
ctx.put("project", project);
|
|
|
|
ctx.put("cloud", cloud);
|
|
|
|
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application.properties"), "SpringBoot/test/application.ftl", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application.properties"), "SpringBoot/test/application.ftl", ctx);
|
|
|
|
Tool.outputResource("SpringBoot/test/logback-spring.xml", Tool.createFile(root.getAbsolutePath(), "logback-spring.xml"));
|
|
|
|
Tool.outputResource("SpringBoot/test/logback-spring.xml", Tool.createFile(root.getAbsolutePath(), "logback-spring.xml"));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -721,7 +723,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param project
|
|
|
|
* @param project
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateStatic(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateStatic(File root, Project project) {
|
|
|
|
|
|
|
|
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
@ -769,7 +771,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
* @param root
|
|
|
|
* @param root
|
|
|
|
* @param project
|
|
|
|
* @param project
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void generateTemplates(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateTemplates(File root, Project project) {
|
|
|
|
{//生成
|
|
|
|
{//生成
|
|
|
|
File templates = Tool.createPath(root.getAbsolutePath(), "templates");
|
|
|
|
File templates = Tool.createPath(root.getAbsolutePath(), "templates");
|
|
|
|
File control = Tool.createPath(templates.getAbsolutePath(), "control");
|
|
|
|
File control = Tool.createPath(templates.getAbsolutePath(), "control");
|
|
|
@ -791,7 +793,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
ctx.put("author", project.getProjectAuthor());
|
|
|
|
ctx.put("author", project.getProjectAuthor());
|
|
|
|
ctx.put("date", new Date());
|
|
|
|
ctx.put("date", new Date());
|
|
|
|
ctx.put("modules", project.getModules());
|
|
|
|
ctx.put("modules", project.getModules());
|
|
|
|
ctx.put("sysMD", project.getSysMD());
|
|
|
|
ctx.put("sysMD", project.isNeedSys());
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(screen.getAbsolutePath(), "index.ftl"), "SpringBoot/resources/templates/screen/index.ftl", ctx);
|
|
|
|
freeMarkerManager.outputTemp(Tool.createFile(screen.getAbsolutePath(), "index.ftl"), "SpringBoot/resources/templates/screen/index.ftl", ctx);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -816,7 +818,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (project.getSysMD()) {//生成系统模块
|
|
|
|
if (project.isNeedSys()) {//生成系统模块
|
|
|
|
File system = Tool.createPath(screen.getAbsolutePath(), "system");
|
|
|
|
File system = Tool.createPath(screen.getAbsolutePath(), "system");
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/templates/screen/module/system/")) {
|
|
|
|
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/templates/screen/module/system/")) {
|
|
|
|
Tool.outputResource("SpringBoot/resources/templates/screen/module/system/" + name, Tool.createFile(system.getAbsolutePath(), name));
|
|
|
|
Tool.outputResource("SpringBoot/resources/templates/screen/module/system/" + name, Tool.createFile(system.getAbsolutePath(), name));
|
|
|
@ -825,7 +827,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void generateTest(File root, Project project, DataBase dataBase) {
|
|
|
|
public void generateTest(File root, Project project) {
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
File config = Tool.createPath(root.getAbsolutePath(), "config");
|
|
|
|
File config = Tool.createPath(root.getAbsolutePath(), "config");
|
|
|
@ -870,7 +872,7 @@ public class SpringBootCallable implements Callable {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (project.getSysMD()) {//生成系统模块
|
|
|
|
if (project.isNeedSys()) {//生成系统模块
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
HashMap<String, Object> ctx = new HashMap<String, Object>();
|
|
|
|
ctx.put("tool", Tool.class);
|
|
|
|
ctx.put("tool", Tool.class);
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|
ctx.put("basePackage", project.getProjectBasePackage());
|
|
|
|