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 @@
+
+
+
+
+
+
+ {{ 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);
+ }
+
+
+
}