151 lines
14 KiB
Go
151 lines
14 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// InviteCampaignConfig 保存邀请活动主配置。
|
|
type InviteCampaignConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"` // 配置主键
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_invite_campaign_sys_origin"` // 系统标识
|
|
Enabled bool `gorm:"column:enabled"` // 活动开关
|
|
DownloadURL string `gorm:"column:download_url;size:512"` // 下载链接
|
|
ShareTitle string `gorm:"column:share_title;size:255"` // 分享标题
|
|
ShareDesc string `gorm:"column:share_desc;size:255"` // 分享描述
|
|
ServiceContact string `gorm:"column:service_contact;size:255"` // 客服联系方式
|
|
Timezone string `gorm:"column:timezone;size:64"` // 活动时区
|
|
AntiCheatSameIPOnce bool `gorm:"column:anti_cheat_same_ip_once"` // 同 IP 仅允许命中一次
|
|
AntiCheatSameDeviceOnce bool `gorm:"column:anti_cheat_same_device_once"` // 同设备仅允许命中一次
|
|
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
|
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
|
CreateUser *int64 `gorm:"column:create_user"` // 创建用户
|
|
UpdateUser *int64 `gorm:"column:update_user"` // 更新用户
|
|
}
|
|
|
|
// TableName 返回邀请活动配置表名。
|
|
func (InviteCampaignConfig) TableName() string { return "invite_campaign_config" }
|
|
|
|
// InviteCampaignRewardRule 保存邀请活动奖励规则。
|
|
type InviteCampaignRewardRule struct {
|
|
ID int64 `gorm:"column:id;primaryKey"` // 规则主键
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_invite_rule_sys_type_sort,priority:1"` // 系统标识
|
|
RuleType string `gorm:"column:rule_type;size:32;index:idx_invite_rule_sys_type_sort,priority:2"` // 规则类型
|
|
ThresholdValue int64 `gorm:"column:threshold_value"` // 达标阈值
|
|
GoldAmount int64 `gorm:"column:gold_amount"` // 金币奖励
|
|
RewardGroupID *int64 `gorm:"column:reward_group_id"` // 道具奖励组 ID
|
|
Enabled bool `gorm:"column:enabled"` // 规则是否启用
|
|
Sort int `gorm:"column:sort;index:idx_invite_rule_sys_type_sort,priority:3"` // 展示排序
|
|
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
|
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
|
CreateUser *int64 `gorm:"column:create_user"` // 创建用户
|
|
UpdateUser *int64 `gorm:"column:update_user"` // 更新用户
|
|
}
|
|
|
|
// TableName 返回邀请活动奖励规则表名。
|
|
func (InviteCampaignRewardRule) TableName() string { return "invite_campaign_reward_rule" }
|
|
|
|
// InviteCampaignRelation 记录邀请人和被邀请人的绑定关系。
|
|
type InviteCampaignRelation struct {
|
|
ID int64 `gorm:"column:id;primaryKey"` // 关系主键
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_invite_relation_sys_inviter,priority:1;index:uk_invite_relation_invitee,priority:1,unique"` // 系统标识
|
|
InviterUserID int64 `gorm:"column:inviter_user_id;index:idx_invite_relation_sys_inviter,priority:2"` // 邀请人用户 ID
|
|
InviteeUserID int64 `gorm:"column:invitee_user_id;index:uk_invite_relation_invitee,priority:2,unique"` // 被邀请人用户 ID
|
|
InviteCode string `gorm:"column:invite_code;size:32"` // 绑定时使用的邀请码
|
|
BindIP string `gorm:"column:bind_ip;size:128;index:idx_invite_relation_ip"` // 绑定 IP
|
|
DeviceFingerprint string `gorm:"column:device_fingerprint;size:255;index:idx_invite_relation_device"` // 设备指纹
|
|
EligibleStatus string `gorm:"column:eligible_status;size:32"` // 是否符合奖励资格
|
|
BlockReason string `gorm:"column:block_reason;size:255"` // 被风控拦截原因
|
|
BindTime time.Time `gorm:"column:bind_time"` // 绑定时间
|
|
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
|
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
|
}
|
|
|
|
// TableName 返回邀请关系表名。
|
|
func (InviteCampaignRelation) TableName() string { return "invite_campaign_relation" }
|
|
|
|
// InviteCampaignInviteeProgress 维护被邀请人的充值进度与有效状态。
|
|
type InviteCampaignInviteeProgress struct {
|
|
ID int64 `gorm:"column:id;primaryKey"` // 进度主键
|
|
RelationID int64 `gorm:"column:relation_id;uniqueIndex:uk_invitee_progress_relation"` // 关联邀请关系 ID
|
|
SysOrigin string `gorm:"column:sys_origin;size:32"` // 系统标识
|
|
InviterUserID int64 `gorm:"column:inviter_user_id;index:idx_invitee_progress_inviter"` // 邀请人用户 ID
|
|
InviteeUserID int64 `gorm:"column:invitee_user_id;uniqueIndex:uk_invitee_progress_invitee"` // 被邀请人用户 ID
|
|
TotalRecharge int64 `gorm:"column:total_recharge_coins"` // 累计充值金币
|
|
ValidUser bool `gorm:"column:valid_user"` // 是否已成为有效用户
|
|
ValidTime *time.Time `gorm:"column:valid_time"` // 成为有效用户的时间
|
|
RewardedRuleIDs string `gorm:"column:rewarded_rule_ids;size:255"` // 已发放的规则 ID 集合
|
|
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
|
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
|
}
|
|
|
|
// TableName 返回被邀请人进度表名。
|
|
func (InviteCampaignInviteeProgress) TableName() string { return "invite_campaign_invitee_progress" }
|
|
|
|
// InviteCampaignMonthlyProgress 汇总邀请人当前任务周期邀请进展。
|
|
type InviteCampaignMonthlyProgress struct {
|
|
ID int64 `gorm:"column:id;primaryKey"` // 统计主键
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_invite_monthly_progress,priority:1"` // 系统标识
|
|
InviterUserID int64 `gorm:"column:inviter_user_id;uniqueIndex:uk_invite_monthly_progress,priority:2"` // 邀请人用户 ID
|
|
MonthKey string `gorm:"column:month_key;size:16;uniqueIndex:uk_invite_monthly_progress,priority:3"` // 任务周期标识
|
|
InviteCount int64 `gorm:"column:invite_count"` // 邀请人数
|
|
ValidUserCount int64 `gorm:"column:valid_user_count"` // 有效用户数
|
|
TotalRecharge int64 `gorm:"column:total_recharge_coins"` // 累计充值金币
|
|
RewardGoldCoins int64 `gorm:"column:reward_gold_coins"` // 累计发放金币
|
|
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
|
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
|
}
|
|
|
|
// TableName 返回邀请任务周期进度表名。
|
|
func (InviteCampaignMonthlyProgress) TableName() string { return "invite_campaign_monthly_progress" }
|
|
|
|
// InviteCampaignTaskClaim 记录任务奖励领取行为,防止重复领取。
|
|
type InviteCampaignTaskClaim struct {
|
|
ID int64 `gorm:"column:id;primaryKey"` // 领取记录主键
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_invite_task_claim,priority:1"` // 系统标识
|
|
InviterUserID int64 `gorm:"column:inviter_user_id;uniqueIndex:uk_invite_task_claim,priority:2"` // 邀请人用户 ID
|
|
MonthKey string `gorm:"column:month_key;size:16;uniqueIndex:uk_invite_task_claim,priority:3"` // 任务周期标识
|
|
RuleID int64 `gorm:"column:rule_id;uniqueIndex:uk_invite_task_claim,priority:4"` // 规则 ID
|
|
ClaimTime time.Time `gorm:"column:claim_time"` // 领取时间
|
|
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
|
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
|
}
|
|
|
|
// TableName 返回邀请任务领取表名。
|
|
func (InviteCampaignTaskClaim) TableName() string { return "invite_campaign_task_claim" }
|
|
|
|
// InviteCampaignRewardLog 记录邀请活动金币或道具发奖明细。
|
|
type InviteCampaignRewardLog struct {
|
|
ID int64 `gorm:"column:id;primaryKey"` // 发奖日志主键
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_invite_reward_target"` // 系统标识
|
|
RelationID *int64 `gorm:"column:relation_id"` // 关联邀请关系 ID
|
|
InviterUserID *int64 `gorm:"column:inviter_user_id"` // 邀请人用户 ID
|
|
InviteeUserID *int64 `gorm:"column:invitee_user_id"` // 被邀请人用户 ID
|
|
TargetUserID int64 `gorm:"column:target_user_id;index:idx_invite_reward_target"` // 奖励接收用户 ID
|
|
RuleID *int64 `gorm:"column:rule_id"` // 命中的规则 ID
|
|
RewardScene string `gorm:"column:reward_scene;size:32"` // 奖励场景
|
|
BusinessKey string `gorm:"column:business_key;size:128;uniqueIndex:uk_invite_reward_business"` // 业务幂等键
|
|
GoldAmount int64 `gorm:"column:gold_amount"` // 金币奖励数
|
|
RewardGroupID *int64 `gorm:"column:reward_group_id"` // 奖励组 ID
|
|
Status string `gorm:"column:status;size:32"` // 发奖状态
|
|
ErrorMessage string `gorm:"column:error_message;size:255"` // 错误信息
|
|
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
|
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
|
}
|
|
|
|
// TableName 返回邀请发奖日志表名。
|
|
func (InviteCampaignRewardLog) TableName() string { return "invite_campaign_reward_log" }
|
|
|
|
// InviteCampaignRechargeEvent 保存被邀请人的充值事件,用于累计进度和奖励判定。
|
|
type InviteCampaignRechargeEvent struct {
|
|
ID int64 `gorm:"column:id;primaryKey"` // 充值事件主键
|
|
SysOrigin string `gorm:"column:sys_origin;size:32"` // 系统标识
|
|
OrderID string `gorm:"column:order_id;size:128;uniqueIndex:uk_invite_recharge_order"` // 订单 ID
|
|
InviterUserID *int64 `gorm:"column:inviter_user_id"` // 邀请人用户 ID
|
|
InviteeUserID int64 `gorm:"column:invitee_user_id"` // 被邀请人用户 ID
|
|
RechargeCoins int64 `gorm:"column:recharge_coins"` // 本次充值金币
|
|
PayTime time.Time `gorm:"column:pay_time"` // 支付时间
|
|
CreateTime time.Time `gorm:"column:create_time"` // 创建时间
|
|
UpdateTime time.Time `gorm:"column:update_time"` // 更新时间
|
|
}
|
|
|
|
// TableName 返回邀请充值事件表名。
|
|
func (InviteCampaignRechargeEvent) TableName() string { return "invite_campaign_recharge_event" }
|