Administrator
4 天以前 48fb7a00951f91bdc707e5dd2d196e5bccb752c3
trade/l2_trade_util.py
@@ -1,95 +1,52 @@
# 是否在禁止交易代码中
from db import redis_manager
from utils import tool
from code_attribute import gpcode_manager
from db import redis_manager_delegate as redis_manager
from log_module import async_log_util
from log_module.log import logger_trade
from trade import trade_record_log_util
from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager
__redis_manager = redis_manager.RedisManager(2)
class WhiteListCodeManager:
    __redis_manager = redis_manager.RedisManager(2)
    @classmethod
    def __get_redis(cls):
        return cls.__redis_manager.getRedis()
    @classmethod
    def add_code(cls, code):
        cls.__get_redis().sadd("white_list_codes", code)
        cls.__get_redis().expire("white_list_codes", tool.get_expire())
    @classmethod
    def remove_code(cls, code):
        cls.__get_redis().srem("white_list_codes", code)
    @classmethod
    def is_in(cls, code):
        return cls.__get_redis().sismember("white_list_codes", code)
    @classmethod
    def list_codes(cls):
        return cls.__get_redis().smembers("white_list_codes")
    @classmethod
    def clear(cls):
        cls.__get_redis().delete("white_list_codes")
class BlackListCodeManager:
    __redis_manager = redis_manager.RedisManager(2)
    @classmethod
    def __get_redis(cls):
        return cls.__redis_manager.getRedis()
    @classmethod
    def add_code(cls, code):
        cls.__get_redis().sadd("forbidden-trade-codes", code)
        cls.__get_redis().expire("forbidden-trade-codes", tool.get_expire())
    @classmethod
    def remove_code(cls, code):
        cls.__get_redis().srem("forbidden-trade-codes", code)
    @classmethod
    def is_in(cls, code):
        return cls.__get_redis().sismember("forbidden-trade-codes", code)
    @classmethod
    def list_codes(cls):
        return cls.__get_redis().smembers("forbidden-trade-codes")
    @classmethod
    def clear(cls):
        cls.__get_redis().delete("forbidden-trade-codes")
#  初始化禁止交易代码库
def init_forbidden_trade_codes():
    BlackListCodeManager.clear()
    BlackListCodeManager.add_code("000000")
    gpcode_manager.BlackListCodeManager().clear()
    gpcode_manager.BlackListCodeManager().add_code("000000")
# 移除禁止交易代码
def remove_from_forbidden_trade_codes(code):
    BlackListCodeManager.remove_code(code)
    gpcode_manager.BlackListCodeManager().remove_code(code)
# 添加代码到禁止交易
def add_to_forbidden_trade_codes(code):
    BlackListCodeManager.add_code(code)
def __add_to_forbidden_trade_codes(code):
    gpcode_manager.BlackListCodeManager().add_code(code)
# 禁止代码交易
def forbidden_trade(code):
    add_to_forbidden_trade_codes(code)
    # l2_data_manager.remove_from_l2_fixed_codes(code)
    # l2_code_operate.L2CodeOperate.get_instance().remove_l2_listen(code, "禁止代码交易")
# force 是否强制加入黑名单
def forbidden_trade(code, msg=None, force=False):
    need_add = False
    if force:
        need_add = True
    else:
        # 检查是否在想买单中
        if gpcode_manager.HumanRemoveForbiddenManager().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}")
def is_in_forbidden_trade_codes(code):
    return BlackListCodeManager.is_in(code)
    return gpcode_manager.BlackListCodeManager().is_in_cache(code)
if __name__ == "__main__":
    # add_to_forbidden_trade_codes("000977")
    WhiteListCodeManager.add_code("002977")