Files
meta-kit/src/main/java/net/tccn/service/QtaskService.java
2019-04-04 17:47:29 +08:00

121 lines
3.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package net.tccn.service;
import net.tccn.base.JBean;
import net.tccn.base.Kv;
import net.tccn.dbq.jdbc.api.DbAccount;
import net.tccn.dbq.qtask.Qtask;
import net.tccn.plat.SysPlat;
import org.redkale.net.http.RestMapping;
import org.redkale.net.http.RestParam;
import org.redkale.net.http.RestService;
import java.sql.SQLException;
import java.util.function.Predicate;
/**
* @author: liangxianyou at 2018/11/13 18:14.
*/
@RestService(name = "qtask", automapping = true, comment = "qtask查询服务")
public class QtaskService extends BaseService {
private Predicate<String> checkObj = (s) -> s != null && s.startsWith("{") && s.endsWith("}");
public SysPlat getSysPlat(String token) {
return getT(token, SysPlat.class, () -> SysPlat.dao.findFirst(new SysPlat(token)));
}
///qtask/query?queryId=platform.list&para={id:211}
@RestMapping(name = "call", comment = "qtask查询")
public JBean call(String queryId, String para, @RestParam(name = "platToken") String token) {
JBean jBean = JBean.by(0, "");
do {
SysPlat sysPlat = getSysPlat(token);
if (sysPlat == null) {
jBean.set(-1, "平台信息未知"); break;
}
Qtask qtask = getQTask(queryId, sysPlat.getKey());
if (qtask == null) {
jBean.set(-1, "未知任务"); break;
}
if (!checkObj.test(para)) {
para = qtask.getPara();
}
Kv kv = null;
if (checkObj.test(para)) {
kv = BaseService.gson.fromJson(para, Kv.class);
}
try {
jBean.setBody(run(qtask, kv));
} catch (SQLException e) {
e.printStackTrace();
return jBean.set(-1, "数据查询失败", e.getMessage());
}
} while (false);
return jBean;
}
@RestMapping(name = "test", comment = "qtask调试")
public JBean test(Qtask qtask) {
JBean jBean = JBean.by(0, "");
do {
//check data
if (isEmpty.test(qtask.getSql())) {
jBean.set(-1, "查询失败请设置正确的【SQL】"); break;
}
if (isEmpty.test(qtask.getPlatId()) || isEmpty.test(qtask.getCatalog())) {
jBean.set(-1, "查询失败,请设置正确的【数据平台】"); break;
}
DbAccount dbPlat = DbAccount.dao.findByKey(qtask.getPlatId());//arangoSource.findById("db_plat/" + qTask.getPlatId(), DbAccount.class);
if (dbPlat == null) {
jBean.set(-1, "查询失败,请设置正确的【数据平台】"); break;
}
Kv kv = null;
if (checkObj.test(qtask.getPara())) {
try {
kv = BaseService.gson.fromJson(qtask.getPara(), Kv.class);
} catch (Exception e) {
jBean.set(-1, "查询失败,请设置正确的【查询参数】"); break;
}
}
try {
jBean.setBody(run(qtask, kv));
} catch (SQLException e) {
e.printStackTrace();
jBean.set(-1, e.getMessage());
}
} while (false);
return jBean;
}
// /qtask/query?queryId=platform.list&para={id:211}
@RestMapping(ignore = true, comment = "qtask查询数据")
private Object run(Qtask qTask, Kv kv) throws SQLException {
return null;
}
//----------- Qtask ---------------
@RestMapping(name = "qsave", comment = "qtask保存")
public JBean qtaskSave(Qtask qtask) {
JBean jBean = JBean.by(0, "");
return jBean;
}
@RestMapping(ignore = true, comment = "qtask获取")
public Qtask getQTask(String queryId, String sysPlatId) {
Qtask qtask = null;
return qtask;
}
//-------------------------------------------------------
}