修复签到bug

This commit is contained in:
liuwei
2025-04-11 11:02:27 +08:00
parent 1ba2d20036
commit 0e28c752b6

View File

@@ -40,7 +40,7 @@ class SignInDB(BaseDBOperator):
return self.execute_query(sql, (wx_id, group_id), fetch_one=True) 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, 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: points_to_add: int, sign_time: datetime, streak: int) -> bool:
"""更新签到记录""" """更新签到记录"""
sql = """ sql = """
UPDATE t_sign_record UPDATE t_sign_record
@@ -53,7 +53,7 @@ class SignInDB(BaseDBOperator):
return self.execute_update(sql, params) return self.execute_update(sql, params)
def create_sign_record(self, wx_id: str, group_id: str, wx_nick_name: str, def create_sign_record(self, wx_id: str, group_id: str, wx_nick_name: str,
points: int, sign_time: datetime, streak: int) -> bool: points: int, sign_time: datetime, streak: int) -> bool:
"""创建签到记录""" """创建签到记录"""
sql = """ sql = """
INSERT INTO t_sign_record INSERT INTO t_sign_record
@@ -64,7 +64,8 @@ class SignInDB(BaseDBOperator):
return self.execute_update(sql, params) return self.execute_update(sql, params)
def update_sign_record_with_last_date(self, wx_id: str, group_id: str, wx_nick_name: str, 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: points_to_add: int, sign_time: datetime, streak: int,
last_sign_date: datetime) -> bool:
"""更新签到记录,包括上次签到日期""" """更新签到记录,包括上次签到日期"""
sql = """ sql = """
UPDATE t_sign_record UPDATE t_sign_record
@@ -73,45 +74,27 @@ class SignInDB(BaseDBOperator):
last_sign_date = %s, update_time = %s last_sign_date = %s, update_time = %s
WHERE wx_id = %s AND group_id = %s WHERE wx_id = %s AND group_id = %s
""" """
try: params = (wx_nick_name, points_to_add,
with self._get_db_connection() as conn: sign_time, streak,
with conn.cursor() as cursor: last_sign_date, datetime.now(),
cursor.execute(sql, ( wx_id, group_id)
wx_nick_name, points_to_add, self.execute_update(sql, params)
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
def create_sign_record_with_last_date(self, wx_id: str, group_id: str, wx_nick_name: str, 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 = """ sql = """
INSERT INTO t_sign_record INSERT INTO t_sign_record
(wx_id, group_id, wx_nick_name, points, sign_stat, signin_streak, last_sign_date, create_time, update_time) (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) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
""" """
try: params = (
with self._get_db_connection() as conn: wx_id, group_id, wx_nick_name, points, sign_time, streak, last_sign_date, datetime.now(), datetime.now())
with conn.cursor() as cursor: self.execute_update(sql, params)
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, 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: points_to_add: int, sign_time: datetime, streak: int, last_sign_date: datetime) -> bool:
"""更新补签记录,专门处理今天已签到的情况""" """更新补签记录,专门处理今天已签到的情况"""
sql = """ sql = """
UPDATE t_sign_record UPDATE t_sign_record
@@ -120,17 +103,9 @@ class SignInDB(BaseDBOperator):
update_time = %s update_time = %s
WHERE wx_id = %s AND group_id = %s WHERE wx_id = %s AND group_id = %s
""" """
try: params = (wx_nick_name, points_to_add,
with self._get_db_connection() as conn: streak, last_sign_date,
with conn.cursor() as cursor: datetime.now(),
cursor.execute(sql, ( wx_id, group_id
wx_nick_name, points_to_add, )
streak, last_sign_date, self.execute_update(sql, params)
datetime.now(),
wx_id, group_id
))
conn.commit()
return True
except Exception as e:
self.LOG.error(f"更新补签记录失败: {e}")
return False