42 lines
1.9 KiB
Go
42 lines
1.9 KiB
Go
|
|
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" }
|