From 949ed0f2fc25ae461faa77a4409893b796d02c4b Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 18 八月 2025 13:39:44 +0800
Subject: [PATCH] 只订阅加想的票

---
 servers/data_server.py |  133 +++++++++++++++++++++++---------------------
 1 files changed, 69 insertions(+), 64 deletions(-)

diff --git a/servers/data_server.py b/servers/data_server.py
index d80d511..6ab4baa 100644
--- a/servers/data_server.py
+++ b/servers/data_server.py
@@ -1096,7 +1096,7 @@
                                 if current_delegates:
                                     for c in current_delegates:
                                         if int(c["direction"]) != huaxin_util.TORA_TSTP_D_Buy:
-                                                continue
+                                            continue
                                         codes_set.add(c["securityID"])
                                 if code not in codes_set:
                                     # 娌℃湁鎸傚崟
@@ -1126,69 +1126,74 @@
             response_data = json.dumps({"code": 0, "data": fdata})
         elif url.path == "/get_want_buy_detail_list":
             # 鑾峰彇鎯充拱鍗曡缁嗕俊鎭�
-
-            history_limit_up_datas = LimitUpDataConstant.history_limit_up_datas
-            codes = set()
-            if history_limit_up_datas:
-                codes |= set([x[3] for x in history_limit_up_datas])
-            want_codes = gpcode_manager.WantBuyCodesManager().list_code_cache()
-            if want_codes:
-                codes |= want_codes
-            # 鎷夊彇娑ㄥ仠鏃堕棿
-            # 鎷夊彇鏈�杩戞垚浜や俊鎭�
-            fdatas = []
-            yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
-            for code in codes:
-                # (浠g爜,鍚嶇О,娑ㄥ仠鏃堕棿,娑ㄥ箙,鐜版墜,鑷敱甯傚��,鐜颁环)
-                data = [code, gpcode_manager.get_code_name(code)]
-                limit_up_time = LimitUpDataConstant.get_first_limit_up_time(code)
-                limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
-                data.append(limit_up_time)
-                pre_close_price = CodePrePriceManager().get_price_pre_cache(code)
-                latest_transaction_data = HuaXinTransactionDatasProcessor.get_latest_transaction_data(code)
-                # 鑾峰彇L1鏁版嵁
-                price = L1DataManager.get_l1_current_price(code)
-                if price:
-                    data.append(round((price - pre_close_price) * 100 / pre_close_price, 2))
-                else:
-                    data.append("--")
-                zylt_volume = global_util.zylt_volume_map.get(code)
-                zyltgb = zylt_volume * limit_up_price
-                if latest_transaction_data:
-                    data.append((latest_transaction_data[2]//100, latest_transaction_data[6] - latest_transaction_data[7]))
-                else:
-                    data.append(("--", 0))
-                data.append(output_util.money_desc(zyltgb) if zyltgb else '--')
-                if price:
-                    data.append(price)
-                else:
-                    data.append("--")
-                # 鏄惁鏄兂涔板崟
-                data.append(1 if code in want_codes else 0)
-                # 鏄剧ず浠g爜鏉垮潡韬綅
-                block_rank_info = None
-                # 鑾峰彇褰撳墠鏉垮潡
-                try:
-                    if limit_up_time:
-                        # 娑ㄥ仠杩囩殑鏁版嵁鎵嶆湁韬綅
-                        blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(code)
-                        if blocks:
-                            blocks_info=[]
-                            for b in blocks:
-                                info = radical_buy_data_manager.RadicalBuyBlockManager.get_history_index(code,b, yesterday_codes)
-                                blocks_info.append((b,info[0],info[2]))
-                            max_info = max(blocks_info, key= lambda x:x[2])
-                            block_rank_info = max_info
-                except:
-                    pass
-                data.append(block_rank_info)
-                fdatas.append(data)
-
-
-
-            fdatas.sort(key=lambda x: x[2] if x[2] else time.time())
-            response_data = json.dumps({"code": 0, "data": fdatas})
-
+            try:
+                history_limit_up_datas = LimitUpDataConstant.history_limit_up_datas
+                codes = set()
+                if history_limit_up_datas:
+                    codes |= set([x[3] for x in history_limit_up_datas])
+                want_codes = gpcode_manager.WantBuyCodesManager().list_code_cache()
+                if want_codes:
+                    codes |= want_codes
+                # 鎷夊彇娑ㄥ仠鏃堕棿
+                # 鎷夊彇鏈�杩戞垚浜や俊鎭�
+                fdatas = []
+                yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
+                for code in codes:
+                    try:
+                        if code in yesterday_codes:
+                            continue
+                        # (浠g爜,鍚嶇О,娑ㄥ仠鏃堕棿,娑ㄥ箙,鐜版墜,鑷敱甯傚��,鐜颁环)
+                        data = [code, gpcode_manager.get_code_name(code)]
+                        limit_up_time = LimitUpDataConstant.get_first_limit_up_time(code)
+                        limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
+                        data.append(limit_up_time)
+                        pre_close_price = CodePrePriceManager().get_price_pre_cache(code)
+                        latest_transaction_data = HuaXinTransactionDatasProcessor.get_latest_transaction_data(code)
+                        # 鑾峰彇L1鏁版嵁
+                        price = L1DataManager.get_l1_current_price(code)
+                        if price:
+                            data.append(round((price - pre_close_price) * 100 / pre_close_price, 2))
+                        else:
+                            data.append("--")
+                        zylt_volume = global_util.zylt_volume_map.get(code)
+                        zyltgb = zylt_volume * limit_up_price
+                        if latest_transaction_data:
+                            data.append(
+                                (latest_transaction_data[2] // 100, latest_transaction_data[6] - latest_transaction_data[7]))
+                        else:
+                            data.append(("--", 0))
+                        data.append(output_util.money_desc(zyltgb) if zyltgb else '--')
+                        if price:
+                            data.append(price)
+                        else:
+                            data.append("--")
+                        # 鏄惁鏄兂涔板崟
+                        data.append(1 if code in want_codes else 0)
+                        # 鏄剧ず浠g爜鏉垮潡韬綅
+                        block_rank_info = None
+                        # 鑾峰彇褰撳墠鏉垮潡
+                        try:
+                            if limit_up_time:
+                                # 娑ㄥ仠杩囩殑鏁版嵁鎵嶆湁韬綅
+                                blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(code)
+                                if blocks:
+                                    blocks_info = []
+                                    for b in blocks:
+                                        info = radical_buy_data_manager.RadicalBuyBlockManager.get_history_index(code, b,
+                                                                                                                 yesterday_codes)
+                                        blocks_info.append((b, info[0], info[2]))
+                                    max_info = max(blocks_info, key=lambda x: x[2])
+                                    block_rank_info = max_info
+                        except:
+                            pass
+                        data.append(block_rank_info)
+                        fdatas.append(data)
+                    except Exception as e1:
+                        logger_debug.exception(e1)
+                fdatas.sort(key=lambda x: x[2] if x[2] else time.time())
+                response_data = json.dumps({"code": 0, "data": fdatas})
+            except Exception as e:
+                logger_debug.exception(e)
         async_log_util.info(logger_request_api, f"缁撴潫璇锋眰{tool.get_thread_id()}-{url}")
         self.send_response(200)
         # 鍙戠粰璇锋眰瀹㈡埛绔殑鍝嶅簲鏁版嵁

--
Gitblit v1.8.0