From 25d9d0e85eb9bd75bcf5296e77012b4873e31215 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Tue, 02 Dec 2025 15:42:21 +0800
Subject: [PATCH] 1

---
 trading-order-bean/src/main/java/com/yami/trading/bean/model/StockWSBean.java                             |   28 ++++++++++++++
 trading-order-huobi/src/main/java/com/yami/trading/huobi/jsws/WebsocketRunClient.java                     |   66 +++++++++++++++++++++++++++------
 trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserSafewordApplyController.java |    2 
 3 files changed, 83 insertions(+), 13 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserSafewordApplyController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserSafewordApplyController.java
index 4685136..bf16694 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserSafewordApplyController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/user/UserSafewordApplyController.java
@@ -70,7 +70,7 @@
 
     public Result<?> examine(@RequestBody @Valid UserSafewordApplyExamineModel model){
         if (model.getType()==1){
-            sysUserService.checkSafeWord(model.getLoginSafeword());
+            //sysUserService.checkSafeWord(model.getLoginSafeword());
         }
         userSafewordApplyService.examine(model.getId(),model.getContent(),model.getType());
         return  Result.ok(null);
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/model/StockWSBean.java b/trading-order-bean/src/main/java/com/yami/trading/bean/model/StockWSBean.java
new file mode 100644
index 0000000..b31cdf7
--- /dev/null
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/model/StockWSBean.java
@@ -0,0 +1,28 @@
+package com.yami.trading.bean.model;
+
+import lombok.Data;
+
+@Data
+public class StockWSBean {
+
+    private String pid;          // 股票Id 也是股票的pid
+    private String symbol;      // 股票编码
+    private String name;        // 股票名称
+    private String last;        // 股票最新价格
+    private String low;         // 最低
+    private String high;        // 最高
+    private String open;        // 今开
+    private String prevClose;   // 昨收
+    private String time;        // 价格更新时间
+    private String volume;      // 交易量
+    private String pc;         // 涨幅
+    private String pcp;      // 涨幅率
+    private String type;        // 股票所在的交易所
+    private String ratio;       // 市盈率
+    private String marketCap;   // 市值
+    private String eps;         // 每股收益
+    private String bid;         // 买进价
+    private String ask;         // 卖出价
+
+
+}
diff --git a/trading-order-huobi/src/main/java/com/yami/trading/huobi/jsws/WebsocketRunClient.java b/trading-order-huobi/src/main/java/com/yami/trading/huobi/jsws/WebsocketRunClient.java
index dfeebee..6911c60 100644
--- a/trading-order-huobi/src/main/java/com/yami/trading/huobi/jsws/WebsocketRunClient.java
+++ b/trading-order-huobi/src/main/java/com/yami/trading/huobi/jsws/WebsocketRunClient.java
@@ -1,30 +1,48 @@
 package com.yami.trading.huobi.jsws;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 
 import com.yami.trading.bean.data.domain.Realtime;
 import com.yami.trading.bean.item.domain.Item;
+import com.yami.trading.bean.model.StockWSBean;
 import com.yami.trading.huobi.data.DataCache;
 import com.yami.trading.huobi.websocket.constant.enums.EStockType;
 import com.yami.trading.service.item.ItemService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
 import org.java_websocket.client.WebSocketClient;
 import org.java_websocket.handshake.ServerHandshake;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 
+import java.io.IOException;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 @Slf4j
 @Component
 @Scope("prototype")
 public class WebsocketRunClient extends WebSocketClient {
+
+    private static HttpClient httpClient = HttpClients.createDefault(); // 单例化 HttpClient
+
+
+    private static HttpPost httpPost;
+    static {
+        httpPost = new HttpPost("http://127.0.0.1:8001/api/sendNotification"); // 初始化 HttpPost
+    }
 
     private EStockType eStockType;
 
@@ -72,20 +90,19 @@
                     return;
                 }
                 System.out.println(s);
-                /*Map<String, String> stringObjectMap = jsonToMap(s);
-                StockRealTimeBean stockRealTimeBean = new StockRealTimeBean();
-                stockRealTimeBean.setPid(stringObjectMap.get("Id").toString());
-                stockRealTimeBean.setLast(stringObjectMap.get("Last").toString());
-                stockRealTimeBean.setBid(stringObjectMap.get("Bid").toString());
-                stockRealTimeBean.setAsk(stringObjectMap.get("Ask").toString());
-                stockRealTimeBean.setHigh(stringObjectMap.get("High").toString());
-                stockRealTimeBean.setLow(stringObjectMap.get("Low").toString());
-                stockRealTimeBean.setPc(stringObjectMap.get("Chg").toString());
-                stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct").toString()+"%");
-                stockRealTimeBean.setTime(stringObjectMap.get("Time").toString());
+                StockWSBean stockRealTimeBean = new StockWSBean();
+                stockRealTimeBean.setPid(stringObjectMap.get("Id"));
+                stockRealTimeBean.setLast(stringObjectMap.get("Last"));
+                stockRealTimeBean.setBid(stringObjectMap.get("Bid"));
+                stockRealTimeBean.setAsk(stringObjectMap.get("Ask"));
+                stockRealTimeBean.setHigh(stringObjectMap.get("High"));
+                stockRealTimeBean.setLow(stringObjectMap.get("Low"));
+                stockRealTimeBean.setPc(stringObjectMap.get("Chg"));
+                stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct") +"%");
+                stockRealTimeBean.setTime(stringObjectMap.get("Time"));
                 stockRealTimeBean.setOpen(stringObjectMap.get("Open"));
                 stockRealTimeBean.setPrevClose(stringObjectMap.get("PrevClose"));
-                stockRealTimeBean.setSymbol(stringObjectMap.get("Symbol"));*/
+                stockRealTimeBean.setSymbol(stringObjectMap.get("Symbol"));
                 Realtime realtime = new Realtime();
                 /*realtime.setUuid(stringObjectMap.get("pid"));
                 realtime.setSymbol(stringObjectMap.get("symbol"));
@@ -114,6 +131,11 @@
 
 
                 DataCache.putRealtime(realtime.getSymbol(), realtime);
+
+                ObjectMapper objectMapper = new ObjectMapper();
+                String json = objectMapper.writeValueAsString(stockRealTimeBean);
+                sendLoca(json);
+
             } catch (Exception e) {
                 log.error("处理WebSocket消息时发生错误: {}", e);
             }
@@ -181,4 +203,24 @@
         }
         return true;
     }
+
+    public void sendLoca(String message) {
+        try {
+            // 准备 form-data 参数
+            List<BasicNameValuePair> params = new ArrayList<>();
+            params.add(new BasicNameValuePair("message", message));
+
+            // 设置编码格式为 UTF-8
+            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, StandardCharsets.UTF_8);
+            httpPost.setEntity(entity); // 设置 HttpPost 对象的参数
+
+            // 发送请求
+            HttpResponse response = httpClient.execute(httpPost);
+
+            // 处理响应
+            int statusCode = response.getStatusLine().getStatusCode();
+        } catch (IOException e) {
+            log.error("Http 请求错误", e);
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3