package com.java110.code.web; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.code.back.BaseGenerator; import com.java110.code.util.FileUtilBase; /** * @ClassName GeneratorChooseComponent * @Description TODO * @Author wuxw * @Date 2019/7/27 10:26 * @Version 1.0 * add by wuxw 2019/7/27 **/ public class GeneratorChooseComponent extends BaseGenerator { public void generator(JSONObject data) throws Exception { //处理组件 generatorComponentHtml(data); generatorComponentJs(data); //generatorComponentJava(data); } /** * 生成 html js java 类 * * @param data */ private void generatorComponentHtml(JSONObject data) { StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/choose/choose.html").getFile()); String fileContext = sb.toString(); fileContext = super.replaceTemplateContext(fileContext, data); // 处理 th 信息 StringBuffer thSb = new StringBuffer(); StringBuffer tdSb = new StringBuffer(); thSb.append(" " + data.getString("templateKeyName") + "\n"); tdSb.append(" {{" + data.getString("templateCode") + "." + data.getString("templateKey") + "}}\n"); JSONArray columns = data.getJSONArray("columns"); for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) { JSONObject column = columns.getJSONObject(columnIndex); thSb.append(" " + column.getString("cnCode") + "\n"); tdSb.append(" {{" + data.getString("templateCode") + "." + column.getString("code") + "}}\n"); } thSb.append(" 操作\n"); fileContext = fileContext.replace("@@columnsCnCode@@", thSb.toString()) .replace("@@columnsName@@", tdSb.toString()); String writePath = this.getClass().getResource("/").getPath() + "out/web/components/" + data.getString("directories") + "/choose" + toUpperCaseFirstOne(data.getString("templateCode")) + "/choose" + toUpperCaseFirstOne(data.getString("templateCode")) + ".html"; System.out.printf("writePath: " + writePath); writeFile(writePath, fileContext); } /** * 生成 html js java 类 * * @param data */ private void generatorComponentJs(JSONObject data) { StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/choose/choose.js").getFile()); String fileContext = sb.toString(); fileContext = super.replaceTemplateContext(fileContext, data); String writePath = this.getClass().getResource("/").getPath() + "out/web/components/" + data.getString("directories") + "/choose" + toUpperCaseFirstOne(data.getString("templateCode")) + "/choose" + toUpperCaseFirstOne(data.getString("templateCode")) + ".js"; System.out.printf("writePath: " + writePath); writeFile(writePath, fileContext); } /** * 生成 html js java 类 * * @param data */ private void generatorComponentJava(JSONObject data) throws Exception { StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/choose/ChooseComponent.java").getFile()); String fileContext = sb.toString(); fileContext = super.replaceTemplateContext(fileContext, data); String writePath = this.getClass().getResource("/").getPath() + "out/web/component/java/" + data.getString("templateCode") + "/Choose" + toUpperCaseFirstOne(data.getString("templateCode")) + "Component.java"; System.out.printf("writePath: " + writePath); writeFile(writePath, fileContext); //复制生成的文件到对应分区目录下 FileUtilBase.copyfile(writePath, "FrontService\\src\\main\\java\\com\\java110\\front\\components\\" + data.getString("templateCode") + "/Choose" + toUpperCaseFirstOne(data.getString("templateCode")) + "Component.java"); } }