From 605b9a1a15bcb8b5186ffd708691634559aeb1e9 Mon Sep 17 00:00:00 2001
From: wuxw7 <wuxw7@asiainfo.com>
Date: 星期一, 23 四月 2018 16:36:41 +0800
Subject: [PATCH] 调整c_service_sql表,加入执行java代码脚本功能
---
java110-service/src/main/java/com/java110/service/smo/impl/QueryServiceSMOImpl.java | 36 ++++++++++++++++++++++++++++++++++++
1 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/java110-service/src/main/java/com/java110/service/smo/impl/QueryServiceSMOImpl.java b/java110-service/src/main/java/com/java110/service/smo/impl/QueryServiceSMOImpl.java
index f56171a..37f8d25 100644
--- a/java110-service/src/main/java/com/java110/service/smo/impl/QueryServiceSMOImpl.java
+++ b/java110-service/src/main/java/com/java110/service/smo/impl/QueryServiceSMOImpl.java
@@ -1,5 +1,6 @@
package com.java110.service.smo.impl;
+import bsh.Interpreter;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONPath;
@@ -48,6 +49,9 @@
if (CommonConstant.QUERY_MODEL_SQL.equals(currentServiceSql.getQueryModel())) {
doExecuteSql(dataQuery);
return;
+ }else if(CommonConstant.QUERY_MODE_JAVA.equals(currentServiceSql.getQueryModel())){
+ doExecuteJava(dataQuery);
+ return ;
}
doExecuteProc(dataQuery);
}catch (BusinessException e){
@@ -72,6 +76,9 @@
if (CommonConstant.QUERY_MODEL_SQL.equals(currentServiceSql.getQueryModel())) {
doExecuteUpdateSql(dataQuery);
return;
+ }else if(CommonConstant.QUERY_MODE_JAVA.equals(currentServiceSql.getQueryModel())){
+ doExecuteJava(dataQuery);
+ return ;
}
doExecuteUpdateProc(dataQuery);
}catch (BusinessException e){
@@ -123,6 +130,35 @@
throw new BusinessException(ResponseConstant.RESULT_CODE_INNER_ERROR,"鏁版嵁浜や簰寮傚父銆傘�傘��");
}
}
+
+ /**
+ * 鎵цjava鑴氭湰
+ * @param dataQuery
+ * @throws BusinessException
+ */
+ private void doExecuteJava(DataQuery dataQuery) throws BusinessException{
+ try {
+ JSONObject params = dataQuery.getRequestParams();
+ String javaCode = dataQuery.getServiceSql().getJavaScript();
+
+ Interpreter interpreter = new Interpreter();
+ interpreter.eval(javaCode);
+ String param = "";
+ for(String key : params.keySet()){
+ param += (params.getString(key) + ",");
+ }
+
+ if(param.endsWith(",")){
+ param = param.substring(0,param.length()-1);
+ }
+
+ dataQuery.setResponseInfo(ResponseTemplateUtil.createBusinessResponseJson(ResponseConstant.RESULT_CODE_SUCCESS,
+ "鎴愬姛",JSONObject.parseObject(interpreter.eval("execute("+param+")").toString())));
+ }catch (Exception e){
+ logger.error("鏁版嵁浜や簰寮傚父锛�",e);
+ throw new BusinessException(ResponseConstant.RESULT_CODE_INNER_ERROR,"鏁版嵁浜や簰寮傚父銆傘�傘��");
+ }
+ }
/**
* {"PARAM:"{
"param1": "$.a.#A#Object",
--
Gitblit v1.8.0