签到功能加入了总天数记录。
This commit is contained in:
@@ -84,7 +84,8 @@ class SignInRedisDB:
|
||||
"""增加用户签到总次数"""
|
||||
key = self.get_user_total_sign_count_key(wx_id, group_id)
|
||||
with self.get_redis_connection() as redis_client:
|
||||
return redis_client.incr(key)
|
||||
count = redis_client.incr(key)
|
||||
return count
|
||||
|
||||
def get_user_total_sign_count(self, wx_id: str, group_id: str) -> int:
|
||||
"""获取用户签到总次数"""
|
||||
@@ -96,5 +97,9 @@ class SignInRedisDB:
|
||||
def set_user_total_sign_count(self, wx_id: str, group_id: str, count: int) -> bool:
|
||||
"""设置用户签到总次数"""
|
||||
key = self.get_user_total_sign_count_key(wx_id, group_id)
|
||||
with self.get_redis_connection() as redis_client:
|
||||
return redis_client.set(key, count)
|
||||
try:
|
||||
with self.get_redis_connection() as redis_client:
|
||||
redis_client.set(key, count)
|
||||
return True
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
@@ -252,8 +252,10 @@ class MessageSignPlugin(MessagePluginInterface):
|
||||
|
||||
# 如果 sign_stat 已经大于或等于今天的零点,则认为用户已经签到过了
|
||||
if sign_stat >= today_start:
|
||||
# 获取总签到次数(不增加)
|
||||
total_sign_count = self.sign_in_redis.get_user_total_sign_count(sender, roomid)
|
||||
client_msg_id, create_time, new_msg_id = await self.bot.send_text_message(
|
||||
(roomid if roomid else sender), f"您今天已经签到过了!", sender)
|
||||
(roomid if roomid else sender), f"您今天已经签到过了!\n总签到次数:{total_sign_count}次", sender)
|
||||
revoke.add_message_to_revoke(roomid, client_msg_id, create_time, new_msg_id, 4)
|
||||
return False, "已签到"
|
||||
|
||||
@@ -537,6 +539,15 @@ class MessageSignPlugin(MessagePluginInterface):
|
||||
last_sign_date, # 保留原来的last_sign_date
|
||||
0 # 清除previous_streak,因为已经恢复了
|
||||
)
|
||||
|
||||
# 记录签到历史
|
||||
self.sign_in_db.create_sign_history(
|
||||
sender, roomid, yesterday_time, current_time,
|
||||
True, 0, new_streak
|
||||
)
|
||||
|
||||
# 更新Redis中的签到总次数
|
||||
total_sign_count = self.sign_in_redis.increment_user_sign_count(sender, roomid)
|
||||
|
||||
# 发送成功消息
|
||||
success_message = f"✅ 补签成功!\n💰 消费 {self.makeup_cost} 积分\n"
|
||||
@@ -546,7 +557,9 @@ class MessageSignPlugin(MessagePluginInterface):
|
||||
success_message += f"🎉 恢复连签!连续签到天数:{new_streak}\n"
|
||||
else:
|
||||
success_message += f"🔄 连续签到天数:{new_streak}\n"
|
||||
|
||||
|
||||
# 添加总签到次数信息
|
||||
success_message += f"📊 总签到次数:{total_sign_count}次\n"
|
||||
success_message += f"💰 当前积分:{user_points['total_points'] - self.makeup_cost}"
|
||||
|
||||
await self.bot.send_text_message(
|
||||
|
||||
Reference in New Issue
Block a user