This commit is contained in:
2019-03-18 17:10:52 +08:00
parent e057d613b9
commit 7ef48dfc3e
37 changed files with 827 additions and 258 deletions

View File

@@ -0,0 +1,16 @@
package net.tccn.meta;
import net.tccn.base.JBean;
import net.tccn.qtask.QTask;
/**
* Created by liangxianyou at 2019/3/7 16:13.
*/
public class MetaExecutor {
public JBean execute(Task task) {
return null;
}
}

View File

@@ -1,7 +1,7 @@
package net.tccn.meta;
import net.tccn.base.Kv;
import net.tccn.dbq.DbPlat;
import net.tccn.dbq.jdbc.api.DbAccount;
import net.tccn.dbq.Field;
import net.tccn.dbq.fbean.FilterType;
@@ -13,6 +13,7 @@ import java.util.Map;
import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
@@ -25,14 +26,14 @@ public class MetaKit {
private static List<MetaLink> metaLinks;
private static List<MetaService> metaServices;
private static List<DbPlat> dbPlats;
private static List<DbAccount> dbPlats;
static {
metaTables = MetaTable.dao.find();
metaLinks = MetaLink.dao.find();
metaServices = MetaService.dao.find();
dbPlats = DbPlat.dao.find();
dbPlats = DbAccount.dao.find();
}
//----- get/set ----
@@ -56,11 +57,11 @@ public class MetaKit {
return metaServices;
}
public static List<DbPlat> getDbPlats() {
public static List<DbAccount> getDbPlats() {
return dbPlats;
}
public static void setDbPlats(List<DbPlat> dbPlats) {
public static void setDbPlats(List<DbAccount> dbPlats) {
MetaKit.dbPlats = dbPlats;
}
@@ -74,7 +75,7 @@ public class MetaKit {
* @param alias
* @return
*/
private static MetaTable metaTableByAlias(String alias) {
public static MetaTable getMetaTableByAlias(String alias) {
Optional<MetaTable> table = metaTables.stream().filter(x -> x.getAlias().equals(alias)).findAny();
return table.orElse(null);
}
@@ -114,9 +115,9 @@ public class MetaKit {
Optional<MetaService> service = metaServices.stream().filter(x -> x.getName().equals(name)).findAny();
//处理业务逻辑
service.ifPresent(x -> {
x.setMetaTable(metaTableByAlias(x.getTable()));
x.setMetaLinks(metaLinks(x.getLinks()));
x.setTables(metaTables(x.getMetaLinks()));
//x.setMetaTable(metaTableByAlias(x.getTable()));
//x.setMetaLinks(metaLinks(x.getLinks()));
//x.setTables(metaTables(x.getMetaLinks()));
});
return service.orElse(null);
}
@@ -149,7 +150,7 @@ public class MetaKit {
public static Function<String, Field> getField = (n) -> {
String[] arr = n.split("[.]");
MetaTable metaTable = metaTableByAlias(arr[0]);
MetaTable metaTable = getMetaTableByAlias(arr[0]);
return metaTable.getItems().stream().filter(x -> x.getName().equals(arr[1])).findAny().orElse(null);
};
@@ -229,8 +230,51 @@ public class MetaKit {
return t;
};
//showUpdate
public static BiFunction<String, List<String>, MetaService> showUpdate = (serviceKey, shows) -> {
MetaService metaService = metaService(serviceKey);
MetaService _metaService = MetaService.dao.findByKey(metaService.getKey());
_metaService.setShows(shows);
_metaService.update();
metaService.setShows(shows);//更新缓存
return metaService;
};
public static MetaTable getMetaTableByKey(String key) {
return metaTables.stream().filter(x -> x.getKey().equals(key)).findAny().orElse(null);
};
}
public static List<MetaLink> getMetaLinks(String t, List<String> shows, List<String> filters) {
Predicate<String> contain = s -> {
for (String item : shows) {
if (s.equals(item.split("[.]")[0])) {
return true;
}
}
for (String item : filters) {
if (s.equals(item.split("[.]")[0])) {
return true;
}
}
return false;
};
//得到直接关联
//1、直接关联 表: t.equals(x.getTables()[0]) || t.equals(x.getTables()[1]
//2、关联且有过滤
//3、关联有展示
List<MetaLink> links = metaLinks.stream()
.filter(x -> {
return (t.equals(x.getTables()[0]) || t.equals(x.getTables()[1]))
&& (contain.test(x.getTables()[0]) || contain.test(x.getTables()[1]));
})
.collect(Collectors.toList());
return links;
}
}

View File

@@ -0,0 +1,7 @@
package net.tccn.meta;
/**
* Created by liangxianyou at 2019/3/7 16:13.
*/
public class MetaParser {
}

View File

@@ -16,7 +16,8 @@ public class MetaService extends Doc<MetaService> {
private String name; //业务标识
private String table; //主体表别名
private List<String> links; //["link._key1","link._key2"]
private String comment; //业务中文名
//private List<String> links; //["link._key1","link._key2"]
private List<String> shows = new ArrayList<>();
@@ -24,9 +25,9 @@ public class MetaService extends Doc<MetaService> {
private List<Map> filters = new ArrayList<>();
//待组装数据
private MetaTable metaTable;
private List<MetaLink> metaLinks;//[{alias:"b", table:"dept", link:[mk,lk]}, xxxx]
private Map<String, MetaTable> tables;
//private MetaTable metaTable;
//private List<MetaLink> metaLinks;//[{alias:"b", table:"dept", link:[mk,lk]}, xxxx]
//private Map<String, MetaTable> tables;
//-------------------------------------------
public String getName() {
@@ -45,13 +46,21 @@ public class MetaService extends Doc<MetaService> {
this.table = table;
}
public List<String> getLinks() {
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
/*public List<String> getLinks() {
return links;
}
public void setLinks(List<String> links) {
this.links = links;
}
}*/
public List<String> getShows() {
return shows;
@@ -77,27 +86,27 @@ public class MetaService extends Doc<MetaService> {
this.filters = filters;
}
public MetaTable getMetaTable() {
/*public MetaTable getMetaTable() {
return metaTable;
}
public void setMetaTable(MetaTable metaTable) {
this.metaTable = metaTable;
}
}*/
public List<MetaLink> getMetaLinks() {
/*public List<MetaLink> getMetaLinks() {
return metaLinks;
}
public void setMetaLinks(List<MetaLink> metaLinks) {
this.metaLinks = metaLinks;
}
}*/
public Map<String, MetaTable> getTables() {
/*public Map<String, MetaTable> getTables() {
return tables;
}
public void setTables(Map<String, MetaTable> tables) {
this.tables = tables;
}
}*/
}

View File

@@ -0,0 +1,7 @@
package net.tccn.meta;
/**
* Created by liangxianyou at 2019/3/7 16:24.
*/
public class Task {
}