GenUtil.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. package com.pj.gen;
  2. import com.pj.gen.cfg.GenCfg;
  3. import com.pj.gen.cfg.GenCfgManager;
  4. import com.pj.gen.model.DbTable;
  5. import com.pj.gen.read.FlyRead;
  6. import com.pj.gen.read.FlyReadMySql;
  7. import com.pj.gen.read.ReadUtil;
  8. /**
  9. * 操作工具类
  10. * @author kong
  11. *
  12. */
  13. public class GenUtil {
  14. public static FlyRead flyRead = new FlyReadMySql(); // 默认的读取实现类
  15. // 返回读取好的表信息
  16. public static GenCfg getCodeCfgByReadOk(){
  17. initTables();
  18. flyRead.setCodeCfg(GenCfgManager.cfg).readInfo();
  19. return GenCfgManager.cfg;
  20. }
  21. // 开始读取
  22. public static void doRead() {
  23. initTables();
  24. flyRead.setCodeCfg(GenCfgManager.cfg);
  25. flyRead.readInfo();
  26. }
  27. // 输出java代码 (mybatis版本)
  28. public static void doOutMyBatis() {
  29. // 模块
  30. for (DbTable t : GenCfgManager.cfg.tableList) {
  31. // model
  32. String modelPath = t.getServerIoPath() + t.getModelName() + ".java"; // 路径
  33. String modelContent = FreeMarkerUtil.getResult("mybatis/Model.ftl", "t", t); // 内容
  34. SUtil.outFile(modelPath, modelContent);
  35. System.out.println(t.getModelName() + " 写入成功:\t\t\t" + modelPath);
  36. // Mapper.java
  37. String mapperJavaPath = t.getServerIoPath() + t.getMkNameBig() + "Mapper.java"; // 路径
  38. String mapperJavaContent = FreeMarkerUtil.getResult("mybatis/MapperJava.ftl", "t", t); // 内容
  39. SUtil.outFile(mapperJavaPath, mapperJavaContent);
  40. System.out.println(t.getModelName() + "Mapper.java 写入成功:\t\t" + mapperJavaPath);
  41. // Mapper.xml
  42. String mapperXmlPath = t.getServerIoPath() + t.getMkNameBig() + "Mapper.xml"; // 路径
  43. String mapperXmlContent = FreeMarkerUtil.getResult("mybatis/MapperXml.ftl", "t", t); // 内容
  44. mapperXmlContent = GenCfgManager.cfg.getSqlEncloseRefreshStr(mapperXmlContent);
  45. SUtil.outFile(mapperXmlPath, mapperXmlContent);
  46. System.out.println(t.getModelName() + "Mapper.xml 写入成功:\t\t" + mapperXmlPath);
  47. // Controller
  48. String controllerPath = t.getServerIoPath() + t.getMkNameBig() + "Controller.java"; // 路径
  49. String controllerContent = FreeMarkerUtil.getResult("mybatis/Controller.ftl", "t", t); // 内容
  50. SUtil.outFile(controllerPath, controllerContent);
  51. System.out.println(t.getModelName() + "Controller 写入成功:\t\t" + controllerPath);
  52. // Util
  53. String utilPath = t.getServerIoPath() + t.getMkNameBig() + "Util.java"; // 路径
  54. String utilContent = FreeMarkerUtil.getResult("mybatis/Util.ftl", "t", t); // 内容
  55. SUtil.outFile(utilPath, utilContent);
  56. System.out.println(t.getModelName() + "Util 写入成功:\t\t" + utilPath);
  57. // 多打印一行,模块之间有个间隔
  58. System.out.println();
  59. }
  60. // FC.java 依赖清单
  61. if(GenCfgManager.cfg.isOutFC) {
  62. String FCPath = GenCfgManager.cfg.getServerIoPath() + "FC.java"; // 路径
  63. String FContent = FreeMarkerUtil.getResult("mybatis/FC.ftl", "abc", 123); // 内容
  64. SUtil.outFile(FCPath, FContent);
  65. System.out.println("FC.java 依赖清单写入成功:\t\t" + FCPath);
  66. }
  67. System.out.println("\n");
  68. }
  69. // 输出java代码 (mybatis版本-带service层 )
  70. public static void doOutMyBatisService() {
  71. // 模块
  72. for (DbTable t : GenCfgManager.cfg.tableList) {
  73. // Service
  74. String servicePath = t.getServerIoPath() + t.getMkNameBig() + "Service.java"; // 路径
  75. String serviceContent = FreeMarkerUtil.getResult("service/Service.ftl", "t", t); // 内容
  76. SUtil.outFile(servicePath, serviceContent);
  77. System.out.println(t.getModelName() + "Service 写入成功:\t\t" + servicePath);
  78. // Controller
  79. String controllerPath = t.getServerIoPath() + t.getMkNameBig() + "Controller.java"; // 路径
  80. String controllerContent = FreeMarkerUtil.getResult("service/Controller.ftl", "t", t); // 内容
  81. SUtil.outFile(controllerPath, controllerContent);
  82. System.out.println(t.getModelName() + "Controller 写入成功:\t\t" + controllerPath);
  83. // 多打印一行,模块之间有个间隔
  84. System.out.println();
  85. }
  86. // FC.java 依赖清单
  87. if(GenCfgManager.cfg.isOutFC) {
  88. String FCPath = GenCfgManager.cfg.getServerIoPath() + "FC.java"; // 路径
  89. String FContent = FreeMarkerUtil.getResult("service/FC.ftl", "abc", 123); // 内容
  90. SUtil.outFile(FCPath, FContent);
  91. System.out.println("FC.java 依赖清单写入成功:\t\t" + FCPath);
  92. }
  93. System.out.println("\n");
  94. }
  95. // 开始生成admin后台管理
  96. public static void doOutAdminHtml() {
  97. // 模块
  98. for (DbTable t : GenCfgManager.cfg.tableList) {
  99. // 查
  100. String xxxListPath = t.getAdminIoPath() + t.getKebabName() + "-list.html"; // 路径
  101. String xxxListContent = FreeMarkerUtil.getResult("admin/xxx-list.ftl", "t", t); // 内容
  102. SUtil.outFile(xxxListPath, xxxListContent);
  103. System.out.println(t.getKebabName() + "-list.html 写入成功:\t\t\t" + xxxListPath);
  104. // 增
  105. String xxxAddPath = t.getAdminIoPath() + t.getKebabName() + "-add.html"; // 路径
  106. String xxxAddContent = FreeMarkerUtil.getResult("admin/xxx-add.ftl", "t", t); // 内容
  107. SUtil.outFile(xxxAddPath, xxxAddContent);
  108. System.out.println(t.getKebabName() + "-add.html 写入成功:\t\t\t" + xxxAddPath);
  109. // 详情
  110. String xxxInfoPath = t.getAdminIoPath() + t.getKebabName() + "-info.html"; // 路径
  111. String xxxInfoContent = FreeMarkerUtil.getResult("admin/xxx-info.ftl", "t", t); // 内容
  112. SUtil.outFile(xxxInfoPath, xxxInfoContent);
  113. System.out.println(t.getKebabName() + "-info.html 写入成功:\t\t\t" + xxxInfoPath);
  114. // 多打印一行,模块之间有个间隔
  115. System.out.println();
  116. }
  117. // menu-list.js 菜单列表
  118. String menuListPath = GenCfgManager.cfg.getAdminProjectPath() + "sa-frame\\menu-list.js"; // 路径
  119. String menuListContent = FreeMarkerUtil.getResult("admin/menu-list.ftl", "abc", 123); // 内容
  120. SUtil.outFile(menuListPath, menuListContent);
  121. System.out.println("menu-list.js 菜单列表, 写入成功:\t\t" + menuListPath);
  122. }
  123. // 开始生成接口文档地址
  124. public static void doOutApidoc() {
  125. // 模块
  126. for (DbTable t : GenCfgManager.cfg.tableList) {
  127. // 接口文档
  128. String xxxMdPath = t.getApidocIoPath() + t.getKebabName() + ".md"; // 路径
  129. String xxxMdContent = FreeMarkerUtil.getResult("apidoc/xxx-md.ftl", "t", t); // 内容
  130. SUtil.outFile(xxxMdPath, xxxMdContent);
  131. System.out.println(t.getKebabName() + ".md 写入成功:\t\t\t" + xxxMdPath);
  132. // 多打印一行,模块之间有个间隔
  133. // System.out.println();
  134. }
  135. // sidebar.md 菜单列表
  136. String sidebarPath = GenCfgManager.cfg.getApidocProjectPath() + "_sidebar.md"; // 路径
  137. String sidebarContent = FreeMarkerUtil.getResult("apidoc/sidebar.ftl", "abc", 123); // 内容
  138. SUtil.outFile(sidebarPath, sidebarContent);
  139. System.out.println("_sidebar.js 接口文档目录树, 写入成功:\t\t" + sidebarPath);
  140. }
  141. // init 相关依赖
  142. private static void initTables() {
  143. // 初始化数据表集合
  144. if(GenCfgManager.cfg.tableNameList == null || GenCfgManager.cfg.tableNameList.size() == 0){
  145. for (String tName : ReadUtil.getTableList(GenCfgManager.cfg.sqlFly.getConnection())) {
  146. GenCfgManager.cfg.tableNameList.add(tName);
  147. }
  148. }
  149. }
  150. }