|  |  |  | 
|---|
|  |  |  | 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"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|