TangCheng
2025-03-26 4ebeb46fb165778433d2ef22b1e502cb2b381294
脚本节点支持getGlobalConfig和queryWeb
已修改1个文件
53 ■■■■■ 文件已修改
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/jsonflow/node/SMTJsonFlowNodeScript.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/jsonflow/node/SMTJsonFlowNodeScript.java
@@ -21,6 +21,7 @@
import com.smtaiserver.smtaiserver.javaai.jsonflow.core.SMTJsonFlowNodeOnlyOutput;
import com.smtaiserver.smtaiserver.javaai.jsonflow.core.SMTJsonFlowScriptJet;
import com.smtservlet.util.Json;
import com.smtservlet.util.SMTHttpClient;
import com.smtservlet.util.SMTJsonWriter;
import com.smtservlet.util.SMTStatic;
@@ -52,6 +53,58 @@
            _execArg._jsonArgs.set(key, value);
        }
        
        public String getGlobalConfig(String key) throws Exception
        {
            Object value = SMTAIServerApp.getApp().getGlobalConfig(key, null);
            if(value == null)
                return null;
            return SMTStatic.toString(value);
        }
        public Object queryWeb(NativeObject nvConfig) throws Exception
        {
            String url = (String) SMTAIServerApp.getJSValue(nvConfig, "url");
            String method = (String) SMTAIServerApp.getJSValue(nvConfig, "method", "GET");
            String resultType = (String) SMTAIServerApp.getJSValue(nvConfig, "result_type", "String");
            String result;
            if("GET".equalsIgnoreCase(method))
            {
                List<String> listArgs = new ArrayList<>();
                NativeObject nvArgs = (NativeObject) SMTAIServerApp.getJSValue(nvConfig, "args", null);
                if(nvArgs != null)
                {
                    for(Entry<Object, Object> entry : nvArgs.entrySet())
                    {
                        listArgs.add(SMTStatic.toString(entry.getKey()));
                        listArgs.add(SMTStatic.toString(SMTAIServerApp.unwrapObject(entry.getValue())));
                    }
                }
                SMTHttpClient web = new SMTHttpClient();
                result = web.getHttpString(url, listArgs.toArray(new String[1]), null);
            }
            else
            {
                throw new Exception("unknow web method : " + method);
            }
            if("String".equalsIgnoreCase(resultType))
            {
                return result;
            }
            else if("Json".equalsIgnoreCase(resultType))
            {
                return SMTAIServerApp.convJsonToJS(Json.read(result));
            }
            else
            {
                throw new Exception("unknow result type : " + resultType);
            }
        }
        public NativeArray getMapLayerList() throws Exception
        {
            List<SMTGisMapLayerDef> list = new ArrayList<>();