新增注册系统
This commit is contained in:
@@ -88,6 +88,12 @@ class Database:
|
||||
ON game_states(chat_id, user_id)
|
||||
""")
|
||||
|
||||
# 创建用户名索引
|
||||
cursor.execute("""
|
||||
CREATE INDEX IF NOT EXISTS idx_username
|
||||
ON users(username)
|
||||
""")
|
||||
|
||||
# 游戏统计表
|
||||
cursor.execute("""
|
||||
CREATE TABLE IF NOT EXISTS game_stats (
|
||||
@@ -158,6 +164,53 @@ class Database:
|
||||
'last_active': current_time
|
||||
}
|
||||
|
||||
def get_user_by_name(self, username: str) -> Optional[Dict]:
|
||||
"""根据用户名查找用户
|
||||
|
||||
Args:
|
||||
username: 用户名
|
||||
|
||||
Returns:
|
||||
用户信息字典,如果不存在返回None
|
||||
"""
|
||||
cursor = self.conn.cursor()
|
||||
cursor.execute(
|
||||
"SELECT * FROM users WHERE username = ?",
|
||||
(username,)
|
||||
)
|
||||
row = cursor.fetchone()
|
||||
|
||||
if row:
|
||||
return dict(row)
|
||||
return None
|
||||
|
||||
def update_user_name(self, user_id: int, username: str) -> bool:
|
||||
"""更新用户名称
|
||||
|
||||
Args:
|
||||
user_id: 用户ID
|
||||
username: 新用户名
|
||||
|
||||
Returns:
|
||||
是否成功
|
||||
"""
|
||||
try:
|
||||
# 确保用户存在
|
||||
self.get_or_create_user(user_id)
|
||||
|
||||
cursor = self.conn.cursor()
|
||||
cursor.execute(
|
||||
"UPDATE users SET username = ? WHERE user_id = ?",
|
||||
(username, user_id)
|
||||
)
|
||||
|
||||
logger.info(f"用户 {user_id} 更新名称为: {username}")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"更新用户名失败: user_id={user_id}, username={username}, error={e}", exc_info=True)
|
||||
return False
|
||||
|
||||
# ===== 游戏状态相关操作 =====
|
||||
|
||||
def get_game_state(self, chat_id: int, user_id: int, game_type: str) -> Optional[Dict]:
|
||||
|
||||
Reference in New Issue
Block a user