修复签到bug
This commit is contained in:
@@ -454,6 +454,8 @@ class MessageSignPlugin(MessagePluginInterface):
|
|||||||
)
|
)
|
||||||
return True, "扣除积分失败"
|
return True, "扣除积分失败"
|
||||||
|
|
||||||
|
# 在_handle_makeup_sign方法中,修改计算新连签天数的逻辑
|
||||||
|
|
||||||
# 获取原连签天数和断签前连签天数
|
# 获取原连签天数和断签前连签天数
|
||||||
original_streak = user_record['signin_streak']
|
original_streak = user_record['signin_streak']
|
||||||
previous_streak = user_record.get('previous_streak', 0)
|
previous_streak = user_record.get('previous_streak', 0)
|
||||||
@@ -461,18 +463,13 @@ class MessageSignPlugin(MessagePluginInterface):
|
|||||||
# 计算新的连签天数
|
# 计算新的连签天数
|
||||||
new_streak = original_streak
|
new_streak = original_streak
|
||||||
|
|
||||||
# 如果今天已签到且有断签前记录,恢复连签
|
# 如果有断签前记录,直接使用断签前连签天数+1
|
||||||
if sign_stat and sign_stat >= today_start and previous_streak > 0:
|
if previous_streak > 0:
|
||||||
# 恢复连签:断签前连签天数 + 1 (今天已签到)
|
# 恢复连签:断签前连签天数 + 1 (补签后相当于连续签到)
|
||||||
new_streak = previous_streak + 1
|
new_streak = previous_streak + 1
|
||||||
self.LOG.info(f"恢复连签: {previous_streak} + 1 = {new_streak}")
|
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:
|
else:
|
||||||
|
# 如果没有断签前记录,则连签天数+1
|
||||||
new_streak = original_streak + 1
|
new_streak = original_streak + 1
|
||||||
self.LOG.info(f"普通补签: {original_streak} + 1 = {new_streak}")
|
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(
|
self.sign_in_db.update_makeup_sign_with_streak_recovery(
|
||||||
sender, roomid, wx_nick_name,
|
sender, roomid, wx_nick_name,
|
||||||
0, # 补签不增加积分
|
0, # 补签不增加积分
|
||||||
sign_stat, new_streak,
|
sign_stat, new_streak, # 使用恢复后的连签天数
|
||||||
yesterday_time, # 设置last_sign_date为昨天
|
yesterday_time, # 设置last_sign_date为昨天
|
||||||
0 # 清除previous_streak,因为已经恢复了
|
0 # 清除previous_streak,因为已经恢复了
|
||||||
)
|
)
|
||||||
@@ -494,7 +491,7 @@ class MessageSignPlugin(MessagePluginInterface):
|
|||||||
self.sign_in_db.update_sign_record_with_streak_recovery(
|
self.sign_in_db.update_sign_record_with_streak_recovery(
|
||||||
sender, roomid, wx_nick_name,
|
sender, roomid, wx_nick_name,
|
||||||
0, # 补签不增加积分
|
0, # 补签不增加积分
|
||||||
yesterday_time, new_streak,
|
yesterday_time, new_streak, # 使用恢复后的连签天数
|
||||||
last_sign_date, # 保留原来的last_sign_date
|
last_sign_date, # 保留原来的last_sign_date
|
||||||
0 # 清除previous_streak,因为已经恢复了
|
0 # 清除previous_streak,因为已经恢复了
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user