Pārlūkot izejas kodu

fix 镜像gpt 可更换节点

chenbiao 1 gadu atpakaļ
vecāks
revīzija
bd999180cf

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/model/dto/ChatgptChangeNodesDto.java

@@ -0,0 +1,13 @@
+package com.cyksj.model.dto;
+
+import lombok.Data;
+
+/**
+ * @author chan
+ * @date 2024/11/6 16:14
+ */
+@Data
+public class ChatgptChangeNodesDto {
+
+    private String node;
+}

+ 24 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/account/CmsGptCarController.java

@@ -17,6 +17,7 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.ChatgptSessionMapper;
 import com.cyksj.model.dto.ChatGptChangePasswordDto;
+import com.cyksj.model.dto.ChatgptChangeNodesDto;
 import com.cyksj.model.entity.ChatgptSession;
 import com.cyksj.model.entity.SysConfig;
 import com.cyksj.model.excel.ExcelGptMirrorAccountData;
@@ -277,4 +278,27 @@ public class CmsGptCarController {
 			log.error("刷新车队token异常:{}", StringUtil.getErrorText(e));
 		}
 	}
+
+	/**
+	 * gpt更换节点
+	 */
+	@PostMapping("/changeNodes")
+	public Result<String> changeNodes(@RequestBody ChatgptChangeNodesDto node){
+		SysConfig one = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, "gpt_car_nodes_list"));
+		List<String> nodeList = new JSONArray(one.getSysValue()).toList(String.class);
+		if (nodeList.contains(node.getNode())) {
+			//修改目前使用gpt节点值
+			sysConfigService.update(Wrappers.lambdaUpdate(SysConfig.class).eq(SysConfig::getSysKey,"gpt_car_nodes").set(SysConfig::getSysValue, node.getNode()));
+			SysConfig domainConfig = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, "mirror_gpt_domain"));
+			List<String> domainList = new JSONArray(domainConfig.getSysValue()).toList(String.class);
+			domainList.forEach((domain)->{
+				HttpUtil.get(domain + "/backend-api/car/changeNodes");
+			});
+			log.info("切换成功");
+			return GatewayResponse.SUCCESS.newBuilder().toResult();
+		}else {
+			throw BusinessRuntimeException.getInstance("该节点不存在!");
+		}
+	}
+
 }