This commit is contained in:
2019-03-07 10:24:29 +08:00
parent 6c8c683c31
commit e057d613b9
215 changed files with 70917 additions and 118 deletions

View File

@@ -0,0 +1,181 @@
package net.tccn.service;
import net.tccn.base.JBean;
import net.tccn.base.Kv;
import net.tccn.dbq.DbPlat;
import net.tccn.dbq.Field;
import net.tccn.dbq.qtask.SysPlat;
import net.tccn.meta.MetaKit;
import net.tccn.meta.MetaService;
import net.tccn.meta.MetaTable;
import org.redkale.net.http.RestMapping;
import org.redkale.net.http.RestParam;
import org.redkale.net.http.RestService;
import javax.annotation.Resource;
import java.util.Comparator;
import java.util.List;
import java.util.logging.Level;
import java.util.stream.Collectors;
/**
* @author: liangxianyou at 2018/10/17 16:59.
*/
@RestService(name = "meta", automapping = true, comment = "元数据服务")
public class MetadataService extends BaseService { //arango
@Resource
private QtaskService qtaskService;
public MetaTable findMetaTable(String name, String token) {
return getT("meta_cols_" + name + token, MetaTable.class, () -> {
SysPlat sysPlat = qtaskService.getSysPlat(token);
if (sysPlat == null) {
logger.log(Level.INFO, "平台信息未知");
throw new IllegalArgumentException("平台信息未知");
}
return MetaKit.getMetaTables()
.stream()
.filter(x -> {
//fixme: 平台过滤
return x.getName().equals(name);
})
.findAny()
.get();
});
}
@RestMapping(name = "list_cfg", auth = false, comment = "内容列表配置")
public JBean listCfg(String key, @RestParam(name = "platToken") String token) {
JBean jBean = JBean.by(0, "");
MetaService metaService = MetaKit.metaService(key);
fixme: jBean.set(0, "", MetaKit.builderCfg.apply(metaService));
return jBean;
}
//----------- 数据平台 ---------------
@RestMapping(name = "db_plat_list", comment = "数据平台")
public List<DbPlat> dbPlatList() {
return MetaKit.getDbPlats();
}
//----------- 元数据管理 ---------------
@RestMapping(name = "tablelist", comment = "table列表")
public JBean tableList(@RestParam(name = "platToken") String token,
String catalog,
String dbPlatId,
String name) {
JBean jBean = JBean.by(0, "");
SysPlat sysPlat = qtaskService.getSysPlat(token);
if (sysPlat == null) {
return jBean.set(-1, "平台信息未知");
}
List<Kv> list = MetaKit.getMetaTables()
.stream()
.filter(x -> {
return (isEmpty.test(catalog) || catalog.equals(x.getCatalog())) &&
(isEmpty.test(dbPlatId) || dbPlatId.equals(x.getDbPlatId())) &&
(isEmpty.test(name) || x.getName().contains(name));
})
.sorted(Comparator.comparing(MetaTable::getName))
.map(x -> {
//组装返回的数据
Kv kv = Kv.of("name", x.getName())
.set("comment", x.getComment())
.set("catalog", x.getCatalog());
MetaKit.getDbPlats().stream().filter(d -> d.getKey().equals(x.getDbPlatId())).findAny().ifPresent(d -> kv.set("dbPlatName", d.getName()));
return kv;
})
.collect(Collectors.toList());
return jBean.setBody(list);
}
@RestMapping(name = "tableinfo", comment = "table详情")
public JBean tableInfo(@RestParam(name = "platToken") String token, String name) {
return JBean.by(0, "", findMetaTable(name, token));
}
//修改item的排序
@RestMapping(name = "itemsort", comment = "字段排序")
public String[] itemSortSave(String serviceKey , String[] items, @RestParam(name = "platToken") String token) {
MetaTable metaTable = findMetaTable(serviceKey, token);
MetaKit.sortItem.apply(metaTable, items);
metaTable.update();
return items;
}
@RestMapping(name = "itemupdate", comment = "字段修改")
public List<Field> itemUpdate(String serviceKey , List<Field> items, @RestParam(name = "platToken") String token) {
MetaTable metaTable = findMetaTable(serviceKey, token);
MetaKit.itemUpdate.apply(metaTable, items);
metaTable.update();
return items;
}
@RestMapping(name = "showsort", comment = "展示字段修改")
public List<String> showSort(String serviceKey , List<String> items, @RestParam(name = "platToken") String token) {
if (items == null || items.size() == 0) return null;
MetaTable metaTable = findMetaTable(serviceKey, token);
//fixme: metaTable.setShows(items);
metaTable.update();
return items;
}
@RestMapping(name = "exportsort", comment = "导出字段排序保存")
public List<String> exportSort(String serviceKey , List<String> items, @RestParam(name = "platToken") String token) {
if (items == null || items.size() == 0) return null;
MetaTable metaTable = findMetaTable(serviceKey, token);
//fixme: metaTable.setExports(items);
metaTable.update();
return items;
}
@RestMapping(name = "importsort", comment = "导入字段保存")
public List<String> importSort(String serviceKey , List<String> items, @RestParam(name = "platToken") String token) {
if (isEmpty.test(items)) return null;
MetaTable metaTable = findMetaTable(serviceKey, token);
//fixme: metaTable.setImports(items);
metaTable.update();
return items;
}
@RestMapping(name = "dbplatupdate", comment = "数据平台修改")
public JBean dbPlatUpdate(MetaTable metaTable, @RestParam(name = "platToken") String token) {
MetaTable _metaTable = MetaKit.getMetaTableByKey(metaTable.getKey());
_metaTable.setComment(metaTable.getComment());
_metaTable.setCatalog(metaTable.getCatalog());
_metaTable.setDbPlatId(metaTable.getDbPlatId());
_metaTable.setCatalog(metaTable.getCatalog());
_metaTable.update();
return JBean.by(0, "");
}
@RestMapping(name = "filter_update", comment = "查询配置修改")
public JBean filterUpdate(@RestParam(name = "serviceKey") String serviceKey,
@RestParam(name = "filters") String filters,
@RestParam(name = "platToken") String token) {
List _filters = gson.fromJson(filters, List.class);
MetaTable metaTable = findMetaTable(serviceKey, token);
//fixme: metaTable.setFilters(_filters);
metaTable.update();
return JBean.by(0, "");
}
}