121 lines
3.9 KiB
Java
121 lines
3.9 KiB
Java
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¶={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¶={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;
|
||
}
|
||
|
||
//-------------------------------------------------------
|
||
}
|