From aeb05c678e97e7b74e54647e6eea8e38bc7c83be Mon Sep 17 00:00:00 2001 From: liuwei Date: Wed, 17 Sep 2025 14:33:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E5=88=B0=E5=8A=9F=E8=83=BD=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E4=BA=86=E6=80=BB=E5=A4=A9=E6=95=B0=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/sign_in_redis.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/db/sign_in_redis.py b/db/sign_in_redis.py index f7d5b9c..3f61ced 100644 --- a/db/sign_in_redis.py +++ b/db/sign_in_redis.py @@ -7,15 +7,15 @@ from db.connection import DBConnectionManager class SignInRedisDB: """签到系统Redis相关操作""" - + def __init__(self, db_manager: DBConnectionManager): self.db_manager = db_manager self.prefix = "group:sign_in:" - + def get_redis_connection(self): """获取Redis连接""" return self.db_manager.get_redis_connection() - + def load_signin_count(self) -> Dict[str, int]: """加载签到人数数据""" signin_count = {} @@ -33,7 +33,7 @@ class SignInRedisDB: count = count.decode('utf-8') signin_count[group_id] = int(count) return signin_count - + def save_signin_count(self, group_id: str, count: int) -> bool: """保存签到人数""" try: @@ -42,7 +42,7 @@ class SignInRedisDB: return True except Exception: return False - + def get_last_reset_date(self) -> Optional[datetime.date]: """获取最后重置日期""" with self.get_redis_connection() as redis_client: @@ -52,7 +52,7 @@ class SignInRedisDB: date_str = date_str.decode('utf-8') return datetime.strptime(date_str, '%Y-%m-%d').date() return None - + def save_last_reset_date(self, date: datetime.date) -> bool: """保存最后重置日期""" try: @@ -61,7 +61,7 @@ class SignInRedisDB: return True except Exception: return False - + def reset_daily_counts(self) -> bool: """重置每日签到计数""" try: @@ -75,7 +75,7 @@ class SignInRedisDB: return True except Exception: return False - + def get_user_total_sign_count_key(self, wx_id: str, group_id: str) -> str: """获取用户总签到次数的Redis键""" return f"{self.prefix}sign:total:{wx_id}:{group_id}" @@ -83,15 +83,18 @@ class SignInRedisDB: def increment_user_sign_count(self, wx_id: str, group_id: str) -> int: """增加用户签到总次数""" key = self.get_user_total_sign_count_key(wx_id, group_id) - return self.redis.incr(key) + with self.get_redis_connection() as redis_client: + return redis_client.incr(key) def get_user_total_sign_count(self, wx_id: str, group_id: str) -> int: """获取用户签到总次数""" key = self.get_user_total_sign_count_key(wx_id, group_id) - count = self.redis.get(key) - return int(count) if count else 0 + with self.get_redis_connection() as redis_client: + count = redis_client.get(key) + return int(count) if count else 0 def set_user_total_sign_count(self, wx_id: str, group_id: str, count: int) -> bool: """设置用户签到总次数""" key = self.get_user_total_sign_count_key(wx_id, group_id) - return self.redis.set(key, count) \ No newline at end of file + with self.get_redis_connection() as redis_client: + return redis_client.set(key, count)