📋 表概述

calendar_invites 表记录日历活动中所有被邀请的参与者信息。每条记录表示一位玩家被邀请参加某日历活动,包含邀请状态(待定/接受/拒绝)、回复时间和参与者排名等。

主键为 id(BIGINT类型)。event 字段关联 calendar_events.id,invitee 是被邀请者,sender 是邀请发起者。

📊 表结构

字段名类型默认值说明
idbigint UNSIGNED0邀请记录ID(主键)
eventbigint UNSIGNED0关联的活动事件ID(calendar_events.id)
inviteeint UNSIGNED0被邀请者角色GUID
senderint UNSIGNED0邀请发起者角色GUID
statustinyint UNSIGNED0邀请状态
statustimeint UNSIGNED0状态更新时间(Unix时间戳)
ranktinyint UNSIGNED0参与者在活动中的排名
textvarchar(255)''附加文本/备注

🔍 重要字段详解

📬 status - 邀请状态

详细说明:被邀请者的当前回应状态。
  • 0 = 待定(未回应)
  • 1 = 已接受
  • 2 = 已拒绝
  • 3 = 已确认(活动开始后的参与确认)
  • 4 = 已删除/已移除

🏅 rank - 参与者排名

详细说明:参与者在活动中的角色/级别。
  • 0 = 普通参与者
  • 1 = 主持人/管理员
  • 用于管理活动中的权限分配

⏰ statustime - 回应时间

详细说明:记录被邀请者回应邀请的时间。
  • Unix时间戳格式
  • status=0(待定)时 statustime 通常为0
  • 可通过 FROM_UNIXTIME(statustime) 查看回应日期

💡 SQL示例

示例1:查询某活动的所有参与者

SELECT ci.id, ci.invitee, c.name AS invitee_name, ci.status, ci.rank, ci.text, FROM_UNIXTIME(ci.statustime) AS reply_time FROM calendar_invites ci JOIN characters c ON c.guid = ci.invitee WHERE ci.event = 12345 ORDER BY ci.status, ci.rank;

示例2:统计某玩家待回应的活动邀请

SELECT ce.title, ce.eventtime, ci.status FROM calendar_invites ci JOIN calendar_events ce ON ce.id = ci.event WHERE ci.invitee = 100 AND ci.status = 0;

❓ 常见问题

Q1: 邀请被拒绝(status=2)会保留多久?
拒绝状态会一直保留直到活动过期被清理。活动结束后可以统一清理相关记录。
Q2: 如何取消某个玩家的活动邀请?
删除对应的 calendar_invites 记录:DELETE FROM calendar_invites WHERE event = X AND invitee = Y;