From e0062b65da7f3ff34f4c831cc2ef3635b0f44437 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 18 七月 2025 15:19:52 +0800
Subject: [PATCH] 加倍控制中心接口内容优化

---
 api/outside_api_command_callback.py |  166 ++----------------------------------------------------
 1 files changed, 8 insertions(+), 158 deletions(-)

diff --git a/api/outside_api_command_callback.py b/api/outside_api_command_callback.py
index 897abee..43c1f89 100644
--- a/api/outside_api_command_callback.py
+++ b/api/outside_api_command_callback.py
@@ -881,9 +881,10 @@
                 account_available_money = trade_data_manager.AccountMoneyManager().get_available_money_cache()
                 # 鑾峰彇濮旀墭涓殑浠g爜
                 # current_delegates = huaxin_trade_record_manager.DelegateRecordManager().list_current_delegates()
+                # TODO 娴嬭瘯
                 current_delegates, update_time = huaxin_trade_record_manager.DelegateRecordManager.list_by_day(
                     tool.get_now_date_str("%Y%m%d"), None,
-                    [huaxin_util.TORA_TSTP_OST_Accepted, huaxin_util.TORA_TSTP_OST_PartTraded])
+                    [huaxin_util.TORA_TSTP_OST_Accepted, huaxin_util.TORA_TSTP_OST_PartTraded, huaxin_util.TORA_TSTP_OST_AllCanceled ])
                 fdatas = []
                 if current_delegates:
                     codes_set = set()
@@ -912,22 +913,7 @@
                             place_order_index = SCancelBigNumComputer().get_real_place_order_index_cache(code)
                             if place_order_index is None:
                                 place_order_index = 0
-                            # 璁$畻淇″彿浣嶇疆鍒扮湡瀹炰笅鍗曚綅缃殑鎬讳拱锛堜笉绠℃槸鍚﹀凡鎾わ級
-                            total_nums = 0
-                            for i in range(order_begin_pos.buy_single_index, place_order_index):
-                                data = total_datas[i]
-                                val = data["val"]
-                                if not L2DataUtil.is_limit_up_price_buy(val):
-                                    continue
-                                total_nums += val["num"]
-                            # 璁$畻宸叉垚浜�/宸叉挙鍗曠殑鏁伴噺
-                            deal_or_cancel_num = 0
-                            for i in range(order_begin_pos.buy_single_index, trade_index + 1):
-                                data = total_datas[i]
-                                val = data["val"]
-                                if not L2DataUtil.is_limit_up_price_buy(val):
-                                    continue
-                                deal_or_cancel_num += val["num"]
+
                             # 鑾峰彇鍓╀笅鐨勭瑪鏁�
                             total_left_count = 0
                             total_left_num = 0
