From c3b3cec3cbe3b3d7af3186ea0e7dcc4e99ff71d1 Mon Sep 17 00:00:00 2001 From: lxyer <237809796@qq.com> Date: Mon, 15 Apr 2019 18:58:48 +0800 Subject: [PATCH] . --- root/api/meta.js | 4 +- root/metadata/metaLink.html | 66 ++++++++++++++++++- src/main/java/net/tccn/base/TplKit.java | 8 +++ .../net/tccn/service/MetadataService.java | 28 +++++++- src/main/resources/tpl/_t.tpl | 7 ++ src/test/java/RunTest.java | 32 +++++++++ 6 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 src/main/resources/tpl/_t.tpl diff --git a/root/api/meta.js b/root/api/meta.js index 93fa584..79fefce 100644 --- a/root/api/meta.js +++ b/root/api/meta.js @@ -48,8 +48,8 @@ const meta = { callback(json) }) }, - linkList() { - return red.postX('/meta/link_list') + tableLinkList() { + return red.postX('/meta/table_link_list') }, linkSave({link}) { return red.postX('/meta/link_save', {link: JSON.stringify(link)}) diff --git a/root/metadata/metaLink.html b/root/metadata/metaLink.html index b6f43af..9fe9745 100644 --- a/root/metadata/metaLink.html +++ b/root/metadata/metaLink.html @@ -1,3 +1,33 @@ +
@@ -22,31 +52,61 @@
+ +
+
+
DB-Table
+ + +
+ +
+ {{ tableAlias }} +
\ No newline at end of file diff --git a/src/main/java/net/tccn/base/TplKit.java b/src/main/java/net/tccn/base/TplKit.java index 9603669..dd27d20 100644 --- a/src/main/java/net/tccn/base/TplKit.java +++ b/src/main/java/net/tccn/base/TplKit.java @@ -112,6 +112,14 @@ public class TplKit { return sqlPara.getSql().replaceAll("[\\s]+", " "); } + public String getTpl(String key, Map data, boolean delSpace) { + if (!hadParse) + parseTpl(); + SqlPara sqlPara = kit.getSqlPara(key, data); + + return delSpace ? sqlPara.getSql().replaceAll("[\\s]+", " ") : sqlPara.getSql(); + } + public String getTpl(String key, Object m) { if (!hadParse) parseTpl(); diff --git a/src/main/java/net/tccn/service/MetadataService.java b/src/main/java/net/tccn/service/MetadataService.java index 9ba474e..3991872 100644 --- a/src/main/java/net/tccn/service/MetadataService.java +++ b/src/main/java/net/tccn/service/MetadataService.java @@ -200,6 +200,32 @@ public class MetadataService extends BaseService { //arango return JBean.by(0, ""); } + @RestMapping(name = "table_link_list", comment = "实体表,包含link信息的列表") + public JBean tableLinkList(@RestParam(name = "platToken") String token) { + JBean jBean = new JBean(); + + List list = + MetaKit.getMetaTables().stream().filter(x -> + (isEmpty.test(token) || x.getSysPlatId().equals(platId(token))) + ).map(x -> { + Kv kv = Kv.of("name", x.getName()) + .set("comment", x.getComment()) + .set("alias", x.getAlias()) + .set("linkCount", 0); + + //关联表数量 + long count = MetaKit.getMetaLinks().stream().filter(link -> { + String[] tables = link.getTables(); + return x.getAlias().equals(tables[0]) || x.getAlias().equals(tables[1]); + }).count(); + kv.set("linkCount", count); + + return kv; + }).collect(Collectors.toList()); + + return jBean.setBody(list); + } + @RestMapping(name = "link_list", comment = "实体关系列表") public JBean linkList() { JBean jBean = new JBean(); @@ -210,7 +236,7 @@ public class MetadataService extends BaseService { //arango return jBean; } - @RestMapping(name = "link_list", comment = "实体关系列表") + @RestMapping(name = "link_save", comment = "实体关系列表") public JBean linkSave(MetaLink link, @RestParam(name = "platToken") String token) { if (link.getKey() != null) { link.update(); diff --git a/src/main/resources/tpl/_t.tpl b/src/main/resources/tpl/_t.tpl new file mode 100644 index 0000000..a15cb4f --- /dev/null +++ b/src/main/resources/tpl/_t.tpl @@ -0,0 +1,7 @@ +#sql("service.method") + @RestMapping(name = "#(url)", comment = "#(comment)") + public JBean #(methodName)() { + + return JBean.OK; + } +#end \ No newline at end of file diff --git a/src/test/java/RunTest.java b/src/test/java/RunTest.java index 3ebe06e..2a01635 100644 --- a/src/test/java/RunTest.java +++ b/src/test/java/RunTest.java @@ -189,4 +189,36 @@ public class RunTest { System.out.println(metaTables.size()); } + TplKit tplKit = TplKit.use(); + + @Test + public void buildMethod() { + tplKit.addTpl("/tpl/_t.tpl"); + + buildMethod("table_link_list", "实体表,包含link信息的列表"); + } + + private void buildMethod(String url, String comment) { + + String[] arr = url.split("_"); + String methodName = ""; + + for (int i = 0; i < arr.length; i++) { + if (i == 0) { + methodName = arr[i].toLowerCase(); + } else { + methodName += toUpperCaseFirst(arr[i].toLowerCase()); + } + } + + Kv kv = Kv.of("url", url).set("comment", comment).set("methodName", methodName); + String tpl = tplKit.getTpl("service.method", kv, false); + System.out.println(tpl); + } + private String toUpperCaseFirst(String str){ + return str.substring(0, 1).toUpperCase() + str.substring(1); + } + + + }