From 8b35efb921599861a4561fdf352205dedc6bc3be Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 15 七月 2024 16:47:17 +0800
Subject: [PATCH] 手动设置独苗是否可以买入

---
 settings/trade_setting.py |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 deletions(-)

diff --git a/settings/trade_setting.py b/settings/trade_setting.py
index e492804..6a19e6a 100644
--- a/settings/trade_setting.py
+++ b/settings/trade_setting.py
@@ -48,3 +48,56 @@
     def get_situation_cache(self):
         return self.__situation_cache
 
+
+class TradeBlockBuyModeManager:
+    # 绗竴浣�:淇濈暀   绗簩浣嶏細淇濈暀  绗笁浣嶏細涔扮嫭鑻�  绗洓浣嶏細浼犵粺
+    # 0bxxxx
+    # 浼犵粺妯″紡
+    MODE_TRADITIONAL = 0b0001
+    # 鐙嫍妯″紡
+    MODE_UNIQUE_BLOCK = 0b0010
+
+    __REDIS_KEY = "trade_block_buy_mode"
+    __mode = int(MODE_TRADITIONAL)
+
+    """
+    鏉垮潡涔板叆妯″紡绠$悊
+    """
+    __instance = None
+    __db = 2
+    redisManager = redis_manager.RedisManager(2)
+
+    def __new__(cls, *args, **kwargs):
+        if not cls.__instance:
+            cls.__instance = super(TradeBlockBuyModeManager, cls).__new__(cls, *args, **kwargs)
+        return cls.__instance
+
+    @classmethod
+    def __load_data(cls):
+        val = cls.__get_redis().get(cls.__REDIS_KEY)
+        if val is not None:
+            cls.__mode = int(val)
+
+    @classmethod
+    def __get_redis(cls):
+        return cls.redisManager.getRedis()
+
+    def __set_mode(self, mode: int):
+        self.__mode = mode
+        RedisUtils.setex_async(self.__db, self.__REDIS_KEY, tool.get_expire(), mode)
+
+    def get_mode(self):
+        return self.__mode
+
+    def add_unique_block(self):
+        mode = int(self.__mode | self.MODE_UNIQUE_BLOCK)
+        self.__set_mode(mode)
+
+    def remove_unique_block(self):
+        mode = int(self.__mode & ~self.MODE_UNIQUE_BLOCK)
+        self.__set_mode(mode)
+
+    def can_buy_unique_block(self):
+        r = self.__mode & self.MODE_UNIQUE_BLOCK > 1
+        return r > 0
+

--
Gitblit v1.8.0