From cae724f751e1ccc797ec6457af5f11ad8a2f24f2 Mon Sep 17 00:00:00 2001
From: admin <admin@example.com>
Date: 星期二, 27 五月 2025 18:30:37 +0800
Subject: [PATCH] bug修复

---
 data_server.py |   56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/data_server.py b/data_server.py
index 306a99f..0c6bfda 100644
--- a/data_server.py
+++ b/data_server.py
@@ -14,10 +14,10 @@
 import constant
 from db import redis_manager_delegate as redis_manager, mysql_data_delegate as mysql_data
 from db.redis_manager_delegate import RedisUtils
-from log_module import log_export
+from log_module import log_export, async_log_util
 from log_module.log import hx_logger_l2_transaction, logger_debug, logger_request_api
 from strategy import data_cache
-from strategy.kpl_data_manager import KPLStockOfMarketsPlateLogManager
+from strategy.kpl_data_manager import KPLMarketsSiftPlateLogManager, KPLMarketStockHeatLogManager
 from strategy.trade_setting import TradeSetting
 from trade import huaxin_trade_api, huaxin_trade_data_update
 from trade.huaxin_trade_record_manager import DelegateRecordManager, DealRecordManager, MoneyManager, PositionManager
@@ -123,6 +123,7 @@
             response_data = json.dumps({"code": 0, "data": {}})
 
         elif url.path == "/get_env":
+            request_id = params_dict.get("request_id")
             use_time_list = []
             try:
                 __start_time = time.time()
@@ -186,23 +187,46 @@
                 response_data = json.dumps(result)
             except Exception as e:
                 response_data = json.dumps({"code": 1, "msg": str(e)})
+                logger_debug.error(f"鐜鑾峰彇寮傚父锛歿request_id}")
                 logger_debug.exception(e)
             finally:
                 if use_time_list and use_time_list[-1][1] > 10:
-                    logger_debug.warning(f"鐜鑾峰彇鏃堕棿澶т簬10s:{use_time_list}")
-
-        elif url.path == "/load_kpl_stock_of_markets_plate":
+                    logger_debug.warning(f"鐜鑾峰彇鏃堕棿澶т簬10s({request_id}):{use_time_list}")
+        # 鑾峰彇鏉垮潡寮哄害鏁版嵁
+        elif url.path == "/load_kpl_market_sift_plate":
             # 鍔犺浇鏁版嵁
-            KPLStockOfMarketsPlateLogManager().load_data()
+            KPLMarketsSiftPlateLogManager().load_data()
             response_data = json.dumps({"code": 0, "msg": "鏆傛棤鍐呭"})
-        elif url.path == "/get_kpl_stock_of_markets_plate":
+        elif url.path == "/get_kpl_market_sift_plate":
+            # 鑾峰彇寮�鐩樺暒娴佸叆鏉垮潡璇︾粏淇℃伅
+            print("==========get_kpl_market_sift_plate==========")
+            try:
+                time_str = params_dict.get("time")
+                if not time_str:
+                    time_str = tool.get_now_time_str()
+                fdatas = KPLMarketsSiftPlateLogManager().get_filter_log_datas()
+                response_data = json.dumps({"code": 1, "msg": "鏆傛棤鍐呭"})
+                for i in range(len(fdatas) - 1, -1, -1):
+                    if fdatas[i][0] <= time_str:
+                        response_data = json.dumps({"code": 0, "data": fdatas[i]})
+                        break
+            except Exception as e:
+                logging.exception(e)
+                response_data = json.dumps({"code": 1, "msg": str(e)})
+
+        # 鑾峰彇涓偂寮哄害鏁版嵁
+        elif url.path == "/load_kpl_market_stock_heat":
+            # 鍔犺浇鏁版嵁
+            KPLMarketStockHeatLogManager().load_data()
+            response_data = json.dumps({"code": 0, "msg": "鏆傛棤鍐呭"})
+        elif url.path == "/get_kpl_market_stock_heat":
             # 鑾峰彇寮�鐩樺暒娴佸叆鏉垮潡璇︾粏淇℃伅
             print("==========get_kpl_stock_of_markets_plate==========")
             try:
                 time_str = params_dict.get("time")
                 if not time_str:
                     time_str = tool.get_now_time_str()
-                fdatas = KPLStockOfMarketsPlateLogManager().get_filter_log_datas()
+                fdatas = KPLMarketStockHeatLogManager().get_filter_log_datas()
                 response_data = json.dumps({"code": 1, "msg": "鏆傛棤鍐呭"})
                 for i in range(len(fdatas) - 1, -1, -1):
                     if fdatas[i][0] <= time_str:
@@ -306,6 +330,12 @@
                             raise Exception("娌℃湁鑾峰彇鍒癓1鏁版嵁")
                         pre_price = data[1]
                         current_price = data[2] if data[2] else data[5][0][0]
+                        # 鑾峰彇鏈�鏂版垚浜や环鏍�
+                        latest_deal_price = data_cache.latest_deal_price_dict.get(code)
+                        if latest_deal_price:
+                            current_price = round(float(latest_deal_price), 2)
+                            async_log_util.info(logger_debug, f"鏍规嵁鎴愪氦浠峰崠鍑猴細{code}-{latest_deal_price}")
+
                         price = tool.get_buy_min_price(current_price)
                         price = max(price, tool.get_limit_down_price(code, pre_price))
                     else:
@@ -372,6 +402,16 @@
                 # 鎴愪氦澶у崟浼犻��
                 datas = self.rfile.read(int(self.headers['content-length']))
                 _str = str(datas, encoding="gbk")
+                datas = json.loads(_str)
+                for d in datas:
+                    if d[1] != 0:
+                        continue
+                    code, data = d[0], d[2]
+                    if code not in data_cache.big_order_deal_dict:
+                        data_cache.big_order_deal_dict[code] = []
+                    data_cache.big_order_deal_dict[code].append(d)
+                    # 鑾峰彇涔板ぇ鍗曟暟閲�
+                    len(data_cache.big_order_deal_dict.get(code, []))
                 hx_logger_l2_transaction.info(_str)
                 # 璁板綍鏃ュ織
                 result_str = json.dumps({"code": 0})

--
Gitblit v1.8.0