Administrator
2024-08-05 31c03f7c3458ca00d66e04df0af53e7dc3438688
trade/trade_manager.py
@@ -13,6 +13,7 @@
from code_attribute import gpcode_manager
from db import mysql_data_delegate as mysql_data, redis_manager_delegate as redis_manager
from db.mysql_data_delegate import Mysqldb
from db.redis_manager_delegate import RedisUtils
from log_module import async_log_util
from output import kp_client_msg_manager
@@ -23,6 +24,7 @@
from log_module.log import *
from trade.huaxin.huaxin_trade_record_manager import TradeOrderIdManager
from trade.trade_data_manager import AccountMoneyManager
from utils import import_util, tool, huaxin_util
trade_gui = import_util.import_lib("trade.trade_gui")
@@ -298,40 +300,6 @@
    # 设置交易账户的可用金额
# 账户可用资金管理
class AccountAvailableMoneyManager:
    __db = 2
    __redis_manager = redis_manager.RedisManager(2)
    __available_money_cache = None
    __instance = None
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = super(AccountAvailableMoneyManager, cls).__new__(cls, *args, **kwargs)
            __redis = cls.__get_redis()
            result = RedisUtils.get(cls.__get_redis(), "trade-account-canuse-money")
            if result:
                cls.__available_money_cache = round(float(result), 2)
        return cls.__instance
    @classmethod
    def __get_redis(cls):
        return cls.__redis_manager.getRedis()
    def set_available_money(self, client_id, money):
        self.__available_money_cache = round(float(money), 2)
        RedisUtils.set(self.__get_redis(), "trade-account-canuse-money", money)
    # 获取交易账户的可用金额
    def get_available_money(self):
        result = RedisUtils.get(self.__get_redis(), "trade-account-canuse-money")
        if result is None:
            return None
        return round(float(result), 2)
    def get_available_money_cache(self):
        return self.__available_money_cache
# 保存交易成功的数据
def save_trade_success_data(datas, day=datetime.datetime.now().strftime("%Y%m%d")):
@@ -439,7 +407,7 @@
        return None, trade_state
    def is_money_enough(code):
        money = AccountAvailableMoneyManager().get_available_money_cache()
        money = AccountMoneyManager().get_available_money_cache()
        if money is None:
            return Exception("未获取到账户可用资金"), None
        price = gpcode_manager.get_limit_up_price(code)