From 045e713ec1ac2f7c92c69ef31c02035661fc98dc Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 16 七月 2025 14:05:52 +0800
Subject: [PATCH] 续买金额设置/L后撤日志修改

---
 api/outside_api_command_callback.py |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 11 deletions(-)

diff --git a/api/outside_api_command_callback.py b/api/outside_api_command_callback.py
index cf1140f..d02205a 100644
--- a/api/outside_api_command_callback.py
+++ b/api/outside_api_command_callback.py
@@ -60,7 +60,7 @@
 from trade.sell import sell_manager
 from trade.sell.sell_rule_manager import TradeRuleManager, SellRule
 from trade.trade_data_manager import RadicalBuyDealCodesManager
-from trade.trade_manager import TradeTargetCodeModeManager, AutoCancelSellModeManager
+from trade.trade_manager import TradeTargetCodeModeManager, AutoCancelSellModeManager, CodesContinueBuyMoneyManager
 from settings.trade_setting import MarketSituationManager, TradeBlockBuyModeManager
 from utils import socket_util, data_export_util, tool, huaxin_util, output_util, global_util, init_data_util
 from servers import server_util
@@ -400,7 +400,13 @@
             elif code_list_type == outside_api_command_manager.CODE_LIST_GREEN:
                 if operate == outside_api_command_manager.OPERRATE_SET:
                     gpcode_manager.GreenListCodeManager().add_code(code)
+                    trade_record_log_util.add_green(code, "浜轰负鍔犵豢")
+
                     gpcode_manager.WantBuyCodesManager().add_code(code)
+                    # 鍔犵櫧
+                    gpcode_manager.WhiteListCodeManager().add_code(code, is_human=True)
+                    trade_record_log_util.add_white_buy(code, "鍔犵豢鍔犵櫧")
+
                     name = gpcode_manager.get_code_name(code)
                     if not name:
                         results = HistoryKDatasUtils.get_gp_codes_names([code])
@@ -408,7 +414,7 @@
                             gpcode_manager.CodesNameManager.add_first_code_name(code, results[code])
                 elif operate == outside_api_command_manager.OPERRATE_DELETE:
                     gpcode_manager.GreenListCodeManager().remove_code(code)
-                    gpcode_manager.WantBuyCodesManager().remove_code(code)
+                    gpcode_manager.WhiteListCodeManager().remove_code(code)
                 elif operate == outside_api_command_manager.OPERRATE_GET:
                     codes = gpcode_manager.GreenListCodeManager().list_codes_cache()
                     datas = []
@@ -1068,8 +1074,8 @@
                             except:
                                 pass
                             # L鎾ゆ瘮渚�
-                            l_down_cancel_rate, must_buy = LCancelRateManager.get_cancel_rate(code,
-                                                                                              buy_mode=OrderBeginPosInfo.MODE_RADICAL)
+                            l_down_cancel_rate, must_buy, cancel_rate_info = LCancelRateManager.get_cancel_rate(code,
+                                                                                                                buy_mode=OrderBeginPosInfo.MODE_RADICAL)
 
                             # 鍦ㄦ寕鐨勮窛绂绘垚浜よ繘搴︿綅閲戦/锛堣繙杩戞湡鍙傝�冮噺-鍗曞綋鏃ュ疄鏃舵垚浜ら噺锛�*100%
                             expire_rate = "鏈煡"
@@ -1081,8 +1087,8 @@
                                     expire_rate = "100%"
                                 else:
                                     expire_rate = f"{100 - round(100 * total_left_num * 100 / (referer_volume - today_volumn), 2)}%"
-                            except:
-                                pass
+                            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,
@@ -1108,12 +1114,9 @@
                                      "block": '',
                                      "trade_queue": [],
                                      "l_down_cancel_rate": l_down_cancel_rate,
+                                     "l_down_cancel_rate_info": cancel_rate_info,
                                      "expire_rate": expire_rate
                                      }
-                            l_down_cancel_rate = CancelRateHumanSettingManager().get_l_down(code)
-                            if l_down_cancel_rate is not None:
-                                fdata["l_down_cancel_rate"] = l_down_cancel_rate
-
                             limit_up_data = kpl_data_manager.KPLLimitUpDataRecordManager.record_code_dict.get(code)
                             # 鑾峰彇褰撳墠鏉垮潡
                             try:
@@ -1500,7 +1503,18 @@
                                        client_id,
                                        request_id)
                     return
-                TotalDealBigOrderThresholdMoneyManager().set_money(code, int(money))
+                TotalDealBigOrderThresholdMoneyManager().set_money(code, int(money),
+                                                                   trade_manager.CodesTradeStateManager().get_trade_state_cache(
+                                                                       code))
+
+                # 濡傛灉鏄姞绾㈢姸鎬侊紝涓斿ぇ鍗曚笉澶熷氨闇�瑕佺Щ绾�
+                if gpcode_manager.MustBuyCodesManager().is_in_cache(code):
+                    deal_big_order_info = radical_buy_data_manager.get_total_deal_big_order_info(code,
+                                                                                                 gpcode_manager.get_limit_up_price_as_num(
+                                                                                                     code))
+                    if deal_big_order_info[0] > 0:
+                        gpcode_manager.MustBuyCodesManager().remove_code(code)
+                        trade_record_log_util.add_common_msg(code, "绉荤孩", f"澶у崟闃堝�间慨鏀癸紙{money}锛�")
                 self.send_response({"code": 0, "data": {}},
                                    client_id,
                                    request_id)
@@ -1519,6 +1533,37 @@
                                    client_id,
                                    request_id)
 
+            elif ctype == "get_continue_buy_info":
+                # 璁剧疆L鍚庢挙鍗曟瘮渚�
+                code = data.get("code")
+                money = CodesContinueBuyMoneyManager().get_continue_buy_money(code)
+                if money is None:
+                    money = 0
+                self.send_response({"code": 0, "data": {"money": money, "money_list": constant.AVAILABLE_BUY_MONEYS}},
+                                   client_id,
+                                   request_id)
+            elif ctype == "set_continue_buy_money":
+                # 璁剧疆L鍚庢挙鍗曟瘮渚�
+                code = data.get("code")
+                money = data.get("money")
+                if money <= 0:
+                    # 琛ㄧず绉婚櫎缁拱閲戦
+                    CodesContinueBuyMoneyManager().remove_continue_buy_money(code)
+                    self.send_response({"code": 0, "data": {}},
+                                       client_id,
+                                       request_id)
+                    return
+                if money not in constant.AVAILABLE_BUY_MONEYS:
+                    self.send_response({"code": 1, "msg": f"閲戦锛坽money}锛夋病鍦▄constant.AVAILABLE_BUY_MONEYS}涓�"},
+                                       client_id,
+                                       request_id)
+                    return
+                CodesContinueBuyMoneyManager().set_continue_buy_money(code, money)
+                l2_trade_util.remove_from_forbidden_trade_codes(code)
+                self.send_response({"code": 0, "data": {}},
+                                   client_id,
+                                   request_id)
+
         except Exception as e:
             logging.exception(e)
             logger_debug.exception(e)

--
Gitblit v1.8.0