Administrator
2022-10-21 892b50e242e3c59a738b92dfdfee1bf1ff8932f2
trade_manager.py
@@ -9,7 +9,7 @@
import gpcode_manager
import l2_code_operate
import mongo_data
import mysql_data
import tool
from trade_data_manager import TradeBuyDataManager
from trade_gui import THSGuiTrade, async_call
@@ -85,6 +85,7 @@
    redis = __redis_manager.getRedis()
    time_str = datetime.datetime.now().strftime("%H:%M:%S")
    redis.setex("trade-success-latest-time", tool.get_expire(), time_str)
    mysqldb = mysql_data.Mysqldb()
    for data in datas:
        _time = data["time"]
        # 过滤错误数据
@@ -93,22 +94,35 @@
        data["_id"] = data["trade_num"]
        data["day"] = day
        data["create_time"] = int(round(t.time() * 1000))
        count = mongo_data.count("ths-trade-success-record", {"_id": data["_id"]})
        if count is None or count < 1:
            mongo_data.save_one("ths-trade-success-record", data)
        counts = mysqldb.select_one("select count(*) from ths_trade_success_record where _id='{}'".format(data["_id"]))
        if counts[0] < 1:
            mysqldb.execute(
                "insert into ths_trade_success_record(_id,code,money,num,price,time,trade_num,type,day,create_time) values('{}','{}','{}','{}','{}','{}','{}',{},'{}',{})".format(
                    data["_id"], data["code"], data["money"], data["num"], data["price"], data["time"],
                    data["trade_num"], data["type"], data["day"], round(t.time() * 1000)))
        else:
            mysqldb.execute(
                "update ths_trade_success_record set money=%s, num=%s, price=%s,time=%s,trade_num=%s,type=%s where _id=%s",(
                    data["money"], data["num"], data["price"], data["time"], data["trade_num"], data["type"],data["_id"]))
# 保存交易委托数据
def save_trade_delegate_data(datas):
    day = datetime.datetime.now().strftime("%Y%m%d")
    time_str = datetime.datetime.now().strftime("%H:%M:%S")
    mysqldb = mysql_data.Mysqldb()
    for data in datas:
        data["_id"] = "{}-{}-{}".format(day, data["code"], data["time"])
        data["day"] = day
        data["create_time"] = int(round(t.time() * 1000))
        count = mongo_data.count("ths-trade-delegate-record", {"_id": data["_id"]})
        if count is None or count < 1:
            mongo_data.save_one("ths-trade-delegate-record", data)
        counts = mysqldb.select_one("select count(*) from ths_trade_delegate_record where _id='{}'".format(data["_id"]))
        if counts[0] < 1:
            mysqldb.execute(
                "insert into ths_trade_delegate_record(_id,code,num,price,time,trade_num,trade_price,type,day,create_time) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%d)",
                (
                    data["_id"], data["code"],  data["num"], data["price"], data["time"],
                    data["trade_num"],data["trade_price"], data["type"], data["day"], round(t.time() * 1000)))
    # 保存最新的委托数据
    redis = __redis_manager.getRedis()
    redis.setex("trade-delegate-latest", tool.get_expire(), json.dumps(datas))
@@ -119,7 +133,15 @@
def get_trade_success_data():
    redis = __redis_manager.getRedis()
    day = datetime.datetime.now().strftime("%Y%m%d")
    return mongo_data.find("ths-trade-success-record", {"day": day}), redis.get("trade-success-latest-time")
    mysqldb = mysql_data.Mysqldb()
    results = mysqldb.select_all("select * from ths_trade_success_record where day='{}'".format(day))
    datas = []
    for result in results:
        data = {"_id": result[0], "code": result[1], "money": result[2], "num": result[3], "price": result[4],
                "time": result[5], "trade_num": result[6], "type": result[7], "day": result[8],
                "create_time": result[9]}
        datas.append(data)
    return datas, redis.get("trade-success-latest-time")
# 获取交易委托数据
@@ -316,7 +338,11 @@
    redis_info = redis_manager.RedisManager(0).getRedis()
    keys = redis_info.keys("*{}*".format(code))
    for k in keys:
        if k.find("pre") is None or k.find("pre") or k.find("zyltgb") < 0:
        if k.find("pre") is not None:
            continue
        if k.find("zyltgb") is not None:
            continue
            redis_info.delete(k)
@@ -330,6 +356,6 @@
if __name__ == "__main__":
    # time_str = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    # print(time_str)
    # __clear_data("002093")
    __clear_big_data()
    __clear_data("002388")
    # __clear_big_data()
    pass