From 8e1e721cbfe486e622c40182fb4687a5a2ddd252 Mon Sep 17 00:00:00 2001
From: qfrjava <13402782+qfrjava@user.noreply.gitee.com>
Date: 星期三, 19 三月 2025 17:39:41 +0800
Subject: [PATCH] feat(system): 添加大语言模型和问题替换相关功能

---
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java |  211 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 209 insertions(+), 2 deletions(-)

diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java
index c229c5f..0b0f542 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTSystemManagerControl.java
@@ -731,8 +731,142 @@
 			db.close();
 		}
 	}
-	
-	
+
+	public ModelAndView addLLMFactory(SMTAIServerRequest tranReq) throws Exception {
+		// 瑙f瀽璇锋眰鍙傛暟
+		String factoryId = tranReq.convParamToString("factory_id", true);
+		String factoryTitle = tranReq.convParamToString("factory_title",true);
+		String factoryArgs = tranReq.convParamToString("factory_args",true);
+		SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
+		try {
+
+			String selectSql = "SELECT * FROM ai_llm_factory WHERE factory_id = ?";
+			Object[] params1 = {factoryId};
+			if (db.querySQL(selectSql, params1).getRowCount()>0) {
+				return tranReq.returnJsonState(false, "妯″瀷id宸插瓨鍦�", null);
+			}
+			// 鏋勫缓 SQL 璇彞
+			String sql = "INSERT INTO ai_llm_factory (factory_id, factory_title, factory_args) VALUES (?, ?, ?)";
+			Object[] params2 = {factoryId, factoryTitle, factoryArgs};
+			// 鎵ц鎻掑叆鎿嶄綔
+			db.executeSQL(sql, params2);
+			// 杩斿洖 JSON 缁撴灉
+			SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
+			return tranReq.returnJson(jsonWr);
+		} finally {
+			db.close();
+		}
+	}
+	public ModelAndView addLLMConnect(SMTAIServerRequest tranReq) throws Exception {
+		// 瑙f瀽璇锋眰鍙傛暟
+		String connectId = tranReq.convParamToString("connect_id", true);
+		String factoryId = tranReq.convParamToString("factory_id", true);
+		String connectTitle = tranReq.convParamToString("connect_title", true);
+		String className = tranReq.convParamToString("class_name", true);
+		String connectArgs = tranReq.convParamToString("connect_args", true);
+
+		SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
+
+		try {
+			// 棣栧厛妫�鏌ユā鍨媔d鏄惁瀛樺湪
+			String selectFactorySql = "SELECT * FROM ai_llm_factory WHERE factory_id = ?";
+			Object[] factoryParams = {factoryId};
+			if (db.querySQL(selectFactorySql, factoryParams).getRowCount() == 0) {
+				return tranReq.returnJsonState(false, "妯″瀷id涓嶅瓨鍦�", null);
+			}
+
+			// 妫�鏌ヨ繛鎺d鏄惁宸插瓨鍦�
+			String selectConnectSql = "SELECT * FROM ai_llm_connect WHERE connect_id = ?";
+			Object[] connectParams = {connectId};
+			if (db.querySQL(selectConnectSql, connectParams).getRowCount() > 0) {
+				return tranReq.returnJsonState(false, "杩炴帴id宸插瓨鍦�", null);
+			}
+
+			// 鏋勫缓 SQL 璇彞
+			String insertSql = "INSERT INTO ai_llm_connect (connect_id, factory_id, connect_title, class_name, connect_args) VALUES (?, ?, ?, ?, ?)";
+			Object[] insertParams = {connectId, factoryId, connectTitle, className, connectArgs};
+
+			// 鎵ц鎻掑叆鎿嶄綔
+			db.executeSQL(insertSql, insertParams);
+
+			// 杩斿洖 JSON 缁撴灉
+			SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
+			return tranReq.returnJson(jsonWr);
+		} finally {
+			db.close();
+		}
+	}
+	public ModelAndView updateLLMFactory(SMTAIServerRequest tranReq) throws Exception {
+		// 瑙f瀽璇锋眰鍙傛暟
+		String factoryId = tranReq.convParamToString("factory_id", true);
+		String factoryTitle = tranReq.convParamToString("factory_title", true);
+		String factoryArgs = tranReq.convParamToString("factory_args", true);
+
+		SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
+
+		try {
+			// 妫�鏌ュ伐鍘� ID 鏄惁瀛樺湪
+			String selectSql = "SELECT * FROM ai_llm_factory WHERE factory_id = ?";
+			Object[] params = {factoryId};
+			if (db.querySQL(selectSql, params).getRowCount() == 0) {
+				return tranReq.returnJsonState(false, "妯″瀷id涓嶅瓨鍦�", null);
+			}
+
+			// 鏋勫缓 SQL 璇彞
+			String updateSql = "UPDATE ai_llm_factory SET factory_title = ?, factory_args = ? WHERE factory_id = ?";
+			Object[] updateParams = {factoryTitle, factoryArgs, factoryId};
+
+			// 鎵ц鏇存柊鎿嶄綔
+			db.executeSQL(updateSql, updateParams);
+
+			// 杩斿洖 JSON 缁撴灉
+			SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
+			return tranReq.returnJson(jsonWr);
+		} finally {
+			db.close();
+		}
+	}
+	public ModelAndView updateLLMConnect(SMTAIServerRequest tranReq) throws Exception {
+		// 瑙f瀽璇锋眰鍙傛暟
+		String connectId = tranReq.convParamToString("connect_id", true);
+		String factoryId = tranReq.convParamToString("factory_id", true);
+		String connectTitle = tranReq.convParamToString("connect_title", true);
+		String className = tranReq.convParamToString("class_name", true);
+		String connectArgs = tranReq.convParamToString("connect_args", true);
+
+		SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
+
+		try {
+			// 妫�鏌ヨ繛鎺� ID 鏄惁瀛樺湪
+			String selectConnectSql = "SELECT * FROM ai_llm_connect WHERE connect_id = ?";
+			Object[] connectParams = {connectId};
+			if (db.querySQL(selectConnectSql, connectParams).getRowCount() == 0) {
+				return tranReq.returnJsonState(false, "杩炴帴id涓嶅瓨鍦�", null);
+			}
+
+			// 妫�鏌ユā鍨� ID 鏄惁瀛樺湪
+			String selectFactorySql = "SELECT * FROM ai_llm_factory WHERE factory_id = ?";
+			Object[] factoryParams = {factoryId};
+			if (db.querySQL(selectFactorySql, factoryParams).getRowCount() == 0) {
+				return tranReq.returnJsonState(false, "妯″瀷id涓嶅瓨鍦�", null);
+			}
+
+			// 鏋勫缓 SQL 璇彞
+			String updateSql = "UPDATE ai_llm_connect SET factory_id = ?, connect_title = ?, class_name = ?, connect_args = ? WHERE connect_id = ?";
+			Object[] updateParams = {factoryId, connectTitle, className, connectArgs, connectId};
+
+			// 鎵ц鏇存柊鎿嶄綔
+			db.executeSQL(updateSql, updateParams);
+
+			// 杩斿洖 JSON 缁撴灉
+			SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
+			return tranReq.returnJson(jsonWr);
+		} finally {
+			db.close();
+		}
+	}
+
+
 	public ModelAndView clearSystemCache(SMTAIServerRequest tranReq) throws Exception
 	{
 		SMTApp.getThis().clearEhCacheManager();
@@ -766,4 +900,77 @@
 		}
 		return tranReq.returnJson(jsonWr);
 	}
