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