# 是否在禁止交易代码中
|
from db import redis_manager
|
from db.redis_manager import RedisUtils
|
from utils import tool
|
|
__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):
|
RedisUtils.sadd(cls.__get_redis(), "white_list_codes", code)
|
RedisUtils.expire(cls.__get_redis(), "white_list_codes", tool.get_expire())
|
|
@classmethod
|
def remove_code(cls, code):
|
RedisUtils.srem(cls.__get_redis(), "white_list_codes", code)
|
|
@classmethod
|
def is_in(cls, code):
|
return RedisUtils.sismember(cls.__get_redis(), "white_list_codes", code)
|
|
@classmethod
|
def list_codes(cls):
|
return RedisUtils.smembers(cls.__get_redis(), "white_list_codes")
|
|
@classmethod
|
def clear(cls):
|
RedisUtils.delete(cls.__get_redis(), "white_list_codes")
|
|
|
class BlackListCodeManager:
|
__redis_manager = redis_manager.RedisManager(2)
|
__forbidden_trade_codes_cache = set()
|
|
@classmethod
|
def __get_redis(cls):
|
return cls.__redis_manager.getRedis()
|
|
@classmethod
|
def add_code(cls, code):
|
cls.__forbidden_trade_codes_cache.add(code)
|
RedisUtils.sadd(cls.__get_redis(), "forbidden-trade-codes", code)
|
RedisUtils.expire(cls.__get_redis(), "forbidden-trade-codes", tool.get_expire())
|
|
@classmethod
|
def remove_code(cls, code):
|
cls.__forbidden_trade_codes_cache.discard(code)
|
RedisUtils.srem(cls.__get_redis(), "forbidden-trade-codes", code)
|
|
@classmethod
|
def is_in(cls, code):
|
return RedisUtils.sismember(cls.__get_redis(), "forbidden-trade-codes", code)
|
|
@classmethod
|
def is_in_cache(cls, code):
|
return code in cls.__forbidden_trade_codes_cache
|
|
@classmethod
|
def list_codes(cls):
|
codes = RedisUtils.smembers(cls.__get_redis(), "forbidden-trade-codes")
|
cls.__forbidden_trade_codes_cache = codes
|
|
@classmethod
|
def clear(cls):
|
cls.__forbidden_trade_codes_cache.clear()
|
RedisUtils.delete(cls.__get_redis(), "forbidden-trade-codes")
|
|
|
# 初始化禁止交易代码库
|
def init_forbidden_trade_codes():
|
BlackListCodeManager.clear()
|
BlackListCodeManager.add_code("000000")
|
|
|
# 移除禁止交易代码
|
def remove_from_forbidden_trade_codes(code):
|
BlackListCodeManager.remove_code(code)
|
|
|
# 添加代码到禁止交易
|
def add_to_forbidden_trade_codes(code):
|
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, "禁止代码交易")
|
|
|
def is_in_forbidden_trade_codes(code):
|
return BlackListCodeManager.is_in_cache(code)
|
|
|
if __name__ == "__main__":
|
# add_to_forbidden_trade_codes("000977")
|
WhiteListCodeManager.add_code("002977")
|