diff --git a/plugins/message_sign/main.py b/plugins/message_sign/main.py index a1bfcaf..0f0d7a5 100644 --- a/plugins/message_sign/main.py +++ b/plugins/message_sign/main.py @@ -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,因为已经恢复了 )