修复签到bug
This commit is contained in:
@@ -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,因为已经恢复了
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user