diff --git a/db/sign_in.py b/db/sign_in.py index 0021d77..08c118c 100644 --- a/db/sign_in.py +++ b/db/sign_in.py @@ -8,10 +8,10 @@ from db.connection import DBConnectionManager class SignInDB(BaseDBOperator): """签到系统相关数据库操作""" - + def __init__(self, db_manager: DBConnectionManager): super().__init__(db_manager) - + def initialize_table(self) -> bool: """初始化签到表""" sql = """ @@ -29,7 +29,7 @@ class SignInDB(BaseDBOperator): ) """ return self.execute_update(sql) - + def get_user_record(self, wx_id: str, group_id: str) -> Optional[Dict]: """获取用户签到记录""" sql = """ @@ -38,9 +38,9 @@ class SignInDB(BaseDBOperator): WHERE wx_id = %s AND group_id = %s """ return self.execute_query(sql, (wx_id, group_id), fetch_one=True) - - def update_sign_record(self, wx_id: str, group_id: str, wx_nick_name: str, - points_to_add: int, sign_time: datetime, streak: int) -> bool: + + def update_sign_record(self, wx_id: str, group_id: str, wx_nick_name: str, + points_to_add: int, sign_time: datetime, streak: int) -> bool: """更新签到记录""" sql = """ UPDATE t_sign_record @@ -51,9 +51,9 @@ class SignInDB(BaseDBOperator): """ params = (wx_nick_name, points_to_add, sign_time, streak, sign_time, wx_id, group_id) return self.execute_update(sql, params) - - def create_sign_record(self, wx_id: str, group_id: str, wx_nick_name: str, - points: int, sign_time: datetime, streak: int) -> bool: + + def create_sign_record(self, wx_id: str, group_id: str, wx_nick_name: str, + points: int, sign_time: datetime, streak: int) -> bool: """创建签到记录""" sql = """ INSERT INTO t_sign_record @@ -62,9 +62,10 @@ class SignInDB(BaseDBOperator): """ params = (wx_id, group_id, wx_nick_name, points, sign_time, streak) return self.execute_update(sql, params) - - def update_sign_record_with_last_date(self, wx_id: str, group_id: str, wx_nick_name: str, - points_to_add: int, sign_time: datetime, streak: int, last_sign_date: datetime) -> bool: + + def update_sign_record_with_last_date(self, wx_id: str, group_id: str, wx_nick_name: str, + points_to_add: int, sign_time: datetime, streak: int, + last_sign_date: datetime) -> bool: """更新签到记录,包括上次签到日期""" sql = """ UPDATE t_sign_record @@ -73,45 +74,27 @@ class SignInDB(BaseDBOperator): last_sign_date = %s, update_time = %s WHERE wx_id = %s AND group_id = %s """ - try: - with self._get_db_connection() as conn: - with conn.cursor() as cursor: - cursor.execute(sql, ( - wx_nick_name, points_to_add, - sign_time, streak, - last_sign_date, datetime.now(), - wx_id, group_id - )) - conn.commit() - return True - except Exception as e: - self.LOG.error(f"更新签到记录失败: {e}") - return False - + params = (wx_nick_name, points_to_add, + sign_time, streak, + last_sign_date, datetime.now(), + wx_id, group_id) + self.execute_update(sql, params) + def create_sign_record_with_last_date(self, wx_id: str, group_id: str, wx_nick_name: str, - points: int, sign_time: datetime, streak: int, last_sign_date: datetime) -> bool: + points: int, sign_time: datetime, streak: int, + last_sign_date: datetime) -> bool: """创建新的签到记录,包括上次签到日期""" sql = """ INSERT INTO t_sign_record (wx_id, group_id, wx_nick_name, points, sign_stat, signin_streak, last_sign_date, create_time, update_time) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s) """ - try: - with self._get_db_connection() as conn: - with conn.cursor() as cursor: - cursor.execute(sql, ( - wx_id, group_id, wx_nick_name, - points, sign_time, streak, last_sign_date, - datetime.now(), datetime.now() - )) - conn.commit() - return True - except Exception as e: - self.LOG.error(f"创建签到记录失败: {e}") - return False - - def update_makeup_sign(self, wx_id: str, group_id: str, wx_nick_name: str, - points_to_add: int, sign_time: datetime, streak: int, last_sign_date: datetime) -> bool: + params = ( + wx_id, group_id, wx_nick_name, points, sign_time, streak, last_sign_date, datetime.now(), datetime.now()) + self.execute_update(sql, params) + + def update_makeup_sign(self, wx_id: str, group_id: str, wx_nick_name: str, + points_to_add: int, sign_time: datetime, streak: int, last_sign_date: datetime) -> bool: """更新补签记录,专门处理今天已签到的情况""" sql = """ UPDATE t_sign_record @@ -120,17 +103,9 @@ class SignInDB(BaseDBOperator): update_time = %s WHERE wx_id = %s AND group_id = %s """ - try: - with self._get_db_connection() as conn: - with conn.cursor() as cursor: - cursor.execute(sql, ( - wx_nick_name, points_to_add, - streak, last_sign_date, - datetime.now(), - wx_id, group_id - )) - conn.commit() - return True - except Exception as e: - self.LOG.error(f"更新补签记录失败: {e}") - return False \ No newline at end of file + params = (wx_nick_name, points_to_add, + streak, last_sign_date, + datetime.now(), + wx_id, group_id + ) + self.execute_update(sql, params)