From 8821049f3faee04e03f5535c6259d07bfb8b6433 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 24 七月 2025 18:11:11 +0800
Subject: [PATCH] 订阅规则修改/增加新的外部接口/删除不必要的debug日志

---
 servers/data_server.py |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 5 deletions(-)

diff --git a/servers/data_server.py b/servers/data_server.py
index 4d8ae39..4fe2da9 100644
--- a/servers/data_server.py
+++ b/servers/data_server.py
@@ -12,6 +12,7 @@
 import inited_data
 from api import low_suction_data_pusher
 from code_attribute.gpcode_manager import BlackListCodeManager, HumanRemoveForbiddenManager
+from l2.code_price_manager import CurrentPriceManager
 from l2.huaxin import huaxin_target_codes_manager
 from l2.l2_transaction_data_manager import HuaXinBuyOrderManager
 from log_module.log import logger_system, logger_debug, logger_kpl_limit_up, logger_request_api, \
@@ -329,6 +330,7 @@
                 date = ps_dict.get('date')
                 time_str = ps_dict.get('time')
                 end_index = ps_dict.get('end_index')
+                fast = ps_dict.get('fast', 0)
                 if end_index:
                     end_index = int(end_index)
                 total_datas = l2_data_util.local_today_datas.get(code)
@@ -338,14 +340,30 @@
                     total_datas = None
                 else:
                     date = tool.get_now_date_str()
-                delegate_datas = data_export_util.get_l2_datas(code, total_datas, date=date, end_index=end_index)
-                transaction_datas = data_export_util.get_l2_transaction_datas(code, date=date)
+                delegate_datas = data_export_util.get_l2_datas(code, total_datas, date=date, end_index=end_index,
+                                                               fast_mode=int(fast))
                 code_name = gpcode_manager.get_code_name(code)
                 response_data = json.dumps({"code": 0, "data": {"code": code, "code_name": code_name,
                                                                 "data": {"delegates": delegate_datas,
+                                                                         "transactions": []}}})
+            except Exception as e:
+                logger_debug.exception(e)
+        elif url.path == "/get_l2_datas_of_sell_orders":
+            try:
+                # 鑾峰彇L2鍗栧崟鏁版嵁
+                ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
+                code = ps_dict['code']
+                date = ps_dict.get('date')
+                if not date:
+                    date = tool.get_now_date_str()
+                transaction_datas = data_export_util.get_l2_transaction_datas(code, date=date)
+                code_name = gpcode_manager.get_code_name(code)
+                response_data = json.dumps({"code": 0, "data": {"code": code, "code_name": code_name,
+                                                                "data": {"delegates": [],
                                                                          "transactions": transaction_datas}}})
             except Exception as e:
                 logger_debug.exception(e)
+
         elif url.path == "/get_trade_progress":
             # 鑾峰彇浜ゆ槗杩涘害
             ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()])
@@ -938,6 +956,8 @@
                 else:
                     codes = huaxin_target_codes_manager.HuaXinL2SubscriptCodesManager.get_subscript_codes()
                 if codes:
+                    current_rate_dict = CurrentPriceManager.get_current_rate_dict()
+                    current_price_dict = CurrentPriceManager.get_current_price_dict()
                     for code in codes:
                         deal_big_order_detail_info = None
                         try:
@@ -1010,8 +1030,10 @@
                                 limit_up_big_order_detail = radical_buy_data_manager.get_total_detal_big_order_details(
                                     code)
                                 # 绱娑ㄥ仠涔伴噾棰�
-                                buy_money = output_util.money_desc(limit_up_big_order_detail[0] + limit_up_big_order_detail[1])
-                                sell_money = output_util.money_desc(limit_up_big_order_detail[2] + limit_up_big_order_detail[3])
+                                buy_money = output_util.money_desc(
+                                    limit_up_big_order_detail[0] + limit_up_big_order_detail[1])
+                                sell_money = output_util.money_desc(
+                                    limit_up_big_order_detail[2] + limit_up_big_order_detail[3])
                                 deal_big_order_info.append(buy_money)
                                 # 绱娑ㄥ仠鍗栭噾棰�
                                 deal_big_order_info.append(sell_money)
@@ -1025,7 +1047,29 @@
                             logger_debug.exception(e)
                             deal_big_order_info = None
                         code_name = gpcode_manager.get_code_name(code)
-                        fresults.append((code, code_name, deal_big_order_info, deal_big_order_detail_info))
+
+                        # 0 - 涓嶅  1-鍗冲皢澶�  2-瓒冲
+                        big_order_enough_type = 0
+                        try:
+                            total_deal_big_order_result = radical_buy_data_manager.get_total_deal_big_order_info(code,
+                                                                                                                 gpcode_manager.get_limit_up_price_as_num(
+                                                                                                                     code))
+                            # 鍙栬姹傚ぇ鍗曠殑10%
+                            threshold_lack_money = int(round(total_deal_big_order_result[2] / 10))
+                            if total_deal_big_order_result:
+                                if total_deal_big_order_result[0] <= 0:
+                                    big_order_enough_type = 2
+                                elif total_deal_big_order_result[0] <= threshold_lack_money:
+                                    big_order_enough_type = 1
+                        except:
+                            pass
+                        try:
+                            is_limit_up = 1 if abs(current_price_dict.get(code, 0) - gpcode_manager.get_limit_up_price_as_num(code)) < 0.001 else 0
+                        except:
+                            is_limit_up = 0
+                            pass
+                        fresults.append(
+                            (code, code_name, deal_big_order_info, deal_big_order_detail_info, big_order_enough_type, current_rate_dict.get(code, 0), is_limit_up))
                 response_data = json.dumps({"code": 0, "data": fresults})
             except Exception as e:
                 response_data = json.dumps({"code": 1, "data": str(1)})
@@ -1338,3 +1382,4 @@
 
 if __name__ == "__main__":
     run("", 9004)
+    print("娴嬭瘯123123123")

--
Gitblit v1.8.0