package com.pj.gen; import com.pj.gen.cfg.GenCfg; import com.pj.gen.cfg.GenCfgManager; import com.pj.gen.model.DbTable; import com.pj.gen.read.FlyRead; import com.pj.gen.read.FlyReadMySql; import com.pj.gen.read.ReadUtil; /** * 操作工具类 * @author kong * */ public class GenUtil { public static FlyRead flyRead = new FlyReadMySql(); // 默认的读取实现类 // 返回读取好的表信息 public static GenCfg getCodeCfgByReadOk(){ initTables(); flyRead.setCodeCfg(GenCfgManager.cfg).readInfo(); return GenCfgManager.cfg; } // 开始读取 public static void doRead() { initTables(); flyRead.setCodeCfg(GenCfgManager.cfg); flyRead.readInfo(); } // 输出java代码 (mybatis版本) public static void doOutMyBatis() { // 模块 for (DbTable t : GenCfgManager.cfg.tableList) { // model String modelPath = t.getServerIoPath() + t.getModelName() + ".java"; // 路径 String modelContent = FreeMarkerUtil.getResult("mybatis/Model.ftl", "t", t); // 内容 SUtil.outFile(modelPath, modelContent); System.out.println(t.getModelName() + " 写入成功:\t\t\t" + modelPath); // Mapper.java String mapperJavaPath = t.getServerIoPath() + t.getMkNameBig() + "Mapper.java"; // 路径 String mapperJavaContent = FreeMarkerUtil.getResult("mybatis/MapperJava.ftl", "t", t); // 内容 SUtil.outFile(mapperJavaPath, mapperJavaContent); System.out.println(t.getModelName() + "Mapper.java 写入成功:\t\t" + mapperJavaPath); // Mapper.xml String mapperXmlPath = t.getServerIoPath() + t.getMkNameBig() + "Mapper.xml"; // 路径 String mapperXmlContent = FreeMarkerUtil.getResult("mybatis/MapperXml.ftl", "t", t); // 内容 mapperXmlContent = GenCfgManager.cfg.getSqlEncloseRefreshStr(mapperXmlContent); SUtil.outFile(mapperXmlPath, mapperXmlContent); System.out.println(t.getModelName() + "Mapper.xml 写入成功:\t\t" + mapperXmlPath); // Controller String controllerPath = t.getServerIoPath() + t.getMkNameBig() + "Controller.java"; // 路径 String controllerContent = FreeMarkerUtil.getResult("mybatis/Controller.ftl", "t", t); // 内容 SUtil.outFile(controllerPath, controllerContent); System.out.println(t.getModelName() + "Controller 写入成功:\t\t" + controllerPath); // Util String utilPath = t.getServerIoPath() + t.getMkNameBig() + "Util.java"; // 路径 String utilContent = FreeMarkerUtil.getResult("mybatis/Util.ftl", "t", t); // 内容 SUtil.outFile(utilPath, utilContent); System.out.println(t.getModelName() + "Util 写入成功:\t\t" + utilPath); // 多打印一行,模块之间有个间隔 System.out.println(); } // FC.java 依赖清单 if(GenCfgManager.cfg.isOutFC) { String FCPath = GenCfgManager.cfg.getServerIoPath() + "FC.java"; // 路径 String FContent = FreeMarkerUtil.getResult("mybatis/FC.ftl", "abc", 123); // 内容 SUtil.outFile(FCPath, FContent); System.out.println("FC.java 依赖清单写入成功:\t\t" + FCPath); } System.out.println("\n"); } // 输出java代码 (mybatis版本-带service层 ) public static void doOutMyBatisService() { // 模块 for (DbTable t : GenCfgManager.cfg.tableList) { // Service String servicePath = t.getServerIoPath() + t.getMkNameBig() + "Service.java"; // 路径 String serviceContent = FreeMarkerUtil.getResult("service/Service.ftl", "t", t); // 内容 SUtil.outFile(servicePath, serviceContent); System.out.println(t.getModelName() + "Service 写入成功:\t\t" + servicePath); // Controller String controllerPath = t.getServerIoPath() + t.getMkNameBig() + "Controller.java"; // 路径 String controllerContent = FreeMarkerUtil.getResult("service/Controller.ftl", "t", t); // 内容 SUtil.outFile(controllerPath, controllerContent); System.out.println(t.getModelName() + "Controller 写入成功:\t\t" + controllerPath); // 多打印一行,模块之间有个间隔 System.out.println(); } // FC.java 依赖清单 if(GenCfgManager.cfg.isOutFC) { String FCPath = GenCfgManager.cfg.getServerIoPath() + "FC.java"; // 路径 String FContent = FreeMarkerUtil.getResult("service/FC.ftl", "abc", 123); // 内容 SUtil.outFile(FCPath, FContent); System.out.println("FC.java 依赖清单写入成功:\t\t" + FCPath); } System.out.println("\n"); } // 开始生成admin后台管理 public static void doOutAdminHtml() { // 模块 for (DbTable t : GenCfgManager.cfg.tableList) { // 查 String xxxListPath = t.getAdminIoPath() + t.getKebabName() + "-list.html"; // 路径 String xxxListContent = FreeMarkerUtil.getResult("admin/xxx-list.ftl", "t", t); // 内容 SUtil.outFile(xxxListPath, xxxListContent); System.out.println(t.getKebabName() + "-list.html 写入成功:\t\t\t" + xxxListPath); // 增 String xxxAddPath = t.getAdminIoPath() + t.getKebabName() + "-add.html"; // 路径 String xxxAddContent = FreeMarkerUtil.getResult("admin/xxx-add.ftl", "t", t); // 内容 SUtil.outFile(xxxAddPath, xxxAddContent); System.out.println(t.getKebabName() + "-add.html 写入成功:\t\t\t" + xxxAddPath); // 详情 String xxxInfoPath = t.getAdminIoPath() + t.getKebabName() + "-info.html"; // 路径 String xxxInfoContent = FreeMarkerUtil.getResult("admin/xxx-info.ftl", "t", t); // 内容 SUtil.outFile(xxxInfoPath, xxxInfoContent); System.out.println(t.getKebabName() + "-info.html 写入成功:\t\t\t" + xxxInfoPath); // 多打印一行,模块之间有个间隔 System.out.println(); } // menu-list.js 菜单列表 String menuListPath = GenCfgManager.cfg.getAdminProjectPath() + "sa-frame\\menu-list.js"; // 路径 String menuListContent = FreeMarkerUtil.getResult("admin/menu-list.ftl", "abc", 123); // 内容 SUtil.outFile(menuListPath, menuListContent); System.out.println("menu-list.js 菜单列表, 写入成功:\t\t" + menuListPath); } // 开始生成接口文档地址 public static void doOutApidoc() { // 模块 for (DbTable t : GenCfgManager.cfg.tableList) { // 接口文档 String xxxMdPath = t.getApidocIoPath() + t.getKebabName() + ".md"; // 路径 String xxxMdContent = FreeMarkerUtil.getResult("apidoc/xxx-md.ftl", "t", t); // 内容 SUtil.outFile(xxxMdPath, xxxMdContent); System.out.println(t.getKebabName() + ".md 写入成功:\t\t\t" + xxxMdPath); // 多打印一行,模块之间有个间隔 // System.out.println(); } // sidebar.md 菜单列表 String sidebarPath = GenCfgManager.cfg.getApidocProjectPath() + "_sidebar.md"; // 路径 String sidebarContent = FreeMarkerUtil.getResult("apidoc/sidebar.ftl", "abc", 123); // 内容 SUtil.outFile(sidebarPath, sidebarContent); System.out.println("_sidebar.js 接口文档目录树, 写入成功:\t\t" + sidebarPath); } // init 相关依赖 private static void initTables() { // 初始化数据表集合 if(GenCfgManager.cfg.tableNameList == null || GenCfgManager.cfg.tableNameList.size() == 0){ for (String tName : ReadUtil.getTableList(GenCfgManager.cfg.sqlFly.getConnection())) { GenCfgManager.cfg.tableNameList.add(tName); } } } }