GenCodeController.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. package com.izouma.awesomeadmin.web;
  2. import java.io.File;
  3. import java.util.*;
  4. import java.util.regex.Pattern;
  5. import com.google.gson.Gson;
  6. import com.izouma.awesomeadmin.model.DataSourceInfo;
  7. import com.izouma.awesomeadmin.model.GenCode;
  8. import com.izouma.awesomeadmin.model.TableField;
  9. import com.izouma.awesomeadmin.service.DataSourceInfoService;
  10. import com.izouma.awesomeadmin.util.DatabaseUtil;
  11. import com.izouma.awesomeadmin.util.PinYinUtil;
  12. import com.izouma.codegenerator.*;
  13. import org.apache.commons.lang.StringUtils;
  14. import org.apache.commons.text.CaseUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.web.bind.annotation.*;
  18. import com.izouma.awesomeadmin.constant.AppConstant;
  19. import com.izouma.awesomeadmin.dto.Page;
  20. import com.izouma.awesomeadmin.dto.Result;
  21. import com.izouma.awesomeadmin.service.GenCodeService;
  22. import org.springframework.web.context.ContextLoader;
  23. /**
  24. * gen_code_model controller类
  25. * Fri May 04 15:57:06 CST 2018 Suo Chen Cheng
  26. */
  27. @Controller
  28. @RequestMapping("/genCode")
  29. public class GenCodeController extends BaseController {
  30. @Autowired
  31. private GenCodeService genCodeService;
  32. @Autowired
  33. private DataSourceInfoService dataSourceInfoService;
  34. /**
  35. * <p>获取全部记录。</p>
  36. */
  37. @RequestMapping(value = "/all", method = RequestMethod.GET)
  38. @ResponseBody
  39. public Result all(GenCode record) {
  40. List<GenCode> pp = genCodeService.getGenCodeList(record);
  41. return new Result(true, pp);
  42. }
  43. /**
  44. * <p>根据Id。</p>
  45. */
  46. @RequestMapping(value = "/getGenCode", method = RequestMethod.GET)
  47. @ResponseBody
  48. public Result getGenCode(@RequestParam(required = false, value = "id") String id) {
  49. GenCode data = genCodeService.getGenCodeById(id);
  50. return new Result(true, data);
  51. }
  52. /**
  53. * <p>根据条件获取。</p>
  54. */
  55. @RequestMapping(value = "/getOne", method = RequestMethod.GET)
  56. @ResponseBody
  57. public Result getOne(GenCode record) {
  58. GenCode data = genCodeService.getGenCode(record);
  59. return new Result(true, data);
  60. }
  61. /**
  62. * <p>分页查询。</p>
  63. */
  64. @RequestMapping(value = "/page", method = RequestMethod.GET)
  65. @ResponseBody
  66. public Result page(Page page, GenCode record) {
  67. Map<String, Object> result = new HashMap<>();
  68. List<GenCode> pp = genCodeService.getGenCodeByPage(page, record);
  69. result.put(AppConstant.PAGE, page);
  70. result.put("pp", pp);
  71. return new Result(true, result);
  72. }
  73. /**
  74. * <p>保存。</p>
  75. */
  76. @RequestMapping(value = "/save", method = RequestMethod.POST)
  77. @ResponseBody
  78. public Result save(@RequestBody GenCode record) {
  79. try {
  80. Gson gson = new Gson();
  81. record.setGenJson(gson.toJson(record));
  82. genCode(record);
  83. genCodeService.createGenCode(record);
  84. return new Result(true, record.getId());
  85. } catch (Exception e) {
  86. e.printStackTrace();
  87. }
  88. return new Result(false, "保存异常");
  89. }
  90. /**
  91. * <p>更新信息。</p>
  92. */
  93. @RequestMapping(value = "/update", method = RequestMethod.POST)
  94. @ResponseBody
  95. public Result updateGenCode(@RequestBody GenCode record) {
  96. try {
  97. Gson gson = new Gson();
  98. record.setGenJson(gson.toJson(record));
  99. genCode(record);
  100. boolean num = genCodeService.updateGenCode(record);
  101. if (num) {
  102. return new Result(true, "保存成功");
  103. }
  104. } catch (Exception e) {
  105. e.printStackTrace();
  106. }
  107. return new Result(false, "保存异常");
  108. }
  109. private void genCode(@RequestBody GenCode record) throws Exception {
  110. String tableName = record.getTableName();
  111. if (PinYinUtil.isContainChinese(tableName)) {
  112. tableName = PinYinUtil.getStringPinYin(tableName);
  113. }
  114. if (StringUtils.isNotEmpty(record.getClassName())) {
  115. record.setClassName(CaseUtils.toCamelCase(record.getClassName(), true, '_'));
  116. } else {
  117. record.setClassName(CaseUtils.toCamelCase(tableName, true, '_'));
  118. }
  119. // if (record.getReadTable()) {
  120. // ReadTableGenerator.ReadTable(record);
  121. // }
  122. GeneratorTool.getImports(record);
  123. if (record.getGenTable() && !record.getReadTable()) {
  124. TableGenerator.GenTable(record);
  125. }
  126. if (record.getGenClass()) {
  127. ModelGenerator.GenModel(record);
  128. ControllerGenerator.GenController(record);
  129. ServiceGenerator.GenService(record);
  130. ServiceImplGenerator.GemServicelImpl(record);
  131. MapperGenerator.GenMapper(record);
  132. MapperXmlGenerator.GenXml(record);
  133. }
  134. if (record.getGenList()) {
  135. ListViewGenerator.GenListView(record);
  136. }
  137. if (record.getGenForm()) {
  138. EditViewGenerator.GenEditView(record);
  139. }
  140. if (record.getGenRouter()) {
  141. RouterGenerator.GenRouter(record);
  142. }
  143. }
  144. /**
  145. * <p>删除。</p>
  146. */
  147. @RequestMapping(value = "/del", method = RequestMethod.POST)
  148. @ResponseBody
  149. public Result deleteGenCode(@RequestParam(required = true, value = "id") String id) {
  150. boolean num = genCodeService.deleteGenCode(id);
  151. if (num) {
  152. return new Result(true, "删除成功");
  153. }
  154. return new Result(false, "删除异常");
  155. }
  156. @RequestMapping(value = "/getSrcPath", method = RequestMethod.GET)
  157. @ResponseBody
  158. public Result getSrcPath() {
  159. Map<String, Object> map = new HashMap<>();
  160. String path = this.getClass().getPackage().getName();
  161. path = path.substring(0, path.lastIndexOf(".")).replace(".", File.separator);
  162. String[] arr = ContextLoader.getCurrentWebApplicationContext().getServletContext().getRealPath("/").split("target");
  163. //String root = StringUtils.join(Arrays.copyOfRange(arr, 0, arr.length - 2), File.separator);
  164. String root = arr[0];
  165. if ("linux".equalsIgnoreCase(System.getProperties().getProperty("os.name"))) {
  166. map.put("root", "/root/.jenkins/workspace/信牧基础平台");
  167. } else {
  168. map.put("root", root);
  169. }
  170. map.put("javaPath", "/src/main/java/" + path);
  171. map.put("viewPath", "/src/main/vue/src/pages");
  172. map.put("routerPath", "/src/main/vue/src/router");
  173. return new Result(true, map);
  174. }
  175. @RequestMapping(value = "/tables", method = RequestMethod.GET)
  176. @ResponseBody
  177. public Result tables(DataSourceInfo dataSourceInfo) {
  178. if (StringUtils.isNotEmpty(dataSourceInfo.getCode()) && !"dataSource".equals(dataSourceInfo.getCode())) {
  179. dataSourceInfo = dataSourceInfoService.getDataSourceInfo(dataSourceInfo);
  180. if (dataSourceInfo != null) {
  181. List<String> pp = DatabaseUtil.loadDatabaseTables(dataSourceInfo);
  182. return new Result(true, pp);
  183. }
  184. } else {
  185. List<String> pp = DatabaseUtil.loadDatabaseTables(dataSourceInfo);
  186. return new Result(true, pp);
  187. }
  188. return new Result(false, "获取失败");
  189. }
  190. @RequestMapping(value = "/tableFields", method = RequestMethod.GET)
  191. @ResponseBody
  192. public Result tableFields(DataSourceInfo dataSourceInfo) {
  193. String tableName = dataSourceInfo.getTableName();
  194. if (StringUtils.isNotEmpty(dataSourceInfo.getCode())) {
  195. if (!"dataSource".equals(dataSourceInfo.getCode())) {
  196. dataSourceInfo = dataSourceInfoService.getDataSourceInfo(dataSourceInfo);
  197. }
  198. if (dataSourceInfo != null) {
  199. dataSourceInfo.setTableName(tableName);
  200. List<TableField> pp = DatabaseUtil.loadTableFields(dataSourceInfo);
  201. return new Result(true, pp);
  202. }
  203. } else {
  204. List<TableField> pp = DatabaseUtil.loadTableFields(dataSourceInfo);
  205. return new Result(true, pp);
  206. }
  207. return new Result(false, "获取失败");
  208. }
  209. }