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 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; } //------------------------------------------------------- }