|
|
@@ -0,0 +1,211 @@
|
|
|
+package com.java110.code.web;
|
|
|
+
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.java110.code.BaseGenerator;
|
|
|
+
|
|
|
+public class GeneratorManagerComponent extends BaseGenerator {
|
|
|
+
|
|
|
+ public void generator(JSONObject data) {
|
|
|
+
|
|
|
+ //处理组件
|
|
|
+ generatorComponentHtml(data);
|
|
|
+ generatorComponentJs(data);
|
|
|
+ generatorComponentJava(data);
|
|
|
+ genneratorIListSmo(data);
|
|
|
+ genneratorListSmoImpl(data);
|
|
|
+ genneratorListListener(data);
|
|
|
+ genneratorVo(data);
|
|
|
+
|
|
|
+ genneratorDataVo(data);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成 html js java 类
|
|
|
+ *
|
|
|
+ * @param data
|
|
|
+ */
|
|
|
+ private void generatorComponentHtml(JSONObject data) {
|
|
|
+
|
|
|
+ StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/manage/manage.html").getFile());
|
|
|
+ String fileContext = sb.toString();
|
|
|
+
|
|
|
+ fileContext = super.replaceTemplateContext(fileContext, data);
|
|
|
+
|
|
|
+ // 处理 th 信息
|
|
|
+
|
|
|
+ StringBuffer thSb = new StringBuffer();
|
|
|
+ StringBuffer tdSb = new StringBuffer();
|
|
|
+ thSb.append(" <th>" + data.getString("templateKeyName") + "</th>\n");
|
|
|
+
|
|
|
+ tdSb.append(" <td>{{" + data.getString("templateCode") + "." + data.getString("templateKey") + "}}</td>\n");
|
|
|
+
|
|
|
+ JSONArray columns = data.getJSONArray("columns");
|
|
|
+ for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
|
|
|
+ JSONObject column = columns.getJSONObject(columnIndex);
|
|
|
+ thSb.append(" <th>" + column.getString("cnCode") + "</th>\n");
|
|
|
+
|
|
|
+ tdSb.append(" <td>{{" + data.getString("templateCode") + "." + column.getString("code") + "}}</td>\n");
|
|
|
+ }
|
|
|
+ thSb.append(" <th class=\"text-right\">操作</th>\n");
|
|
|
+ tdSb.append(" <td><div class=\"btn-group\">\n" +
|
|
|
+ " <button class=\"btn-white btn btn-xs\" v-on:click=\"_openEdit"+toUpperCaseFirstOne(data.getString("templateCode"))+"Model("+data.getString("templateCode")+")\">修改</button>\n" +
|
|
|
+ " </div>\n" +
|
|
|
+ " <div class=\"btn-group\">\n" +
|
|
|
+ " <button class=\"btn-white btn btn-xs\" v-on:click=\"_openDel"+toUpperCaseFirstOne(data.getString("templateCode"))+"Model("+data.getString("templateCode")+")\">删除</button>\n" +
|
|
|
+ " </div></td>\n");
|
|
|
+
|
|
|
+ fileContext = fileContext.replace("@@columnsCnCode@@", thSb.toString())
|
|
|
+ .replace("@@columnsName@@", tdSb.toString());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ String writePath = this.getClass().getResource("/").getPath()
|
|
|
+ +"out/web/component/"+data.getString("templateCode")+"-manage/"+data.getString("templateCode")+"Manage.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/manage/manage.js").getFile());
|
|
|
+ String fileContext = sb.toString();
|
|
|
+
|
|
|
+ fileContext = super.replaceTemplateContext(fileContext, data);
|
|
|
+
|
|
|
+ String writePath = this.getClass().getResource("/").getPath()
|
|
|
+ +"out/web/component/"+data.getString("templateCode")+"-manage/"+data.getString("templateCode")+"Manage.js";
|
|
|
+ System.out.printf("writePath: " + writePath);
|
|
|
+ writeFile(writePath,
|
|
|
+ fileContext);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成 html js java 类
|
|
|
+ *
|
|
|
+ * @param data
|
|
|
+ */
|
|
|
+ private void generatorComponentJava(JSONObject data) {
|
|
|
+
|
|
|
+ StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/manage/ManageComponent.java").getFile());
|
|
|
+ String fileContext = sb.toString();
|
|
|
+
|
|
|
+ fileContext = super.replaceTemplateContext(fileContext, data);
|
|
|
+
|
|
|
+ String writePath = this.getClass().getResource("/").getPath()
|
|
|
+ +"out/web/component/java/"+data.getString("templateCode")+"/"+toUpperCaseFirstOne(data.getString("templateCode"))+"ManageComponent.java";
|
|
|
+ System.out.printf("writePath: " + writePath);
|
|
|
+ writeFile(writePath,
|
|
|
+ fileContext);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成接口类
|
|
|
+ * @param data
|
|
|
+ */
|
|
|
+ private void genneratorIListSmo(JSONObject data){
|
|
|
+ StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/manage/IListSMO.java").getFile());
|
|
|
+ String fileContext = sb.toString();
|
|
|
+
|
|
|
+ fileContext = super.replaceTemplateContext(fileContext, data);
|
|
|
+
|
|
|
+ String writePath = this.getClass().getResource("/").getPath()
|
|
|
+ +"out/web/smo/"+data.getString("templateCode")+"/IList"+toUpperCaseFirstOne(data.getString("templateCode"))+"sSMO.java";
|
|
|
+ System.out.printf("writePath: " + writePath);
|
|
|
+ writeFile(writePath,
|
|
|
+ fileContext);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成接口类
|
|
|
+ * @param data
|
|
|
+ */
|
|
|
+ private void genneratorListSmoImpl(JSONObject data){
|
|
|
+ StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/manage/ListSMOImpl.java").getFile());
|
|
|
+ String fileContext = sb.toString();
|
|
|
+
|
|
|
+ fileContext = super.replaceTemplateContext(fileContext, data);
|
|
|
+
|
|
|
+ String writePath = this.getClass().getResource("/").getPath()
|
|
|
+ +"out/web/smo/"+data.getString("templateCode")+"/List"+toUpperCaseFirstOne(data.getString("templateCode"))+"sSMOImpl.java";
|
|
|
+ System.out.printf("writePath: " + writePath);
|
|
|
+ writeFile(writePath,
|
|
|
+ fileContext);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成API 侦听处理类
|
|
|
+ * @param data
|
|
|
+ */
|
|
|
+ private void genneratorListListener(JSONObject data){
|
|
|
+ StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/manage/ListListener.java").getFile());
|
|
|
+ String fileContext = sb.toString();
|
|
|
+
|
|
|
+ fileContext = super.replaceTemplateContext(fileContext, data);
|
|
|
+
|
|
|
+ String writePath = this.getClass().getResource("/").getPath()
|
|
|
+ +"out/api/listener/"+data.getString("templateCode")+"/List"+toUpperCaseFirstOne(data.getString("templateCode"))+"sListener.java";
|
|
|
+ System.out.printf("writePath: " + writePath);
|
|
|
+ writeFile(writePath,
|
|
|
+ fileContext);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void genneratorVo(JSONObject data){
|
|
|
+ StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/manage/ApiVo.java").getFile());
|
|
|
+ String fileContext = sb.toString();
|
|
|
+
|
|
|
+ fileContext = super.replaceTemplateContext(fileContext, data);
|
|
|
+
|
|
|
+ String writePath = this.getClass().getResource("/").getPath()
|
|
|
+ +"out/api/vo/"+data.getString("templateCode")+"/Api"+toUpperCaseFirstOne(data.getString("templateCode"))+"Vo.java";
|
|
|
+ System.out.printf("writePath: " + writePath);
|
|
|
+ writeFile(writePath,
|
|
|
+ fileContext);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void genneratorDataVo(JSONObject data){
|
|
|
+ StringBuffer sb = readFile(GeneratorStart.class.getResource("/web/manage/ApiDataVo.java").getFile());
|
|
|
+ String fileContext = sb.toString();
|
|
|
+
|
|
|
+ fileContext = super.replaceTemplateContext(fileContext, data);
|
|
|
+ JSONArray columns = data.getJSONArray("columns");
|
|
|
+ String variable = "";
|
|
|
+ String variableGetSet = "";
|
|
|
+ for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
|
|
|
+ JSONObject column = columns.getJSONObject(columnIndex);
|
|
|
+ String key = column.getString("code");
|
|
|
+ variable += "private String " + key + ";\n";
|
|
|
+
|
|
|
+ variableGetSet += "public String get" + toUpperCaseFirstOne(key) + "() {\n"
|
|
|
+ + " return " + key + ";\n"
|
|
|
+ + " }\n";
|
|
|
+ variableGetSet += "public void set" + toUpperCaseFirstOne(key) + "(String " + key + ") {\n"
|
|
|
+ + " this." + key + " = " + key + ";\n"
|
|
|
+ + " }\n";
|
|
|
+ }
|
|
|
+
|
|
|
+ fileContext = fileContext.replace("@@templateColumns@@", variable + variableGetSet);
|
|
|
+
|
|
|
+ String writePath = this.getClass().getResource("/").getPath()
|
|
|
+ +"out/api/vo/"+data.getString("templateCode")+"/Api"+toUpperCaseFirstOne(data.getString("templateCode"))+"DataVo.java";
|
|
|
+ System.out.printf("writePath: " + writePath);
|
|
|
+ writeFile(writePath,
|
|
|
+ fileContext);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|