Пример #1
0
def get_strategy_list(user):
    """
    获取用户编写的策略列表
    :param user
    """
    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)
    cur.execute("select id from code_info where name=%s and user_id=%s", (
        "demo",
        user.user_id,
    ))
    row = cur.fetchone()
    if not row:
        demo_ = os.path.join(os.path.dirname(__file__), '..', '..', 'demo.py')
        file = codecs.open(demo_, mode='r', encoding="utf8")
        content = file.read()
        cur.execute(
            "insert into code_info (name, user_id, content) value (%s, %s, %s)",
            ("demo", user.user_id, content))
        file.close()
    cur.execute("select id, name from code_info where user_id=%s and stat=0",
                (user.user_id, ))
    code_list = cur.fetchall()
    conn.commit()
    return code_list
Пример #2
0
def delete_strategy(user, name):
    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)
    if name == 'demo':
        cur.execute("update code_info set stat=1 where user_id=%s and name=%s", (user.user_id, name))
    else:
        cur.execute("delete from code_info where user_id=%s and name=%s", (user.user_id, name))
    conn.commit()
Пример #3
0
def rename_strategy(user, old_name, new_name):
    if not new_name:
        raise ValueError("code.name is empty")
    if strategy_exists(user, new_name):
        return False
    cur = conn.cursor(pymysql.cursors.DictCursor)
    cur.execute("update code_info set name=%s where user_id=%s and name=%s", (new_name, user.user_id, old_name))
    conn.commit()
    return True
Пример #4
0
def delete_strategy(user, name):
    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)
    if name == 'demo':
        cur.execute("update code_info set stat=1 where user_id=%s and name=%s",
                    (user.user_id, name))
    else:
        cur.execute("delete from code_info where user_id=%s and name=%s",
                    (user.user_id, name))
    conn.commit()
Пример #5
0
def rename_strategy(user, old_name, new_name):
    if not new_name:
        raise ValueError("code.name is empty")
    if strategy_exists(user, new_name):
        return False
    cur = conn.cursor(pymysql.cursors.DictCursor)
    cur.execute("update code_info set name=%s where user_id=%s and name=%s",
                (new_name, user.user_id, old_name))
    conn.commit()
    return True
Пример #6
0
def remove_competition(user, name):
    __check_user(user)

    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)

    sql = "delete from strategy_competition where name=%s and user_id=%s"
    cur.execute(sql, (name, user.user_id))

    conn.commit()
Пример #7
0
def get_competition_list(user):
    __check_user(user)

    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)

    cur.execute("select id, name from strategy_competition where user_id=%s", (user.user_id,))
    code_list = cur.fetchall()
    conn.commit()
    return code_list
Пример #8
0
def update_competition_content(user, name, content):
    __check_user(user)

    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)

    sql = "update strategy_competition set content=%s where name=%s and user_id=%s"
    cur.execute(sql, (content, name, user.user_id))

    conn.commit()
Пример #9
0
def add_competition(user, code):
    if not code.name:
        raise ValueError("code.name is empty.")

    if not check_competition_limit(user):
        raise KeyError("beyond competition limit.")

    __check_user(user)

    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)

    cur.execute("insert into strategy_competition (name, user_id, content) value (%s, %s, %s)",
                (code.name, user.user_id, code.content))

    conn.commit()
Пример #10
0
def save_code(user, code):
    """
    保存用户代码
    :param user: 用户对象
    :param code: Code对象
    """
    if not code.name:
        raise ValueError("code.name is empty")
    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)
    if not strategy_exists(user, code.name):  # 如果是第一次创建,则记录相关信息
        cur.execute("insert into code_info (name, user_id, content) value (%s, %s, %s)",
                    (code.name, user.user_id, code.content))
    else:
        cur.execute("update code_info set content=%s where name=%s and user_id=%s",
                    (code.content, code.name, user.user_id))
    conn.commit()
Пример #11
0
def get_strategy_list(user):
    """
    获取用户编写的策略列表
    :param user
    """
    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)
    cur.execute("select id from code_info where name=%s and user_id=%s", ("demo", user.user_id,))
    row = cur.fetchone()
    if not row:
        demo_ = os.path.join(os.path.dirname(__file__), '..', '..', 'demo.py')
        file = codecs.open(demo_, mode='r', encoding="utf8")
        content = file.read()
        cur.execute("insert into code_info (name, user_id, content) value (%s, %s, %s)", ("demo", user.user_id, content))
        file.close()
    cur.execute("select id, name from code_info where user_id=%s and stat=0", (user.user_id,))
    code_list = cur.fetchall()
    conn.commit()
    return code_list
Пример #12
0
def save_code(user, code):
    """
    保存用户代码
    :param user: 用户对象
    :param code: Code对象
    """
    if not code.name:
        raise ValueError("code.name is empty")
    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)
    if not strategy_exists(user, code.name):  # 如果是第一次创建,则记录相关信息
        cur.execute(
            "insert into code_info (name, user_id, content) value (%s, %s, %s)",
            (code.name, user.user_id, code.content))
    else:
        cur.execute(
            "update code_info set content=%s where name=%s and user_id=%s",
            (code.content, code.name, user.user_id))
    conn.commit()
Пример #13
0
def update_competition_config(user, old_name, new_name):
    """
    修改参赛组合的设置
    Parameters
    ----------
    user: 修改的用户
    old_name: 要修改参赛策略名称
    new_name: 参赛策略新名称
    -------

    """
    __check_user(user)

    if not new_name:
        return

    conn.ping(True)
    cur = conn.cursor(pymysql.cursors.DictCursor)

    sql = "update strategy_competition set name=%s where name=%s and user_id=%s"
    cur.execute(sql, (new_name, old_name, user.user_id))

    conn.commit()