TangCheng
昨天 c08ce876ade7c74214ee5345d47c2972faafc939
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/jsonflow/node/SMTJsonFlowNodeScript.java
@@ -1,6 +1,7 @@
package com.smtaiserver.smtaiserver.javaai.jsonflow.node;
import com.smtaiserver.smtaiserver.core.SMTAIServerApp;
import com.smtaiserver.smtaiserver.core.SMTAIServerRequest;
import com.smtaiserver.smtaiserver.database.SMTDatabase;
import com.smtaiserver.smtaiserver.database.SMTDatabase.DBQueryNotify;
import com.smtaiserver.smtaiserver.database.SMTDatabase.DBRecord;
@@ -11,23 +12,39 @@
import com.smtaiserver.smtaiserver.javaai.jsonflow.core.SMTJsonFlowManager;
import com.smtaiserver.smtaiserver.javaai.jsonflow.core.SMTJsonFlowNodeOnlyOutput;
import com.smtaiserver.smtaiserver.javaai.jsonflow.core.SMTJsonFlowScriptJet;
import com.smtservlet.core.SMTRequest;
import com.smtservlet.util.Json;
import com.smtservlet.util.SMTHttpClient;
import com.smtservlet.util.SMTJsonWriter;
import com.smtservlet.util.SMTStatic;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Function;
import org.mozilla.javascript.NativeArray;
import org.mozilla.javascript.NativeObject;
import org.osgi.service.component.annotations.Component;
public class SMTJsonFlowNodeScript extends SMTJsonFlowNodeOnlyOutput
import javax.annotation.Resource;
public class SMTJsonFlowNodeScript extends SMTJsonFlowNodeOnlyOutput
{
   public static class SMTJsonFlowNodeScriptArg
   public  class SMTJsonFlowNodeScriptArg
   {
      public SMTJsonFlowExecArg      _execArg;
      
      public SMTJsonFlowNodeScriptArg(SMTJsonFlowExecArg execArg)
@@ -36,8 +53,7 @@
      }
      public String getGlobalConfig(String key, String defaultValue) throws Exception {
        String globalConfig = (String) SMTAIServerApp.getApp().getGlobalConfig(key, defaultValue);
        return globalConfig;
            return (String) SMTAIServerApp.getApp().getGlobalConfig(key, defaultValue);
      }
      public String getNowDate() throws Exception {
         return SMTStatic.toString(new Date());
@@ -45,10 +61,71 @@
      public String getUUID() throws Exception {
         return  SMTStatic.newUUID();
      }
      public String getLoginUserIdByJs() throws Exception {
         return _execArg._tranReq.getLoginUserId();
      }
      public String sendPost(String url, Map<String, String> params) throws Exception {
         FormBody.Builder formBuilder = new FormBody.Builder();
         for (Map.Entry<String, String> entry : params.entrySet()) {
            formBuilder.add(entry.getKey(), entry.getValue());
         }
         RequestBody formBody = formBuilder.build();
         Request request = new Request.Builder()
               .url(url)
               .post(formBody)
               .addHeader("accept", "application/json")
               .addHeader("Content-Type", "application/x-www-form-urlencoded")
               .build();
         OkHttpClient client = new OkHttpClient();
         Response response = client.newCall(request).execute();
         if (!response.isSuccessful()) {
            throw new IOException("Unexpected code " + response);
         }
         if (response.body() != null) {
            return response.body().string();
         }
         return "";
      }
      public  void webSocketBroadcast(NativeObject nativeObject) throws Exception {
         SMTJsonWriter jsonWr = new SMTJsonWriter(false);
         SMTAIServerApp.convJSToJsonWriter(nativeObject, jsonWr);
         SMTAIServerApp.getApp().webSocketApp(jsonWr.toString());
         SMTAIServerApp.getApp().webSocketApp(jsonWr.getFullJson());
      }
      public Object llmAnswerToJson(String sJson)
      {
         Object object = SMTAIServerApp.convJsonToJS(SMTStatic.convLLMAnswerToJson(sJson, false));
         return object;
      }
      public Object stringToJson(String sJson)
      {
         Json json = Json.read(sJson);
         return SMTAIServerApp.convJsonToJS(json);
      }
      public Object jsonToString(Object jsObject)
      {
         if(jsObject instanceof NativeObject)
         {
            SMTJsonWriter jsonWr = new SMTJsonWriter(false);
            SMTAIServerApp.convJSToJsonWriter(jsObject, jsonWr);
            return jsonWr.getFullJson();
         }
         else if(jsObject instanceof NativeArray)
         {
            SMTJsonWriter jsonWr = new SMTJsonWriter(true);
            SMTAIServerApp.convJSToJsonWriter(jsObject, jsonWr);
            return jsonWr.getFullJson();
         }
         else
         {
            return SMTStatic.toString(jsObject);
         }
      }
      public Object getArg(String key)
@@ -338,7 +415,6 @@
      private int executeSQL(SMTDatabase db, String sql, NativeObject nvParams) throws Exception
      {
         List<Object> sqlParams = new ArrayList<>();
         List<NativeObject> listRecs = new ArrayList<>();
         try
         {
            // 解析出原始sql