package model // 积分流水类型常量 const ( PointTypeSignIn = 1 // 每日签到 PointTypeGame = 2 // 游戏奖励 PointTypeShop = 3 // 商城消费 PointTypeBattle = 4 // 对战奖励 PointTypeProp = 5 // 道具使用 PointTypeRegister = 6 // 注册赠送 PointTypeAdmin = 7 // 后台调整 PointTypeVIP = 8 // 开通/续费VIP ) // PointRecord 积分流水表:所有积分变动都记一条 type PointRecord struct { ID int `gorm:"primaryKey" json:"id"` // 流水ID UserID int `gorm:"index" json:"user_id"` // 用户ID ChangePoints int `gorm:"default:0" json:"change_points"` // 变动值(正=获得,负=消耗) Balance int `gorm:"default:0" json:"balance"` // 变动后余额快照 Type int `gorm:"default:1" json:"type"` // 类型:1签到 2游戏 3消费 4对战 5道具 6注册 7后台 RelatedID int `gorm:"default:0" json:"related_id"` // 关联业务ID(订单/记录ID) Remark string `gorm:"size:255" json:"remark"` // 备注说明 CreatedAt int64 `gorm:"autoCreateTime" json:"created_at"` // 发生时间(int 时间戳) } // TableName 指定表名 func (PointRecord) TableName() string { return "point_records" } // SignIn 签到记录表:每人每天一条 type SignIn struct { ID int `gorm:"primaryKey" json:"id"` // 签到ID UserID int `json:"user_id"` // 用户ID SignDay int `json:"sign_day"` // 签到日期(yyyymmdd 整数) Streak int `gorm:"default:1" json:"streak"` // 连续签到天数 Points int `gorm:"default:0" json:"points"` // 本次获得积分 CreatedAt int64 `gorm:"autoCreateTime" json:"created_at"` // 签到时间(int 时间戳) } // TableName 指定表名 func (SignIn) TableName() string { return "sign_ins" }