From 98aea3fa64916f7dc56739494d2dad3963e193da Mon Sep 17 00:00:00 2001
From: TangCheng <tangchengmail@163.com>
Date: 星期三, 09 四月 2025 16:01:37 +0800
Subject: [PATCH] 完成单点登录

---
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/qwen/agent/script/SMTQwenAgentScriptScope.java |  123 +++++++++-------------------------------
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java                       |    9 ++-
 2 files changed, 34 insertions(+), 98 deletions(-)

diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java
index 06cc71f..7b4f962 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java
@@ -285,15 +285,18 @@
     		String token = tranReq.convParamToString("user_token", true);
 
     		String ssoUrl = (String) SMTAIServerApp.getApp().getGlobalConfig("sso_url");
-    		ssoUrl = ssoUrl.replace("{user_token}", token);
+    		ssoUrl = ssoUrl.replace("{user_token}", java.net.URLEncoder.encode(token, "UTF-8"));
     		SMTHttpClient web = new SMTHttpClient();
     		Json jsonResp = Json.read(web.getHttpString(ssoUrl, null, null));
     		
     		if(!jsonResp.safeGetBoolean("json_ok", false))
     			throw new Exception("login error");
     		
-    		String userId = jsonResp.getJson("user_id").asString();
-    		String userName = jsonResp.getJson("user_name").asString();
+    		//{"json_ok":true,"value":{"USER_ID":"b6178aa09e4946d6a2d6bbbd7d22f666","USER_NAME":"鍞愭垚","USER_LOGIN_NAME":"tc","USER_PART":"ba24b67a00574d8b9391434a207ea972","USER_SEX":null,"USER_PHONE":null,"USER_EMAIL":null}}
+    		
+    		Json jsonUserInfo = jsonResp.getJson("value");
+    		String userId = jsonUserInfo.getJson("USER_ID").asString();
+    		String userName = jsonUserInfo.getJson("USER_NAME").asString();
     		
     		// 鏌ヨ鐢ㄦ埛鏄惁瀛樺湪, 涓嶅瓨鍦ㄥ垯鍒涘缓鐢ㄦ埛
     		synchronized(_lockSSO)
diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/qwen/agent/script/SMTQwenAgentScriptScope.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/qwen/agent/script/SMTQwenAgentScriptScope.java
index 53f31fd..f126dc0 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/qwen/agent/script/SMTQwenAgentScriptScope.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/javaai/qwen/agent/script/SMTQwenAgentScriptScope.java
@@ -1,6 +1,7 @@
 package com.smtaiserver.smtaiserver.javaai.qwen.agent.script;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map.Entry;
 
