49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package model
|
||
|
||
import (
|
||
"blazing/cool"
|
||
"time"
|
||
)
|
||
|
||
const TableNameDailyTask = "DailyTask"
|
||
|
||
// DailyTask mapped from table <DailyTask>
|
||
type DailyTask struct {
|
||
*cool.Model
|
||
PlayerID uint64 `gorm:"not null;index:idx_DailyTask_by_player_id;comment:'所属玩家ID'" json:"player_id"`
|
||
Data string `gorm:"type:text;not null;comment:'全部数据'" json:"data"`
|
||
}
|
||
|
||
// DailyTaskInfo 单个任务的详细信息,包含任务步骤状态和整体状态
|
||
type DailyTaskInfo struct {
|
||
// DailyTaskInfo 任务步骤信息,对应Java的@ArraySerialize(FIXED_LENGTH=20)注解
|
||
// struc:"[20]byte" 确保二进制序列化时固定20字节长度,json标签指定JSON字段名
|
||
DailyTaskInfo []uint32 `struc:"[20]byte" json:"DailyTask_info"`
|
||
LastResetTime time.Time `gorm:"not null;comment:'上次重置时间(UTC)'" json:"last_reset_time"` //这里是每天重置
|
||
// Status 任务整体状态:0-未接受,1-已接受,2-已完成未领取,3-已完成已领取
|
||
// json标签指定JSON字段名,与业务状态说明保持一致
|
||
Status byte `json:"status"`
|
||
}
|
||
|
||
// TableName PlayerInfo's table name
|
||
func (*DailyTask) TableName() string {
|
||
return TableNamePlayerInfo
|
||
}
|
||
|
||
// GroupName PlayerInfo's table group
|
||
func (*DailyTask) GroupName() string {
|
||
return "default"
|
||
}
|
||
|
||
// NewPlayerInfo create a new PlayerInfo
|
||
func NewDailyTask() *DailyTask {
|
||
return &DailyTask{
|
||
Model: cool.NewModel(),
|
||
}
|
||
}
|
||
|
||
// init 创建表
|
||
func init() {
|
||
cool.CreateTable(&DailyTask{})
|
||
}
|