| | |
| | | public boolean entity = true; |
| | | public boolean xml = true; |
| | | public boolean html = true; |
| | | public boolean htmlDetail = false; |
| | | public boolean js = true; |
| | | public boolean sql = true; |
| | | public SqlOsType sqlOsType; |
| | | public String backendPrefixPath; |
| | | public String frontendPrefixPath; |
| | | |
| | | private List<Column> columns = new ArrayList<>(); |
| | | private String fullEntityName; |
| | |
| | | private String majorColumn; |
| | | private String systemPackagePath; |
| | | private String systemPackage; |
| | | private String itemName; |
| | | |
| | | public void build() throws Exception { |
| | | init(); |
| | |
| | | switch (template){ |
| | | case "Controller": |
| | | pass = controller; |
| | | directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+template+".java"; |
| | | break; |
| | | case "Service": |
| | | pass = service; |
| | | directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+template+".java"; |
| | | break; |
| | | case "ServiceImpl": |
| | | pass = service; |
| | | directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+template+".java"; |
| | | break; |
| | | case "Mapper": |
| | | pass = mapper; |
| | | directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+template+".java"; |
| | | break; |
| | | case "Entity": |
| | | pass = entity; |
| | | directory = JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | directory = backendPrefixPath + JAVA_DIR + packagePath.replace(".", "/")+"/"+templatePath+"/"; |
| | | fileName = fullEntityName+".java"; |
| | | break; |
| | | case "Xml": |
| | | pass = xml; |
| | | directory = XML_DIR; |
| | | directory = backendPrefixPath + XML_DIR + itemName + "/"; |
| | | fileName = fullEntityName+"Mapper.xml"; |
| | | break; |
| | | case "Sql": |
| | | pass = sql; |
| | | directory = backendPrefixPath + JAVA_DIR; |
| | | fileName = simpleEntityName+".sql"; |
| | | break; |
| | | case "Html": |
| | | pass = html; |
| | | directory = HTML_DIR + "/views/" + simpleEntityName + "/"; |
| | | directory = frontendPrefixPath + HTML_DIR + "/views/" + simpleEntityName + "/"; |
| | | fileName = simpleEntityName+".html"; |
| | | break; |
| | | case "Js": |
| | | pass = js; |
| | | directory = HTML_DIR + "/static/js/" + simpleEntityName + "/"; |
| | | directory = frontendPrefixPath + HTML_DIR + "/static/js/" + simpleEntityName + "/"; |
| | | fileName = simpleEntityName+".js"; |
| | | break; |
| | | case "Sql": |
| | | pass = sql; |
| | | directory = JAVA_DIR; |
| | | fileName = simpleEntityName+".sql"; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | fullEntityName = GeneratorUtils.getNameSpace(table); |
| | | simpleEntityName = fullEntityName.substring(0, 1).toLowerCase()+fullEntityName.substring(1); |
| | | entityContent = createEntityMsg(); |
| | | xmlContent = createXmlMsg(); |
| | | htmlContent = createHtmlMsg(); |
| | | htmlDialogContent = createHtmlDialogMsg(); |
| | | jsTableContent = createJsTableMsg(); |
| | |
| | | systemPackage = systemPackage + split[i-1] + "."; |
| | | } |
| | | } |
| | | |
| | | } |
| | | itemName = packagePathSplit[packagePathSplit.length - 1]; |
| | | } |
| | | |
| | | private String readFile(String template){ |
| | |
| | | if(!codeDirectory.exists()){ |
| | | codeDirectory.mkdirs(); |
| | | } |
| | | |
| | | File writerFile=new File(directory+fileName); |
| | | if(!writerFile.exists()){ |
| | | content=content. |
| | |
| | | .replaceAll("@\\{SIMPLEENTITYNAME}", simpleEntityName) |
| | | .replaceAll("@\\{UENTITYNAME}", simpleEntityName) |
| | | .replaceAll("@\\{COMPANYNAME}",packagePath) |
| | | .replaceAll("@\\{XMLCONTENT}", xmlContent) |
| | | .replaceAll("@\\{ITEMNAME}",itemName) |
| | | // .replaceAll("@\\{XMLCONTENT}", xmlContent) |
| | | .replaceAll("@\\{HTMLCONTENT}", htmlContent) |
| | | .replaceAll("@\\{HTMLDIALOGCONTENT}", htmlDialogContent) |
| | | .replaceAll("@\\{JSTABLECONTENT}", jsTableContent) |
| | |
| | | .replaceAll("@\\{JSDATECONTENT}", jsDateContent) |
| | | .replaceAll("@\\{JSPRIMARYKEYDOMS}", jsPrimaryKeyDoms) |
| | | .replaceAll("@\\{MAJORCOLUMN}", GeneratorUtils.humpToLine(majorColumn)) |
| | | .replaceAll("@\\{MAJORCOLUMN_UP}", GeneratorUtils.firstCharConvert(GeneratorUtils.humpToLine(majorColumn), false)) |
| | | .replaceAll("@\\{MAJORCOLUMN0}", GeneratorUtils.firstCharConvert(majorColumn, false)) |
| | | .replaceAll("@\\{MAJORCOLUMN_UP}", GeneratorUtils.firstCharConvert(majorColumn, false)) |
| | | .replaceAll("@\\{PRIMARYKEYCOLUMN}", GeneratorUtils.firstCharConvert(primaryKeyColumn, false)) |
| | | .replaceAll("@\\{PRIMARYKEYCOLUMN0}", GeneratorUtils.firstCharConvert(primaryKeyColumn, true)) |
| | | .replaceAll("@\\{UPCASEMARJORCOLUMN}", GeneratorUtils.firstCharConvert(primaryKeyColumn, false)) |
| | |
| | | } |
| | | switch (this.sqlOsType) { |
| | | case MYSQL: |
| | | Class.forName("com.mysql.jdbc.Driver").newInstance(); |
| | | Class.forName("com.mysql.cj.jdbc.Driver").newInstance(); |
| | | conn = DriverManager.getConnection("jdbc:mysql://"+url, username, password); |
| | | this.columns = getMysqlColumns(conn, table, true, sqlOsType); |
| | | break; |
| | |
| | | return null; |
| | | } |
| | | StringBuilder sb = new StringBuilder(); |
| | | StringBuilder entityIm = new StringBuilder("import com.core.common.Cools;"); |
| | | StringBuilder entityIm = new StringBuilder(); |
| | | boolean setTableField = true; |
| | | boolean setTableId = true; |
| | | boolean setDateTimeFormat = true; |
| | |
| | | |
| | | // 主键修饰 |
| | | if (column.isMainKey()){ |
| | | if (setTableId){ |
| | | entityIm.append("import com.baomidou.mybatisplus.annotations.TableId;").append("\n") |
| | | .append("import com.baomidou.mybatisplus.enums.IdType;").append("\n"); |
| | | setTableId = false; |
| | | } |
| | | if (column.isOnly()){ |
| | | sb.append(" ") |
| | | .append("@TableId(value = \"") |
| | |
| | | |
| | | } |
| | | |
| | | // 外键修饰 |
| | | if (!Cools.isEmpty(column.getForeignKeyMajor())){ |
| | | entityIm.append("import com.core.common.SpringUtils;\n") |
| | | .append("import ").append(SYSTEM_MODEL.contains(column.getForeignKey())?systemPackagePath:packagePath).append(".service.").append(column.getForeignKey()).append("Service;\n") |
| | | .append("import ").append(SYSTEM_MODEL.contains(column.getForeignKey())?systemPackagePath:packagePath).append(".entity.").append(column.getForeignKey()).append(";\n"); |
| | | } |
| | | |
| | | // 命名转换注解 |
| | | if (!column.getName().equals(column.getHumpName())){ |
| | | if (setTableField){ |
| | | entityIm.append("import com.baomidou.mybatisplus.annotations.TableField;").append("\n"); |
| | | setTableField = false; |
| | | } |
| | | if (column.getName().equals("deleted")) { |
| | | entityIm.append("import com.baomidou.mybatisplus.annotation.TableLogic;\n"); |
| | | sb.append(" ") |
| | | .append("@TableField(\"") |
| | | .append(column.getName()) |
| | | .append("\")") |
| | | .append("\n"); |
| | | .append("@TableLogic\n"); |
| | | } |
| | | |
| | | if ("Date".equals(column.getType())){ |
| | |
| | | .append(column.getHumpName()) |
| | | .append(");\n") |
| | | .append(" }\n\n"); |
| | | // 枚举字段增加$格式化 |
| | | // 枚举字段增加$格式化 |
| | | } else if (!Cools.isEmpty(column.getEnums())){ |
| | | sb.append(" public String get") |
| | | .append(column.getHumpName().substring(0, 1).toUpperCase()).append(column.getHumpName().substring(1)) |
| | |
| | | sb.append(" public String get").append(column.getHumpName().substring(0, 1).toUpperCase()).append(column.getHumpName().substring(1)).append("\\$").append("(){\n") |
| | | .append(" ").append(column.getForeignKey()).append("Service service = SpringUtils.getBean(").append(column.getForeignKey()).append("Service.class);\n") |
| | | .append(" ").append(column.getForeignKey()).append(" ").append(GeneratorUtils.firstCharConvert(column.getForeignKey())) |
| | | .append(" = service.selectById(this.").append(column.getHumpName()).append(");\n") |
| | | .append(" = service.getById(this.").append(column.getHumpName()).append(");\n") |
| | | .append(" if (!Cools.isEmpty(").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append(")){\n") |
| | | .append(" return String.valueOf(").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append(".get").append(column.getForeignKeyMajor()).append("());\n") |
| | | .append(" }\n") |
| | |
| | | } |
| | | } |
| | | return defaultMajor; |
| | | } |
| | | |
| | | /**********************************************************************************************/ |
| | | /*************************************** Xml动态字段 ********************************************/ |
| | | /**********************************************************************************************/ |
| | | |
| | | private String createXmlMsg(){ |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Column column : columns){ |
| | | sb.append(" ") |
| | | .append("<") |
| | | .append(column.isOnly()?"id":"result") |
| | | .append(" column=\"") |
| | | .append(column.getName()) |
| | | .append("\" property=\"") |
| | | .append(column.getHumpName()) |
| | | .append("\" />\n"); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | |
| | | /**********************************************************************************************/ |
| | |
| | | sb.append(" layDate.render({\n") |
| | | .append(" elem: '#").append(column.getHumpName()).append("\\\\\\\\\\$',\n") |
| | | .append(" type: 'datetime',\n") |
| | | .append(" value: data!==undefined?data['").append(column.getHumpName()).append("$'").append("]:null\n") |
| | | .append(" value: data!==undefined?data['").append(column.getHumpName()).append("\\$'").append("]:null\n") |
| | | .append(" });\n"); |
| | | } |
| | | } |