From 6e71fbcb119e7068ba35380edaa5cc66e7c71f1b Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 27 十月 2022 16:21:05 +0800
Subject: [PATCH] 交易体系完善

---
 server.py |   47 +++++++++++++++++++++++++++++------------------
 1 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/server.py b/server.py
index 0d53edd..b2ac89d 100644
--- a/server.py
+++ b/server.py
@@ -10,8 +10,10 @@
 import time
 
 import alert_util
+import client_manager
 import code_volumn_manager
 import data_process
+import global_data_loader
 import global_util
 import gpcode_manager
 import authority
@@ -19,15 +21,15 @@
 import l2_data_log
 import l2_data_manager
 import l2_data_manager_new
-import log
+import l2_data_util
 import ths_industry_util
 import ths_util
 import tool
 import trade_manager
 import l2_code_operate
+from code_data_util import ZYLTGBUtil
 
-from log import logger_l2_error, logger_l2_process, logger_device, logger_trade_delegate
-from trade_data_manager import TradeCancelDataManager
+from log import logger_l2_error, logger_device, logger_trade_delegate
 from trade_queue_manager import THSBuy1VolumnManager
 
 
@@ -84,7 +86,7 @@
                         _start_time = round(time.time() * 1000)
 
                         # level2鐩樺彛鏁版嵁
-                        day, client, channel, code, capture_time, process_time, datas = l2_data_manager.parseL2Data(
+                        day, client, channel, code, capture_time, process_time, datas, origin_datas = l2_data_manager.parseL2Data(
                             _str)
                         # 10ms鐨勭綉缁滀紶杈撳欢鏃�
                         capture_timestamp = __start_time - process_time - 10
@@ -129,6 +131,8 @@
                                                                    "l2鏁版嵁姝g‘鎬у垽鏂椂闂�")
                                 if gpcode_manager.is_listen(code):
                                     l2_data_manager_new.L2TradeDataProcessor.process(code, datas, capture_timestamp)
+                                    # 淇濆瓨鍘熷鏁版嵁鏁伴噺
+                                    l2_data_util.save_l2_latest_data_number(code, len(origin_datas))
                             except l2_data_manager.L2DataException as l:
                                 # 鍗曚环涓嶇
                                 if l.get_code() == l2_data_manager.L2DataException.CODE_PRICE_ERROR:
@@ -148,6 +152,7 @@
                                 logger_l2_error.error("鍑洪敊锛歿}".format(str(e)))
                                 logger_l2_error.error("鍐呭锛歿}".format(_str))
                             finally:
+
                                 __end_time = round(time.time() * 1000)
                                 # 鍙褰曞ぇ浜�40ms鐨勬暟鎹�
                                 if __end_time - __start_time > 40:
@@ -155,23 +160,17 @@
                                                         True)
                     except Exception as e:
                         logging.exception(e)
-                elif type == 10:
-                    # level2浜ゆ槗闃熷垪
-                    try:
-                        code, setData = data_process.parseL2TradeQueueData(_str)
-                        if gpcode_manager.is_listen(code):
-                            data_process.saveL2Data(day, code, setData)
-                    except:
-                        print("寮傚父")
                 elif type == 1:
                     # 璁剧疆鑲$エ浠g爜
                     data_list = data_process.parseGPCode(_str)
-                    data_process.saveZYLTSZ(data_list)
+                    ZYLTGBUtil.save_list(data_list)
                     code_list = []
                     for data in data_list:
                         code_list.append(data["code"])
 
-                    gpcode_manager.set_gp_list(code_list)
+                    # 鑾峰彇鍩烘湰淇℃伅
+                    code_datas = juejin.JueJinManager.get_gp_latest_info(code_list)
+                    gpcode_manager.set_gp_list(code_datas)
                     # 閲嶆柊璁㈤槄
                     self.server.pipe_juejin.send(json.dumps({"type": "resub"}))
                     # 鍚屾鍚岃姳椤虹洰鏍囦唬鐮�
@@ -183,6 +182,9 @@
                     dataList = data_process.parseGPCode(_str)
                     # 璁剧疆娑ㄥ仠鏃堕棿
                     gpcode_manager.set_limit_up_list(dataList)
+                    # 淇濆瓨鍒板唴瀛樹腑
+                    if dataList:
+                        global_data_loader.add_limit_up_codes(dataList)
                     ths_industry_util.set_industry_hot_num(dataList)
                 elif type == 3:
                     # 浜ゆ槗鎴愬姛淇℃伅
@@ -242,14 +244,23 @@
                         index = data["index"]
                         code_name = data["codeName"]
                         volumn = data["volumn"]
+                        price = data["price"]
                         time_ = data["time"]
                         code = global_util.name_codes.get(code_name)
                         if code is None:
-                            global_util.load_name_codes()
+                            global_data_loader.load_name_codes()
                         code = global_util.name_codes.get(code_name)
                         if code is not None:
+                            # 鏍℃鏃堕棿
+                            seconds = tool.get_time_as_second(time_)
+                            if seconds % 3 > 0:
+                                seconds = seconds - seconds % 3
+                            time_ = tool.time_seconds_format(seconds)
                             # 淇濆瓨鏁版嵁
-                            self.buy1_volumn_manager.save(code, time_, volumn)
+                            need_sync = self.buy1_volumn_manager.save(code, time_, volumn,price)
+                            if need_sync:
+                                # 鍚屾鏁版嵁
+                                l2_data_manager.L2LimitUpMoneyStatisticUtil.verify_num(code, volumn, time_)
 
                 elif type == 30:
                     # 蹇冭烦淇℃伅
@@ -257,7 +268,7 @@
                     client_id = data["client"]
                     thsDead = data.get("thsDead")
                     logger_device.info("锛坽}锛夊鎴风淇℃伅锛歿}".format(client_id, json.dumps(data)))
-                    data_process.saveClientActive(int(client_id), host, thsDead)
+                    client_manager.saveClientActive(int(client_id), host, thsDead)
                     if ths_util.is_ths_dead(client_id):
                         # TODO 閲嶅惎鍚岃姳椤�
                         # 鎶ヨ
@@ -275,7 +286,7 @@
 
 
 def send_msg(client_id, data):
-    _ip = data_process.getActiveClientIP(client_id)
+    _ip = client_manager.getActiveClientIP(client_id)
     print("ip", client_id, _ip)
     if _ip is None or len(_ip) <= 0:
         raise Exception("瀹㈡埛绔疘P涓虹┖")

--
Gitblit v1.8.0