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
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()
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
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()
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
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()
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()
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()
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
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()
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()