+	public ModelAndView addQuestionReplace(SMTAIServerRequest tranReq) throws Exception {
+		String loginUserId = tranReq.getLoginUserId();
+		// 瑙f瀽璇锋眰鍙傛暟
+		String replaceId = tranReq.convParamToString("replace_id", true);
+		String questionText = tranReq.convParamToString("question_text", true);
+		String replaceText = tranReq.convParamToString("replace_text", true);
+		int replaceOrder = tranReq.convParamToInteger("replace_order", true);
+		String replaceState = tranReq.convParamToString("replace_state", true);
+		String groupType = tranReq.convParamToString("group_type", true);
+
+		SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
+
+		try {
+			// 妫�鏌ユ浛鎹D鏄惁宸插瓨鍦�
+			String selectSql = "SELECT * FROM ai_question_replace WHERE replace_id = ?";
+			Object[] selectParams = {replaceId};
+			if (db.querySQL(selectSql, selectParams).getRowCount() > 0) {
+				return tranReq.returnJsonState(false, "鏇挎崲ID宸插瓨鍦�", null);
+			}
+
+			// 鏋勫缓 SQL 璇彞
+			String insertSql = "INSERT INTO ai_question_replace (replace_id, question_text, replace_text, replace_order, replace_state, create_user, create_time, group_type) " +
+					"VALUES (?, ?, ?, ?, ?, ?, NOW(), ?)";
+      Object[] insertParams = {
+        replaceId, questionText, replaceText, replaceOrder, replaceState, loginUserId, groupType
+      };
+
+			// 鎵ц鎻掑叆鎿嶄綔
+			db.executeSQL(insertSql, insertParams);
+
+			// 杩斿洖 JSON 缁撴灉
+			SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
+			return tranReq.returnJson(jsonWr);
+		} finally {
+			db.close();
+		}
+	}
+	public ModelAndView updateQuestionReplace(SMTAIServerRequest tranReq) throws Exception {
+		// 瑙f瀽璇锋眰鍙傛暟
+		String replaceId = tranReq.convParamToString("replace_id", true);
+		String questionText = tranReq.convParamToString("question_text", false);
+		String replaceText = tranReq.convParamToString("replace_text", false);
+		int replaceOrder = tranReq.convParamToInteger("replace_order", false);
+		String replaceState = tranReq.convParamToString("replace_state", false);
+		String groupType = tranReq.convParamToString("group_type", false);
+
+		SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
+
+		try {
+			// 妫�鏌ユ浛鎹D鏄惁瀛樺湪
+			String selectSql = "SELECT * FROM ai_question_replace WHERE replace_id = ?";
+			Object[] selectParams = {replaceId};
+			if (db.querySQL(selectSql, selectParams).getRowCount() == 0) {
+				return tranReq.returnJsonState(false, "鏇挎崲ID涓嶅瓨鍦�", null);
+			}
+
+			// 鏋勫缓 SQL 璇彞
+			String updateSql = "UPDATE ai_question_replace SET question_text = ?, replace_text = ?, replace_order = ?, replace_state = ?, group_type = ? " +
+					"WHERE replace_id = ?";
+			Object[] updateParams = {questionText, replaceText, replaceOrder, replaceState, groupType, replaceId};
+
+			// 鎵ц鏇存柊鎿嶄綔
+			db.executeSQL(updateSql, updateParams);
+
+			// 杩斿洖 JSON 缁撴灉
+			SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
+			return tranReq.returnJson(jsonWr);
+		} finally {
+			db.close();
+		}
+	}
+
+
 }

--
Gitblit v1.9.3