.
This commit is contained in:
181
src/main/java/net/tccn/service/MetadataService.java
Normal file
181
src/main/java/net/tccn/service/MetadataService.java
Normal 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, "");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user