From 52c4cb753226d69e9ca04ff73ffa6e8ba79dd917 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 06 十二月 2023 16:36:35 +0800
Subject: [PATCH] 强势时间段调整

---
 trade/l2_trade_util.py |  141 +++++++---------------------------------------
 1 files changed, 22 insertions(+), 119 deletions(-)

diff --git a/trade/l2_trade_util.py b/trade/l2_trade_util.py
index 1fa4817..e7b89fd 100644
--- a/trade/l2_trade_util.py
+++ b/trade/l2_trade_util.py
@@ -1,147 +1,50 @@
 # 鏄惁鍦ㄧ姝氦鏄撲唬鐮佷腑
+from code_attribute import gpcode_manager
 from db import redis_manager_delegate as redis_manager
-from db.redis_manager_delegate import RedisUtils
 from log_module import async_log_util
 from log_module.log import logger_trade
 from trade import trade_record_log_util
-from utils import tool
 
 __redis_manager = redis_manager.RedisManager(2)
 
 
-class WhiteListCodeManager:
-    __instance = None
-    __redis_manager = redis_manager.RedisManager(2)
-
-    def __new__(cls, *args, **kwargs):
-        if not cls.__instance:
-            cls.__instance = super(WhiteListCodeManager, cls).__new__(cls, *args, **kwargs)
-            # 鍒濆鍖栬缃�
-            # 鑾峰彇浜ゆ槗绐楀彛鐨勯攣
-            cls.__instance.__white_codes_cache = RedisUtils.smembers(cls.__get_redis(), "white_list_codes")
-
-        return cls.__instance
-
-    @classmethod
-    def __get_redis(cls):
-        return cls.__redis_manager.getRedis()
-
-    def sync(self):
-        data = RedisUtils.smembers(self.__get_redis(), "white_list_codes")
-        self.__white_codes_cache.clear()
-        if data:
-            self.__white_codes_cache |= data
-
-    def add_code(self, code):
-        self.__white_codes_cache.add(code)
-        RedisUtils.sadd(self.__get_redis(), "white_list_codes", code)
-        RedisUtils.expire(self.__get_redis(), "white_list_codes", tool.get_expire())
-
-    def remove_code(self, code):
-        self.__white_codes_cache.discard(code)
-        RedisUtils.srem(self.__get_redis(), "white_list_codes", code)
-
-    def is_in(self, code):
-        return RedisUtils.sismember(self.__get_redis(), "white_list_codes", code)
-
-    def is_in_cache(self, code):
-        return code in self.__white_codes_cache
-
-    def list_codes(self):
-        return RedisUtils.smembers(self.__get_redis(), "white_list_codes")
-
-    def list_codes_cache(self):
-        return self.__white_codes_cache
-
-    def clear(self):
-        self.__white_codes_cache.clear()
-        RedisUtils.delete(self.__get_redis(), "white_list_codes")
-
-
-class BlackListCodeManager:
-    __instance = None
-    __db = 2
-    __redis_manager = redis_manager.RedisManager(2)
-
-    def __new__(cls, *args, **kwargs):
-        if not cls.__instance:
-            cls.__instance = super(BlackListCodeManager, cls).__new__(cls, *args, **kwargs)
-            # 鍒濆鍖栬缃�
-            # 鑾峰彇浜ゆ槗绐楀彛鐨勯攣
-            cls.__instance.__forbidden_trade_codes_cache = RedisUtils.smembers(cls.__get_redis(),
-                                                                               "forbidden-trade-codes")
-
-        return cls.__instance
-
-    @classmethod
-    def __get_redis(cls):
-        return cls.__redis_manager.getRedis()
-
-    def add_code(self, code):
-        self.__forbidden_trade_codes_cache.add(code)
-        RedisUtils.sadd_async(self.__db, "forbidden-trade-codes", code)
-        RedisUtils.expire_async(self.__db, "forbidden-trade-codes", tool.get_expire())
-
-    def sync(self):
-        data = RedisUtils.smembers(self.__get_redis(),
-                                   "forbidden-trade-codes")
-        self.__forbidden_trade_codes_cache.clear()
-        if data:
-            self.__forbidden_trade_codes_cache |= data
-
-    def remove_code(self, code):
-        self.__forbidden_trade_codes_cache.discard(code)
-        RedisUtils.srem(self.__get_redis(), "forbidden-trade-codes", code)
-
-    def is_in(self, code):
-        return RedisUtils.sismember(self.__get_redis(), "forbidden-trade-codes", code)
-
-    def is_in_cache(self, code):
-        return code in self.__forbidden_trade_codes_cache
-
-    def list_codes(self):
-        codes = RedisUtils.smembers(self.__get_redis(), "forbidden-trade-codes")
-        self.__forbidden_trade_codes_cache = codes
-        return codes
-
-    def list_codes_cache(self):
-        return self.__forbidden_trade_codes_cache
-
-    def clear(self):
-        self.__forbidden_trade_codes_cache.clear()
-        RedisUtils.delete(self.__get_redis(), "forbidden-trade-codes")
-
-
 #  鍒濆鍖栫姝氦鏄撲唬鐮佸簱
 def init_forbidden_trade_codes():
-    BlackListCodeManager().clear()
-    BlackListCodeManager().add_code("000000")
+    gpcode_manager.BlackListCodeManager().clear()
+    gpcode_manager.BlackListCodeManager().add_code("000000")
 
 
 # 绉婚櫎绂佹浜ゆ槗浠g爜
 def remove_from_forbidden_trade_codes(code):
-    BlackListCodeManager().remove_code(code)
+    gpcode_manager.BlackListCodeManager().remove_code(code)
 
 
 # 娣诲姞浠g爜鍒扮姝氦鏄�
 def add_to_forbidden_trade_codes(code):
-    BlackListCodeManager().add_code(code)
+    gpcode_manager.BlackListCodeManager().add_code(code)
 
 
 # 绂佹浠g爜浜ゆ槗
-def forbidden_trade(code, msg=None):
-    if not is_in_forbidden_trade_codes(code):
-        trade_record_log_util.add_forbidden_buy_log(code, msg)
-    add_to_forbidden_trade_codes(code)
-    async_log_util.warning(logger_trade, f"{code}鍔犲叆榛戝悕鍗曞師鍥狅細{msg}")
+# force 鏄惁寮哄埗鍔犲叆榛戝悕鍗�
+def forbidden_trade(code, msg=None, force=False):
+    need_add = False
+    if force:
+        need_add = True
+    else:
+        # 妫�鏌ユ槸鍚﹀湪鎯充拱鍗曚腑
+        if gpcode_manager.WantBuyCodesManager().is_in_cache(code):
+            need_add = False
+        else:
+            need_add = True
+    if need_add:
+        if not is_in_forbidden_trade_codes(code):
+            trade_record_log_util.add_forbidden_buy_log(code, msg)
+        add_to_forbidden_trade_codes(code)
+        async_log_util.warning(logger_trade, f"{code}鍔犲叆榛戝悕鍗曞師鍥狅細{msg}")
     # l2_data_manager.remove_from_l2_fixed_codes(code)
     # l2_code_operate.L2CodeOperate.get_instance().remove_l2_listen(code, "绂佹浠g爜浜ゆ槗")
 
 
 def is_in_forbidden_trade_codes(code):
-    return BlackListCodeManager().is_in_cache(code)
+    return gpcode_manager.BlackListCodeManager().is_in_cache(code)
 
-
-if __name__ == "__main__":
-    # add_to_forbidden_trade_codes("000977")
-    WhiteListCodeManager().add_code("002977")

--
Gitblit v1.8.0