修复重复签到bug

This commit is contained in:
liuwei
2025-03-05 10:29:12 +08:00
parent 0cbf0688f0
commit ed8a49041d

View File

@@ -175,13 +175,21 @@ class SignInSystem:
wx_nick_name = self.all_contacts.get(message.sender, message.sender) wx_nick_name = self.all_contacts.get(message.sender, message.sender)
# 判断用户是否已经签到过 # 判断用户是否已经签到过
if user_record and user_record['sign_stat'] and user_record['sign_stat'] >= today_start: if user_record and user_record.get('sign_stat'):
self.wcf.send_text( sign_stat = user_record['sign_stat']
f"@{wx_nick_name} 您今天已经签到过了!当前积分:{user_record['points']}",
(message.roomid if message.from_group() else message.sender), # 确保 sign_stat 和 today_start 是同一时区对象
message.sender if isinstance(sign_stat, datetime) and sign_stat.tzinfo is None:
) sign_stat = pytz.timezone(self.timezone).localize(sign_stat)
return
# 如果 sign_stat 已经大于或等于今天的零点,则认为用户已经签到过了
if sign_stat >= today_start:
self.wcf.send_text(
f"@{wx_nick_name} 您今天已经签到过了!当前积分:{user_record['points']}",
(message.roomid if message.from_group() else message.sender),
message.sender
)
return
streak = 0 streak = 0
if user_record and user_record['sign_stat']: if user_record and user_record['sign_stat']: