.
This commit is contained in:
@@ -156,6 +156,18 @@ public class Kv<K,V> extends LinkedHashMap<K,V> {
|
||||
case "Double": _v = Double.parseDouble((String) v); break;
|
||||
default: _v = v;
|
||||
}
|
||||
} else if (v.getClass() == Integer.class) {
|
||||
switch (clazz.getSimpleName()) {
|
||||
case "long":
|
||||
case "Long": _v = (long) (int) v; break;
|
||||
case "int":
|
||||
case "Integer": _v = (int) v; break;
|
||||
case "short":
|
||||
case "Short": _v = (short) (int) v; break;
|
||||
case "float":
|
||||
case "Float": _v = (float) (int) v; break;
|
||||
default: _v = v;
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
@@ -109,6 +109,14 @@ public class MetaKit {
|
||||
return table.orElse(null);
|
||||
}
|
||||
|
||||
public static MetaTable getMetaTable(String name, String token) {
|
||||
Optional<MetaTable> any = getMetaTables().stream().filter(x -> {
|
||||
return x.getName().equals(name) && x.getSysPlatId().equals(getPlatId(token));
|
||||
}).findAny();
|
||||
|
||||
return any.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过 MetaLink[] 得到 MetaTable{}
|
||||
* @param links
|
||||
@@ -140,7 +148,7 @@ public class MetaKit {
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public static MetaService getMetaService(String name) {
|
||||
public static MetaService getMetaService(String name, String token) {
|
||||
Optional<MetaService> service = metaServices.stream().filter(x -> x.getName().equals(name)).findAny();
|
||||
//处理业务逻辑
|
||||
service.ifPresent(x -> {
|
||||
@@ -246,8 +254,8 @@ public class MetaKit {
|
||||
return cfg;
|
||||
};
|
||||
|
||||
public static Map cfg(String name) {
|
||||
MetaService metaService = getMetaService(name);
|
||||
public static Map cfg(String name, String token) {
|
||||
MetaService metaService = getMetaService(name, token);
|
||||
Kv<String, MetaTable> metaTables = getMetaTables(metaService, false);
|
||||
|
||||
List<String> shows = metaService.getShows();
|
||||
@@ -362,6 +370,30 @@ public class MetaKit {
|
||||
.set("details", _details);
|
||||
}
|
||||
|
||||
@Comment("业务导出表头配置")
|
||||
public Kv cfgExport(String name, String token) {
|
||||
MetaService metaService = getMetaService(name, token);
|
||||
|
||||
Kv<String, MetaTable> tables = getMetaTables(metaService, true);
|
||||
List<String> exports = metaService.getExports();
|
||||
|
||||
Kv kv = Kv.of();
|
||||
//从 meta-table 中得到字段label
|
||||
exports.forEach(x -> {
|
||||
try {
|
||||
String[] arr = x.split("[.]");
|
||||
MetaTable table = tables.get(arr[0]);
|
||||
|
||||
Optional<Field> any = table.getItems().stream().filter(y -> y.getName().equals(arr[1])).findAny();
|
||||
Field field = any.get();
|
||||
kv.put(x, field.getLabel());
|
||||
} catch (Exception e) {
|
||||
new IllegalArgumentException(String.format("字段信息处理异常:[%s]", x), e);
|
||||
}
|
||||
});
|
||||
return kv;
|
||||
}
|
||||
|
||||
//itemUpdate
|
||||
public static BiFunction<MetaTable, List<Field>, MetaTable> itemUpdate = (t, fields) -> {
|
||||
List<Field> items = t.getItems();
|
||||
@@ -376,9 +408,9 @@ public class MetaKit {
|
||||
};
|
||||
|
||||
//showUpdate
|
||||
public static BiFunction<String, List<String>, MetaService> showUpdate = (serviceKey, shows) -> {
|
||||
/*public static BiFunction<String, List<String>, MetaService> showUpdate = (name, shows) -> {
|
||||
|
||||
MetaService metaService = getMetaService(serviceKey);
|
||||
MetaService metaService = getMetaService(name, "");
|
||||
|
||||
MetaService _metaService = MetaService.dao.findByKey(metaService.getKey());
|
||||
_metaService.setShows(shows);
|
||||
@@ -386,7 +418,7 @@ public class MetaKit {
|
||||
|
||||
metaService.setShows(shows);//更新缓存
|
||||
return metaService;
|
||||
};
|
||||
};*/
|
||||
|
||||
|
||||
public static MetaTable getMetaTableByKey(String key) {
|
||||
|
||||
@@ -22,7 +22,7 @@ public class DbExecutors {
|
||||
String[] sqls = PARSER.parse(fBean);
|
||||
|
||||
//当前的业务 => 获取主表 信息 => 数据源信息 => 数据源对象 => 创建数据工具对象 => 查询数据
|
||||
MetaService metaService = MetaKit.getMetaService(fBean.getName());
|
||||
MetaService metaService = MetaKit.getMetaService(fBean.getName(), fBean.getPlatToken());
|
||||
|
||||
MetaTable mainTable = MetaKit.getMetaTableByAlias(metaService.getTable());
|
||||
|
||||
|
||||
@@ -8,13 +8,24 @@ import java.util.List;
|
||||
*/
|
||||
public class FBean {
|
||||
|
||||
private String name;//service key
|
||||
private String platToken; //plat token
|
||||
String name; // service key
|
||||
private String type; // 操作类型 list,export
|
||||
|
||||
private List<Filter> filters;//[{f:xx, v: v, type:t}] -- t,
|
||||
private List<Order> orders;//{f1: 1, f2: -1}
|
||||
private Limit limit;//{pn: 1, ps: 10}
|
||||
|
||||
//---------- getter/setter ------------
|
||||
|
||||
public void setPlatToken(String platToken) {
|
||||
this.platToken = platToken;
|
||||
}
|
||||
|
||||
public String getPlatToken() {
|
||||
return platToken;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@@ -11,12 +11,9 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
|
||||
/**
|
||||
* 查询的数据是否同库,
|
||||
* 是:支持副表过滤
|
||||
@@ -45,7 +42,7 @@ public class ParseMysql implements Parser {
|
||||
};
|
||||
|
||||
@Deprecated
|
||||
Function<FBean, Kv<String, MetaTable>> tablesFun = fbean -> {
|
||||
/*Function<FBean, Kv<String, MetaTable>> tablesFun = fbean -> {
|
||||
MetaService metaService = MetaKit.getMetaService(fbean.getName());
|
||||
List<Filter> filters = fbean.getFilters();
|
||||
List<String> shows = metaService.getShows();
|
||||
@@ -88,7 +85,7 @@ public class ParseMysql implements Parser {
|
||||
|
||||
|
||||
return tables;
|
||||
};
|
||||
};*/
|
||||
|
||||
Predicate<Kv<String, MetaTable>> sameDbFun = (kv) -> {
|
||||
String dbPlatId = null;
|
||||
@@ -104,7 +101,7 @@ public class ParseMysql implements Parser {
|
||||
|
||||
@Override
|
||||
public String[] parse(FBean fBean) {
|
||||
MetaService metaService = MetaKit.getMetaService(fBean.getName());
|
||||
MetaService metaService = MetaKit.getMetaService(fBean.getName(), fBean.getPlatToken());
|
||||
|
||||
Kv<String, MetaTable> tables = MetaKit.getMetaTables(metaService, false);//所有的关联表信息
|
||||
MetaTable metaTable = tables.get(metaService.getTable());//基础元数据
|
||||
|
||||
7
src/main/java/net/tccn/qtask/impl/QTaskShell.java
Normal file
7
src/main/java/net/tccn/qtask/impl/QTaskShell.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package net.tccn.qtask.impl;
|
||||
|
||||
/**
|
||||
* @author: liangxianyou
|
||||
*/
|
||||
public class QTaskShell {
|
||||
}
|
||||
@@ -1,19 +1,23 @@
|
||||
package net.tccn.service;
|
||||
|
||||
import com.lxyer.excel.poi.ExcelKit;
|
||||
import net.tccn.base.JBean;
|
||||
import net.tccn.base.Kv;
|
||||
import net.tccn.base.PageBean;
|
||||
import net.tccn.dbq.DbExecutors;
|
||||
import net.tccn.dbq.fbean.FBean;
|
||||
import net.tccn.meta.MetaTable;
|
||||
import org.redkale.net.http.HttpScope;
|
||||
import org.redkale.net.http.RestMapping;
|
||||
import org.redkale.net.http.RestParam;
|
||||
import org.redkale.net.http.RestService;
|
||||
import org.redkale.util.Comment;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
/**
|
||||
* 数据服务
|
||||
* 数据服务 对外提供服务
|
||||
* @author: liangxianyou at 2019/1/6 20:46.
|
||||
*/
|
||||
@RestService(name = "data", automapping = true, comment = "数据服务")
|
||||
@@ -27,6 +31,7 @@ public class DataService extends BaseService {
|
||||
public JBean findList(FBean fBean, @RestParam(name = "platToken") String token) {
|
||||
JBean jBean = new JBean();
|
||||
try {
|
||||
fBean.setPlatToken(token);
|
||||
PageBean page = DbExecutors.findPage(fBean);
|
||||
jBean.setBody(page);
|
||||
} catch (Exception e) {
|
||||
@@ -37,8 +42,8 @@ public class DataService extends BaseService {
|
||||
}
|
||||
|
||||
@RestMapping(name = "save", comment = "数据保存")
|
||||
public JBean save(String ks, Map data, @RestParam(name = "platToken") String token) {
|
||||
MetaTable metaTable = metadataService.findMetaTable(ks, token);
|
||||
public JBean save(String name, Map data, @RestParam(name = "platToken") String token) {
|
||||
//MetaTable metaTable = MetaKit.getMetaTable(ks, token);
|
||||
|
||||
//String sql = metaTable.buildSaveSql(data);
|
||||
|
||||
@@ -46,4 +51,23 @@ public class DataService extends BaseService {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Comment("数据导出excel")
|
||||
public HttpScope export(FBean fBean, @RestParam(name = "platToken") String token) {
|
||||
try {
|
||||
fBean.setPlatToken(token);
|
||||
PageBean page = DbExecutors.findPage(fBean);
|
||||
|
||||
ExcelKit.exportExcel(page.getRows(), Kv.of());
|
||||
|
||||
|
||||
return HttpScope.refer("excel").attr("data", page.getRows()).attr("heads", null);
|
||||
} catch (ExecutionException | InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return HttpScope.refer("excel");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import net.tccn.base.JBean;
|
||||
import net.tccn.base.Kv;
|
||||
import net.tccn.base.MetaKit;
|
||||
import net.tccn.dbq.Field;
|
||||
import net.tccn.dbq.jdbc.api.DbAccount;
|
||||
import net.tccn.meta.MetaLink;
|
||||
import net.tccn.meta.MetaService;
|
||||
import net.tccn.meta.MetaTable;
|
||||
@@ -13,7 +12,6 @@ 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.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -24,51 +22,6 @@ import java.util.stream.Collectors;
|
||||
@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, () -> {
|
||||
|
||||
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.getMetaService(key);
|
||||
fixme: jBean.set(0, "", MetaKit.builderCfg.apply(metaService));
|
||||
return jBean;
|
||||
}
|
||||
|
||||
@RestMapping(name = "cfg", auth = false, comment = " 功能配置")
|
||||
public JBean cfg(String name, @RestParam(name = "platToken") String token) {
|
||||
JBean jBean = JBean.by(0, "");
|
||||
|
||||
jBean.set(0, "", MetaKit.cfg(name));
|
||||
|
||||
return jBean;
|
||||
}
|
||||
|
||||
//----------- 数据平台 ---------------
|
||||
@RestMapping(name = "db_plat_list", comment = "数据平台")
|
||||
public List<DbAccount> dbPlatList() {
|
||||
return MetaKit.getDbPlats();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//----------- 元数据管理 ---------------
|
||||
@RestMapping(name = "tablelist", comment = "table列表")
|
||||
public JBean tableList(@RestParam(name = "platToken") String token, String catalog, String dbPlatId, String name) {
|
||||
@@ -113,7 +66,7 @@ public class MetadataService extends BaseService { //arango
|
||||
|
||||
MetaTable metaTable = null;
|
||||
if (!isEmpty.test(name)) {
|
||||
metaTable = findMetaTable(name, token);
|
||||
metaTable = MetaKit.getMetaTable(name, token);
|
||||
}
|
||||
if (metaTable == null && !isEmpty.test(alias)) {
|
||||
metaTable = MetaKit.getMetaTableByAlias(alias);
|
||||
@@ -142,7 +95,7 @@ public class MetadataService extends BaseService { //arango
|
||||
}
|
||||
|
||||
// 标识码重复校验
|
||||
MetaService metaService = MetaKit.getMetaService(service.getName());
|
||||
MetaService metaService = MetaKit.getMetaService(service.getName(), token);
|
||||
if (metaService != null && !metaService.getKey().equals(service.getKey())) {
|
||||
jBean.set(-1, "业务标识码被占用,修改业务标识码重试");
|
||||
break;
|
||||
@@ -162,13 +115,13 @@ public class MetadataService extends BaseService { //arango
|
||||
|
||||
@RestMapping(name = "service_info", comment = "service基本信息")
|
||||
public JBean serviceInfo(@RestParam(name = "platToken") String token, String name) {
|
||||
MetaService metaService = MetaKit.getMetaService(name);
|
||||
MetaService metaService = MetaKit.getMetaService(name, token);
|
||||
return JBean.by(0, "", metaService);
|
||||
}
|
||||
|
||||
@RestMapping(name = "service_detail", comment = "service详情")
|
||||
public JBean serviceDetail(@RestParam(name = "platToken") String token, String name) {
|
||||
MetaService metaService = MetaKit.getMetaService(name);
|
||||
MetaService metaService = MetaKit.getMetaService(name, token);
|
||||
Kv detail = MetaKit.buildeDetail(metaService);
|
||||
|
||||
return JBean.by(0, "", detail);
|
||||
@@ -199,7 +152,7 @@ public class MetadataService extends BaseService { //arango
|
||||
public JBean showSort(String serviceKey , List<String> items, @RestParam(name = "platToken") String token) {
|
||||
if (items == null || items.size() == 0) return null;
|
||||
|
||||
MetaService metaService = MetaKit.getMetaService(serviceKey);
|
||||
MetaService metaService = MetaKit.getMetaService(serviceKey, token);
|
||||
|
||||
metaService.setShows(items);
|
||||
metaService.update();
|
||||
@@ -211,7 +164,7 @@ public class MetadataService extends BaseService { //arango
|
||||
public List<String> exportSort(String serviceKey , List<String> items, @RestParam(name = "platToken") String token) {
|
||||
if (items == null || items.size() == 0) return null;
|
||||
|
||||
MetaService metaService = MetaKit.getMetaService(serviceKey);
|
||||
MetaService metaService = MetaKit.getMetaService(serviceKey, token);
|
||||
metaService.setExports(items);
|
||||
metaService.update();
|
||||
|
||||
@@ -223,7 +176,7 @@ public class MetadataService extends BaseService { //arango
|
||||
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);
|
||||
MetaTable metaTable = MetaKit.getMetaTable(serviceKey, token);
|
||||
//fixme: metaTable.setImports(items);
|
||||
metaTable.update();
|
||||
return items;
|
||||
@@ -247,7 +200,7 @@ public class MetadataService extends BaseService { //arango
|
||||
@RestParam(name = "filters") String filters,
|
||||
@RestParam(name = "platToken") String token) {
|
||||
List _filters = gson.fromJson(filters, List.class);
|
||||
MetaService metaService = MetaKit.getMetaService(serviceKey);
|
||||
MetaService metaService = MetaKit.getMetaService(serviceKey, token);
|
||||
metaService.setFilters(_filters);
|
||||
|
||||
metaService.update();
|
||||
@@ -338,4 +291,13 @@ public class MetadataService extends BaseService { //arango
|
||||
return jBean;
|
||||
}
|
||||
|
||||
// ------------------------------------ 对外服务 --------------------------------------
|
||||
@RestMapping(name = "cfg", auth = false, comment = " 功能配置")
|
||||
public JBean cfg(String name, @RestParam(name = "platToken") String token) {
|
||||
JBean jBean = JBean.by(0, "");
|
||||
|
||||
jBean.set(0, "", MetaKit.cfg(name, token));
|
||||
|
||||
return jBean;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ public class RunTest<T> {
|
||||
|
||||
@Test
|
||||
public void buildeDetailTest() {
|
||||
Kv kv = MetaKit.buildeDetail(MetaKit.getMetaService("user_service"));
|
||||
Kv kv = MetaKit.buildeDetail(MetaKit.getMetaService("user_service", "3421432"));
|
||||
|
||||
System.out.println(kv);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user