@@ -952,69 +938,10 @@
                             if dealing_info:
                                 if str(total_datas[trade_index]["val"]["orderNo"]) == str(dealing_info[0]):
                                     total_left_num += (total_datas[trade_index]["val"]["num"] - dealing_info[1] // 100)
-                            limit_up_price = gpcode_manager.get_limit_up_price(code)
+                            limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
                             buy1_money = Buy1PriceManager().get_latest_buy1_money(code)
                             if buy1_money is None:
                                 buy1_money = 1
-                            # 鑾峰彇宸茬粡鎴愪氦鐨勫ぇ鍗曟暟閲�
-                            total_big_num = 0
-                            total_big_count = 0
-                            is_ge_code = tool.is_ge_code(code)
-                            for i in range(0, trade_index):
-                                val = total_datas[i]["val"]
-                                if not L2DataUtil.is_limit_up_price_buy(val):
-                                    continue
-                                # 鏄笉鏄ぇ鍗�
-                                if not l2_data_util_old.is_big_money(val, is_ge_code):
-                                    continue
-
-                                canceled_data = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_canceled_data_v2(
-                                    code,
-                                    i,
-                                    total_datas,
-                                    l2_data_util.local_today_canceled_buyno_map.get(
-                                        code))
-                                if not canceled_data:
-                                    total_big_count += 1
-                                else:
-                                    total_big_num -= canceled_data["val"]["num"]
-                                total_big_num += val["num"]
-
-                            not_deal_total_big_num_pre = 0
-                            not_deal_total_big_count_pre = 0
-                            not_deal_total_big_num_after = 0
-                            not_deal_total_big_count_after = 0
-                            is_ge_code = tool.is_ge_code(code)
-                            for i in range(trade_index, total_datas[-1]["index"] + 1):
-                                val = total_datas[i]["val"]
-                                if not L2DataUtil.is_limit_up_price_buy(val):
-                                    continue
-                                # 鏄笉鏄ぇ鍗�
-                                if not l2_data_util_old.is_big_money(val, is_ge_code):
-                                    continue
-
-                                canceled_data = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_canceled_data_v2(
-                                    code,
-                                    i,
-                                    total_datas,
-                                    l2_data_util.local_today_canceled_buyno_map.get(
-                                        code))
-                                if not canceled_data:
-                                    if i < place_order_index:
-                                        not_deal_total_big_count_pre += 1
-                                    else:
-                                        not_deal_total_big_count_after += 1
-
-                                else:
-                                    if i < place_order_index:
-                                        not_deal_total_big_num_pre -= canceled_data["val"]["num"]
-                                    else:
-                                        not_deal_total_big_num_after -= canceled_data["val"]["num"]
-                                if i < place_order_index:
-                                    not_deal_total_big_num_pre += val["num"]
-                                else:
-                                    not_deal_total_big_num_after += val["num"]
-
                             real_place_order_after_count = 0
                             real_place_order_after_num = 0
                             is_ge_code = tool.is_ge_code(code)
@@ -1037,89 +964,26 @@
                                     real_place_order_after_count += 1
                                     real_place_order_after_num += val["num"]
 
-                            # 鑾峰彇褰撴棩鐨勯噺姣�
-                            volume_rate = code_volumn_manager.CodeVolumeManager().get_volume_rate(code)
-
                             # 鏄惁闇�瑕佹敞鎰�
                             need_pay_attention = (total_left_count <= 10 or total_left_num * float(
                                 limit_up_price) * 100 < 1500 * 10000) and (
-                                                         real_place_order_after_count <= 10 or real_place_order_after_num * float(
-                                                     limit_up_price) * 100 < 1500 * 10000)
-
-                            # 缁熻鐪熷疄涓嬪崟浣嶆槸鍚﹁窛绂诲ぇ鍗曚綅缃繃杩�
-
-                            is_near_big_order = False
-                            try:
-                                count = 0
-                                for i in range(place_order_index - 1, -1, -1):
-                                    data = total_datas[i]
-                                    val = data["val"]
-                                    if not L2DataUtil.is_limit_up_price_buy(val):
-                                        continue
-                                    money = val["num"] * float(val["price"])
-                                    if money < 50 * 100:
-                                        continue
-                                    left_count = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_no_canceled_count_v2(
-                                        code,
-                                        i,
-                                        total_datas,
-                                        l2_data_util.local_today_canceled_buyno_map.get(
-                                            code))
-                                    if left_count <= 0:
-                                        continue
-
-                                    if money >= 299 * 100:
-                                        if count < 1:
-                                            is_near_big_order = True
-                                    else:
-                                        count += 1
-                                        if count >= 1:
-                                            break
-                            except:
-                                pass
+                                                         real_place_order_after_count <= 10 or real_place_order_after_num * limit_up_price * 100 < 1500 * 10000)
                             # L鎾ゆ瘮渚�
                             l_down_cancel_rate, must_buy, cancel_rate_info = LCancelRateManager.get_cancel_rate(code,
                                                                                                                 buy_mode=OrderBeginPosInfo.MODE_RADICAL)
 
