修复签到bug

This commit is contained in:
liuwei
2025-04-11 12:24:09 +08:00
parent 90b0c0d181
commit 4631297379

View File

@@ -454,25 +454,22 @@ class MessageSignPlugin(MessagePluginInterface):
)
return True, "扣除积分失败"
# 在_handle_makeup_sign方法中修改计算新连签天数的逻辑
# 获取原连签天数和断签前连签天数
original_streak = user_record['signin_streak']
previous_streak = user_record.get('previous_streak', 0)
# 计算新的连签天数
new_streak = original_streak
# 如果今天已签到且有断签前记录,恢复连签
if sign_stat and sign_stat >= today_start and previous_streak > 0:
# 恢复连签:断签前连签天数 + 1 (今天已签到)
# 如果有断签前记录,直接使用断签前连签天数+1
if previous_streak > 0:
# 恢复连签:断签前连签天数 + 1 (补签后相当于连续签到)
new_streak = previous_streak + 1
self.LOG.info(f"恢复连签: {previous_streak} + 1 = {new_streak}")
# 如果今天未签到且有断签前记录,也可以恢复连签
elif previous_streak > 0:
# 恢复连签:断签前连签天数
new_streak = previous_streak
self.LOG.info(f"恢复连签: {previous_streak}")
# 如果没有断签前记录,则连签天数+1
else:
# 如果没有断签前记录,则连签天数+1
new_streak = original_streak + 1
self.LOG.info(f"普通补签: {original_streak} + 1 = {new_streak}")
@@ -485,7 +482,7 @@ class MessageSignPlugin(MessagePluginInterface):
self.sign_in_db.update_makeup_sign_with_streak_recovery(
sender, roomid, wx_nick_name,
0, # 补签不增加积分
sign_stat, new_streak,
sign_stat, new_streak, # 使用恢复后的连签天数
yesterday_time, # 设置last_sign_date为昨天
0 # 清除previous_streak因为已经恢复了
)
@@ -494,7 +491,7 @@ class MessageSignPlugin(MessagePluginInterface):
self.sign_in_db.update_sign_record_with_streak_recovery(
sender, roomid, wx_nick_name,
0, # 补签不增加积分
yesterday_time, new_streak,
yesterday_time, new_streak, # 使用恢复后的连签天数
last_sign_date, # 保留原来的last_sign_date
0 # 清除previous_streak因为已经恢复了
)