@@ -84,14 +85,27 @@
 //		    鏍煎紡锛歔{瀛楁1:鍊�1, 瀛楁2:鍊�2},{瀛楁1:鍊�3, 瀛楁2:鍊�4}...]
     public NativeArray queryRecord(String tableName, NativeArray arrColumns, NativeObject nvTimeGroup, NativeArray arrOrderColumns, NativeObject nvLimit, NativeArray arrFilters) throws Exception
     {
+    	String sqlColTime = null;
+		if(nvTimeGroup != null)
+		{
+			sqlColTime = (String) SMTAIServerApp.getJSValue(nvTimeGroup, "col");
+		}
+    	
 		// 鍔犲叆瀛楁
 		StringBuilder sbColumn = new StringBuilder();
+		java.util.Set<String> setExistCols = new HashSet<>();
 		for(int i = 0; i < arrColumns.size(); i ++)
 		{
 			String colName = SMTStatic.toString(SMTAIServerApp.unwrapObject(arrColumns.get(i)));
+			setExistCols.add(colName.toUpperCase());
 			if(i > 0)
 				sbColumn.append(",");
 			sbColumn.append(colName);
+		}
+		
+		if(sqlColTime != null && !setExistCols.contains(sqlColTime.toUpperCase()))
+		{
+			sbColumn.append("," + sqlColTime);
 		}
 		
 		// 鍔犲叆琛ㄥ悕
@@ -102,6 +116,8 @@
 		{
 			tableName = 
 					  "	(SELECT\r\n"
+					+ "	    '鍘嬪姏璁�' AS DEVICE_TYPE,\r\n"
+					+ "	    'XXX' AS FACTORY,\r\n"
 					+ "	    N.title AS DEVICE_NAME,\r\n"
 					+ "	    Q.otype AS QUOTA_TYPE,\r\n"
 					+ "	    Q.oname AS QUOTA_NAME\r\n"
@@ -193,12 +209,16 @@
 		if(nvLimit != null)
 		{
 			SMTAIServerApp.getApp();
-			int limit = SMTStatic.toInt(SMTAIServerApp.getJSValue(nvLimit, "limit"));
-			sbLimit.append("LIMIT " + limit);
-			
-			Object oStart = SMTAIServerApp.getJSValue(nvLimit, "start", null);
-			if(oStart != null)
-				sbLimit.append(" OFFSET " + SMTStatic.toInt(oStart));
+			Object oLimit = SMTAIServerApp.getJSValue(nvLimit, "limit", null);
+			if(oLimit != null)
+			{
+				int limit = SMTStatic.toInt(oLimit);
+				sbLimit.append("LIMIT " + limit);
+				
+				Object oStart = SMTAIServerApp.getJSValue(nvLimit, "start", null);
+				if(oStart != null)
+					sbLimit.append(" OFFSET " + SMTStatic.toInt(oStart));
+			}
 		}
 		
 		// 鏁村悎SQL
@@ -242,6 +262,7 @@
 		
 		SMTDatabase db = _dbMap.getDatabase("DS_43");
 		List<NativeObject> recList = new ArrayList<>();
+		System.out.println("=================>\n" + sql + "\n<====================\n");
 		db.querySQLNotify(sql, null, new DBQueryNotify() {
 			@Override
 			public boolean onNextRecord(DBRecord rec) throws Exception
@@ -261,94 +282,6 @@
 		return new NativeArray(recList.toArray(new NativeObject[recList.size()]));
     }
     
-    public NativeArray queryRecord1(String tableName, NativeArray arrColumns, NativeObject arrTimeGroup, NativeArray arrOrderColumns, NativeObject arrLimit, NativeArray arrFilters) throws Exception
-    {
-    	if(tableName.startsWith("dev_names"))
-    	{
-	    	NativeObject nvRec = new NativeObject();
-	    	SMTAIServerApp.putJSNotNullValue(nvRec, "QUOTA_TYPE", "SDVAL_FLOW_W");
-	    	SMTAIServerApp.putJSNotNullValue(nvRec, "QUOTA_NAME", "D_QSS130_LL");
-	    	return new NativeArray(new Object[] {nvRec});
-    	}
-    	else
-    	{
-    		SMTDatabase db = _dbMap.getDatabase("DS_43");
-    		{
-    			StringBuilder sbSQL = new StringBuilder();
-    			sbSQL.append("SELECT ");
-    			for(int i = 0; i < arrColumns.size(); i ++)
-    			{
-    				String colName = SMTStatic.toString(SMTAIServerApp.unwrapObject(arrColumns.get(i)));
-    				if(i > 0)
-    					sbSQL.append(",");
-    				sbSQL.append(colName);
-    			}
-    			sbSQL.append(" FROM (SELECT otype as quota_type, oname as quota_name, oname as QUOTA_TITLE, OTIME, SDVAL from sd_values.sd_raws_match) T");
-    			
-    			if(arrFilters != null && arrFilters.size() > 0)
-    			{
-    				sbSQL.append(" WHERE ");
-    				
-    				for(int i = 0; i < arrFilters.size(); i ++)
-    				{
-    					if(i > 0)
-    						sbSQL.append(" AND ");
-    					
-    					NativeObject nvFilter = (NativeObject) SMTAIServerApp.unwrapObject(arrFilters.get(i));
-    					
-    					String field = (String) SMTAIServerApp.getJSValue(nvFilter, "col");
-    					String op = (String) SMTAIServerApp.getJSValue(nvFilter, "op");
-    					
-    					if("BETWEEN".equals(op))
-    					{
-    						NativeArray arrBetween = (NativeArray)SMTAIServerApp.getJSValue(nvFilter, "value");
-    						sbSQL.append(field);
-    						sbSQL.append(" BETWEEN ");
-    						String value1 = (String)SMTAIServerApp.unwrapObject(arrBetween.get(0));
-    						sbSQL.append("'" + value1.replace("'", "''") + "'") ;
-    						
-    						sbSQL.append(" AND ");
-    						String value2 = (String)SMTAIServerApp.unwrapObject(arrBetween.get(1));
-    						sbSQL.append("'" + value2.replace("'", "''") + "'") ;
-    					}
-    					else
-    					{
-	    					String value = (String)SMTAIServerApp.getJSValue(nvFilter, "value");
-	    					sbSQL.append(field);
-	    					sbSQL.append(op);
-	    					sbSQL.append("'" + value.replace("'", "''") + "'");
-    					}
-    				}
-    			
-    			}
-    			
-    			List<NativeObject> listRec = new ArrayList<>();
-				db.querySQLNotify(sbSQL.toString(), null, new DBQueryNotify() 
-				{
-					@Override
-					public boolean onNextRecord(DBRecord rec) throws Exception 
-					{
-						NativeObject nvRec = new NativeObject();
-						
-						for(Entry<String, Integer> entry : rec.getFieldMap().entrySet())
-						{
-							String value = rec.getString(entry.getValue());
-							if(value == null)
-								continue;
-							SMTAIServerApp.putJSNotNullValue(nvRec, entry.getKey(), value);
-						}
-						listRec.add(nvRec);
-						
-						return true;
-					}
-					
-				});
-	    		return new NativeArray(listRec.toArray(new NativeObject[listRec.size()]));
-    		}
-    			
-
-    	}
-    }
 
 // outputTimeChart(璁板綍闆�, 鍚嶇О瀛楁鍚�, 鏃堕棿瀛楁鍚�, 鍊煎瓧娈靛悕,鏍囬鍚�)
 //    鍔熻兘:
@@ -466,7 +399,7 @@
 				for(int i = 0; i < arrColNames.size(); i ++)
 				{
 					String colName  = (String)SMTAIServerApp.unwrapObject(arrColNames.get(i));
-					String colTitle = (String)SMTAIServerApp.unwrapObject(arrColTitles.get(i));
+					String colTitle = arrColTitles == null ? colName : (String)SMTAIServerApp.unwrapObject(arrColTitles.get(i));
 					
 					jsonWrResult.beginMap(null);
 					{

--
Gitblit v1.9.3