```
refactor(login): 重构登录重置逻辑,使用 defer 替代 goroutine 将每日任务重置逻辑从 goroutine 改为 defer 执行,确保在函数结束时正确重置任务状态。 同时将 TaskInfo 中的 Info 字段重命名为 Data,保持结构一致性。 refactor(task): 统一任务数据字段名为 Data 将 task 相关结构体中的 Info 字段统一
This commit is contained in:
@@ -56,6 +56,11 @@ type Pet struct {
|
||||
Data string `gorm:"type:text;not null;comment:'精灵全部数据'" json:"data"`
|
||||
}
|
||||
|
||||
type PetS struct {
|
||||
Pet
|
||||
Data []PetInfo `orm:"data" dc:"资源规格"`
|
||||
}
|
||||
|
||||
func LastFourElements[T any](s []T) []T {
|
||||
n := len(s)
|
||||
if n <= 4 {
|
||||
|
||||
@@ -17,10 +17,11 @@ type Task struct {
|
||||
|
||||
// TaskInfo 单个任务的详细信息,包含任务步骤状态和整体状态
|
||||
type TaskInfo struct {
|
||||
Task
|
||||
// TaskInfo 任务步骤信息,
|
||||
// struc:"[20]byte" 确保二进制序列化时固定20字节长度,json标签指定JSON字段名
|
||||
//TaskID uint32 `json:"task_id"` //区分是每日任务还是常规任务,常规为0,每日为1
|
||||
Info []uint32 `struc:"[20]byte" json:"task_info"`
|
||||
Data []uint32 `orm:"data" struc:"[20]byte" json:"task_info"`
|
||||
//LastResetTime time.Time `gorm:"not null;comment:'上次重置时间(UTC)'" json:"last_reset_time"` //这里是每天重置
|
||||
// Status 任务整体状态:0-未接受,1-已接受,2-已完成未领取,3-已完成已领取
|
||||
// json标签指定JSON字段名,与业务状态说明保持一致
|
||||
|
||||
@@ -8,19 +8,15 @@ import (
|
||||
|
||||
// 获取精灵信息 0是仓库,1是背包,2是放生
|
||||
func (s *UserService) GetPetList(flag int) (ret []model.PetInfo) {
|
||||
ret = make([]model.PetInfo, 0)
|
||||
|
||||
m := cool.DBM(s.pet.Model).Where("player_id", s.userid).Where("in_bag", flag)
|
||||
var tt []model.Pet
|
||||
m.Scan(&tt)
|
||||
|
||||
for _, v := range tt {
|
||||
var ret11 model.PetInfo
|
||||
json.Unmarshal([]byte(v.Data), &ret11)
|
||||
|
||||
ret = append(ret, ret11)
|
||||
var tt model.PetS
|
||||
err := m.Scan(&tt)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return
|
||||
return tt.Data
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user