-                            # 鍦ㄦ寕鐨勮窛绂绘垚浜よ繘搴︿綅閲戦/锛堣繙杩戞湡鍙傝�冮噺-鍗曞綋鏃ュ疄鏃舵垚浜ら噺锛�*100%
-                            expire_rate = "鏈煡"
-                            try:
-                                referer_volume = code_volumn_manager.CodeVolumeManager().get_radical_buy_refer_volume(
-                                    code, float(limit_up_price))
-                                today_volumn = code_volumn_manager.CodeVolumeManager().get_today_volumn_cache(code)
-                                if referer_volume == today_volumn:
-                                    expire_rate = "100%"
-                                else:
-                                    expire_rate = f"{100 - round(100 * total_left_num * 100 / (referer_volume - today_volumn), 2)}%"
-                            except Exception as e:
-                                logger_debug.exception(e)
-
-                            fdata = {"id": orderSysID, "code_info": (code, code_name), "total_num": total_nums,
-                                     "finish_num": deal_or_cancel_num,
+                            fdata = {"id": orderSysID, "code_info": (code, code_name),
                                      "buy1_money": output_util.money_desc(buy1_money),
-                                     "big_num_count": total_big_count,
-                                     "big_num_money": output_util.money_desc(
-                                         total_big_num * float(limit_up_price) * 100),
-                                     "not_deal_big_num_count": (
-                                         not_deal_total_big_count_pre, not_deal_total_big_count_after),
-                                     "not_deal_big_num_money": (output_util.money_desc(
-                                         not_deal_total_big_num_pre * float(limit_up_price) * 100),
-                                                                output_util.money_desc(
-                                                                    not_deal_total_big_num_after * float(
-                                                                        limit_up_price) * 100)),
                                      "left_count": total_left_count,
-                                     "volume_rate": volume_rate,
                                      "left_money": output_util.money_desc(total_left_num * float(limit_up_price) * 100),
                                      "pay_attention": need_pay_attention,
                                      "trade_progress_percent": round(
                                          total_left_num * float(limit_up_price) * 100 * 100 / buy1_money, 2),  # 鎴愪氦杩涘害姣斾緥
-                                     "limit_up_price": gpcode_manager.get_limit_up_price_as_num(code),
-                                     "is_near_big_order": is_near_big_order,
+                                     "limit_up_price": limit_up_price,
                                      "block": '',
                                      "trade_queue": [],
                                      "l_down_cancel_rate": l_down_cancel_rate,
                                      "l_down_cancel_rate_info": cancel_rate_info,
-                                     "expire_rate": expire_rate
                                      }
                             limit_up_data = kpl_data_manager.KPLLimitUpDataRecordManager.record_code_dict.get(code)
                             # 鑾峰彇褰撳墠鏉垮潡
@@ -1156,23 +1020,12 @@
                                     fdata['zyltgb'] = output_util.money_desc(zyltgb)
                             except:
                                 pass
-
-                            try:
-                                if order_begin_pos:
-                                    fdata['mode'] = order_begin_pos.mode
-                                else:
-                                    fdata['mode'] = -1
-                            except:
-                                pass
                             # L鍚庡泭鎷揩鐓�
                             try:
                                 current_info = LCancelBigNumComputer().statistic_l_down_watch_indexes_info(code)
-                                last_info = LDownCancelWatchIndexStatisticManager().get_statistic_info(code)
                                 fdata['l_down_watch_indexes_info'] = {}
                                 if current_info:
                                     fdata['l_down_watch_indexes_info']['current'] = current_info
-                                if last_info:
-                                    fdata['l_down_watch_indexes_info']['last'] = last_info
                             except:
                                 pass
                             fdatas.append(fdata)
@@ -1543,14 +1396,11 @@
                     return
                 rate = round(rate, 2)
                 old_rate = LCancelRateManager().get_cancel_rate(0)[0]
-                # L鍚庢暟鎹揩鐓�
-                last_info = LCancelBigNumComputer().statistic_l_down_watch_indexes_info(code)
-                LDownCancelWatchIndexStatisticManager().set_statistic_info(code, last_info)
                 CancelRateHumanSettingManager().set_l_down(code, rate)
                 # L鍚庨噸鏂板泭鎷�
                 if rate < old_rate:
                     # 鏀瑰皬鎵嶈兘閲嶆柊鍥婃嫭
-                    LCancelBigNumComputer().re_compute_l_down_watch_indexes(code)
+                    LCancelBigNumComputer().re_compute_l_down_watch_indexes(code, is_force=True)
                 self.send_response({"code": 0, "data": {}},
                                    client_id,
                                    request_id)

--
Gitblit v1.8.0