From d34ec2eed15b1ff7a4a041db386d127c66ba111d Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Sat, 16 Aug 2025 01:40:31 +0000 Subject: [PATCH] =?UTF-8?q?refactor(model):=20=E9=87=8D=E6=9E=84=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E6=95=B0=E6=8D=AE=E6=A8=A1=E5=9E=8B=E5=B9=B6=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AE=A0=E7=89=A9=E3=80=81=E9=81=93=E5=85=B7=E5=92=8C?= =?UTF-8?q?=E5=85=83=E7=A5=9E=E7=8F=A0=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/service/login/LoginSidInfo.go | 4 +- .../model/{player_bag_item.go => item.go} | 0 modules/blazing/model/{PetInfo.go => pet.go} | 0 modules/blazing/model/player.go | 104 +++++++++++++++++- modules/blazing/model/playerinfo.go | 94 ---------------- .../blazing/model/{soul_orb.go => soul.go} | 12 +- 6 files changed, 106 insertions(+), 108 deletions(-) rename modules/blazing/model/{player_bag_item.go => item.go} (100%) rename modules/blazing/model/{PetInfo.go => pet.go} (100%) delete mode 100644 modules/blazing/model/playerinfo.go rename modules/blazing/model/{soul_orb.go => soul.go} (76%) diff --git a/logic/service/login/LoginSidInfo.go b/logic/service/login/LoginSidInfo.go index 1b702852c..5539645af 100644 --- a/logic/service/login/LoginSidInfo.go +++ b/logic/service/login/LoginSidInfo.go @@ -48,12 +48,12 @@ func (l *InInfo) CheakSession() bool { } type OutInfo struct { - model.PlayerLoginInfo + model.PlayerInfo } func NewOutInfo() *OutInfo { l := &OutInfo{ - PlayerLoginInfo: model.PlayerLoginInfo{ + PlayerInfo: model.PlayerInfo{ Clothes: make([]model.PeopleItemInfo, 0), PetList: make([]model.PetInfo, 0), }, diff --git a/modules/blazing/model/player_bag_item.go b/modules/blazing/model/item.go similarity index 100% rename from modules/blazing/model/player_bag_item.go rename to modules/blazing/model/item.go diff --git a/modules/blazing/model/PetInfo.go b/modules/blazing/model/pet.go similarity index 100% rename from modules/blazing/model/PetInfo.go rename to modules/blazing/model/pet.go diff --git a/modules/blazing/model/player.go b/modules/blazing/model/player.go index 6623cbc51..fbc5cd3cf 100644 --- a/modules/blazing/model/player.go +++ b/modules/blazing/model/player.go @@ -6,30 +6,122 @@ import ( const TableNamePlayerInfo = "player_info" -type PlayerInfo struct { +type Player struct { *cool.Model PlayerID uint64 `gorm:"not null;index:idx_pet_by_player_id;comment:'所属玩家ID'" json:"player_id"` Data string `gorm:"type:text;not null;comment:'全部数据'" json:"data"` } +type Pos struct { + X uint32 `struc:"uint32" default:"0"` + Y uint32 `struc:"uint32" default:"0"` +} + +// PeopleItemInfo 穿戴装备信息结构(对应Java的PeopleItemInfo) +type PeopleItemInfo struct { + ID uint32 `struc:"uint32"` // 装备id(对应Java的@UInt long) + Level uint32 `struc:"uint32" default:"1"` // 未知字段(默认值1,对应Java的@Builder.Default) +} + +// InitDefaults 初始化默认值(确保默认值正确赋值) +func (p *PeopleItemInfo) InitDefaults() { + p.Level = 1 // 未知字段默认值1,与Java的@Builder.Default保持一致 +} + +type PlayerInfo struct { + GoldBean int32 `struc:"skip" json:"nieo_gold_bean"` // 金豆(特殊货币) + + ExpPool int64 `struc:"skip" json:"exp_pool"` // 累计经验池 + + // OutInfo 字段 + UserID uint32 `struc:"uint32" json:"user_id"` // 米米号 通过sid拿到 + RegisterTime uint32 `struc:"uint32" json:"register_time"` // 注册时间(秒时间戳) + Nick string `struc:"[16]byte" default:"seer" json:"nick"` // 16字节昵称 + Vip uint16 `struc:"uint16" json:"vip"` // 固定0 + Viped uint16 `struc:"uint16" default:"15" json:"viped"` // 固定15 + DSFlag uint32 `struc:"uint32" json:"ds_flag"` // 固定0 + Color uint32 `struc:"uint32" json:"color"` // 机器人颜色RGB颜色值(uint32,实际为3个uint8) + Texture uint32 `struc:"uint32" json:"texture"` // 固定0 + Energy uint32 `struc:"uint32" default:"3000" json:"energy"` // 固定3000 + Coins uint32 `struc:"uint32" json:"coins"` // 赛尔豆 + FightBadge uint32 `struc:"uint32" json:"fight_badge"` // 固定0 + MapID uint32 `struc:"uint32" default:"1" json:"map_id"` // 上线地图ID + Pos Pos `json:"pos"` // 坐标 + TimeToday uint32 `struc:"uint32" json:"time_today"` // 已消耗时间(秒) + TimeLimit uint32 `struc:"uint32" json:"time_limit"` // 总电池限制(秒) + IsClothHalfDay byte `struc:"byte" json:"is_cloth_half_day"` // 活动标志0/1 + IsRoomHalfDay byte `struc:"byte" json:"is_room_half_day"` // 活动标志0/1 + IFortressHalfDay byte `struc:"byte" json:"i_fortress_half_day"` // 活动标志0/1 + IsHQHalfDay byte `struc:"byte" json:"is_hq_half_day"` // 活动标志0/1 + LoginCount uint32 `struc:"uint32" json:"login_count"` // 固定0 + Inviter uint32 `struc:"uint32" json:"inviter"` // 固定0 + NewInviteeCount uint32 `struc:"uint32" json:"new_invitee_count"` // 固定0 + VipLevel uint32 `struc:"uint32" default:"8" json:"vip_level"` // 固定8 + VipValue uint32 `struc:"uint32" default:"80000" json:"vip_value"` // 固定80000 + VipStage uint32 `struc:"uint32" default:"1" json:"vip_stage"` // 固定1 + AutoCharge uint32 `struc:"uint32" default:"1" json:"auto_charge"` // 固定1 + VipEndTime uint32 `struc:"uint32" default:"4294967295" json:"vip_end_time"` // 尽可能大值 + FreshManBonus uint32 `struc:"uint32" json:"fresh_man_bonus"` // 固定0 + NonoChipList [80]byte `struc:"[80]byte" json:"nono_chip_list"` // 超no芯片列表 + DailyResArr [50]byte `struc:"[50]byte" default:"3" json:"daily_res_arr"` // 任务状态数组默认3 + TeacherID uint32 `struc:"uint32" json:"teacher_id"` // 教官id + StudentID uint32 `struc:"uint32" json:"student_id"` // 学员id + GraduationCount uint32 `struc:"uint32" default:"0" json:"graduation_count"` // 毕业人数 + MaxPuniLv uint32 `struc:"uint32" default:"0" json:"max_puni_lv"` // 默认0 + PetMaxLevel uint32 `struc:"uint32" json:"pet_max_level"` // 精灵最高等级 + AllPetNumber uint32 `struc:"uint32" json:"all_pet_number"` // 精灵数量 + MonKingWin uint32 `struc:"uint32" json:"mon_king_win"` // 精灵王胜场 + CurrentStage uint32 `struc:"uint32" json:"current_stage"` // 勇者之塔层数 + MaxStage uint32 `struc:"uint32" json:"max_stage"` // 试炼之塔最高层 + CurrentFreshStage uint32 `struc:"uint32" json:"current_fresh_stage"` // 当前试炼层数 + MaxFreshStage uint32 `struc:"uint32" json:"max_fresh_stage"` // 最高试炼层 + MaxArenaWins uint32 `struc:"uint32" json:"max_arena_wins"` // 星际擂台连胜 + TwoTimes uint32 `struc:"uint32" default:"0" json:"two_times"` // 默认0 + ThreeTimes uint32 `struc:"uint32" default:"0" json:"three_times"` // 默认0 + AutoFight uint32 `struc:"uint32" default:"0" json:"auto_fight"` // 默认0 + AutoFightTime uint32 `struc:"uint32" default:"0" json:"auto_fight_time"` // 默认0 + EnergyTime uint32 `struc:"uint32" default:"0" json:"energy_time"` // 默认0 + LearnTimes uint32 `struc:"uint32" default:"0" json:"learn_times"` // 默认0 + MonBattleMedal uint32 `struc:"uint32" default:"0" json:"mon_battle_medal"` // 默认0 + RecordCount uint32 `struc:"uint32" default:"0" json:"record_count"` // 默认0 + ObtainTm uint32 `struc:"uint32" default:"0" json:"obtain_tm"` // 默认0 + SoulBeadItemID uint32 `struc:"uint32" json:"soul_bead_item_id"` // 当前元神珠id + ExpireTm uint32 `struc:"uint32" default:"0" json:"expire_tm"` // 默认0 + FuseTimes uint32 `struc:"uint32" default:"0" json:"fuse_times"` // 默认0 + HasNono uint32 `struc:"uint32" default:"1" json:"has_nono"` // 玩家是否有nono + SuperNono uint32 `struc:"uint32" default:"1" json:"super_nono"` // 玩家是否有超能nono + NonoState uint32 `struc:"uint32" default:"4294967295" json:"nono_state"` // 默认-1 + NonoColor uint32 `struc:"uint32" json:"nono_color"` // nono颜色 + NonoNick string `struc:"[16]byte" default:"nono" json:"nono_nick"` // nono名字(16字节) + TeamInfo TeamInfo `struc:"struct" json:"team_info"` // 战队信息24字节 + TeamPkInfo TeamPKInfo `struc:"struct" json:"team_pk_info"` // 8字节 + Reserved byte `struc:"byte" json:"reserved"` // 1字节无内容 + Badge uint32 `struc:"uint32" default:"0" json:"badge"` // 默认0 + Reserved1 [27]byte `struc:"[27]byte" default:"3" json:"reserved1"` // 27字节默认3 + TaskList [500]byte `struc:"[500]byte" default:"3" json:"task_list"` // 任务状态数组500字节,默认3 + PetListCount uint32 `struc:"sizeof=PetList" json:"pet_list_count"` // 精灵列表长度 + PetList []PetInfo ` json:"pet_list"` // 精灵背包内信息 + ClothesCount uint32 `struc:"sizeof=Clothes" json:"clothes_count"` // 穿戴装备数量 + Clothes []PeopleItemInfo ` json:"clothes"` // 穿戴装备 +} // TableName PlayerInfo's table name -func (*PlayerInfo) TableName() string { +func (*Player) TableName() string { return TableNamePlayerInfo } // GroupName PlayerInfo's table group -func (*PlayerInfo) GroupName() string { +func (*Player) GroupName() string { return "default" } // NewPlayerInfo create a new PlayerInfo -func NewPlayer() *PlayerInfo { - return &PlayerInfo{ +func NewPlayer() *Player { + return &Player{ Model: cool.NewModel(), } } // init 创建表 func init() { - cool.CreateTable(&PlayerInfo{}) + cool.CreateTable(&Player{}) } diff --git a/modules/blazing/model/playerinfo.go b/modules/blazing/model/playerinfo.go deleted file mode 100644 index 61b6d99ff..000000000 --- a/modules/blazing/model/playerinfo.go +++ /dev/null @@ -1,94 +0,0 @@ -package model - -type Pos struct { - X uint32 `struc:"uint32" default:"0"` - Y uint32 `struc:"uint32" default:"0"` -} - -// PeopleItemInfo 穿戴装备信息结构(对应Java的PeopleItemInfo) -type PeopleItemInfo struct { - ID uint32 `struc:"uint32"` // 装备id(对应Java的@UInt long) - Level uint32 `struc:"uint32" default:"1"` // 未知字段(默认值1,对应Java的@Builder.Default) -} - -// InitDefaults 初始化默认值(确保默认值正确赋值) -func (p *PeopleItemInfo) InitDefaults() { - p.Level = 1 // 未知字段默认值1,与Java的@Builder.Default保持一致 -} - -type PlayerLoginInfo struct { - GoldBean int32 `struc:"skip" json:"nieo_gold_bean"` // 金豆(特殊货币) - - ExpPool int64 `struc:"skip" json:"exp_pool"` // 累计经验池 - - // OutInfo 字段 - UserID uint32 `struc:"uint32" json:"user_id"` // 米米号 通过sid拿到 - RegisterTime uint32 `struc:"uint32" json:"register_time"` // 注册时间(秒时间戳) - Nick string `struc:"[16]byte" default:"seer" json:"nick"` // 16字节昵称 - Vip uint16 `struc:"uint16" json:"vip"` // 固定0 - Viped uint16 `struc:"uint16" default:"15" json:"viped"` // 固定15 - DSFlag uint32 `struc:"uint32" json:"ds_flag"` // 固定0 - Color uint32 `struc:"uint32" json:"color"` // 机器人颜色RGB颜色值(uint32,实际为3个uint8) - Texture uint32 `struc:"uint32" json:"texture"` // 固定0 - Energy uint32 `struc:"uint32" default:"3000" json:"energy"` // 固定3000 - Coins uint32 `struc:"uint32" json:"coins"` // 赛尔豆 - FightBadge uint32 `struc:"uint32" json:"fight_badge"` // 固定0 - MapID uint32 `struc:"uint32" default:"1" json:"map_id"` // 上线地图ID - Pos Pos `json:"pos"` // 坐标 - TimeToday uint32 `struc:"uint32" json:"time_today"` // 已消耗时间(秒) - TimeLimit uint32 `struc:"uint32" json:"time_limit"` // 总电池限制(秒) - IsClothHalfDay byte `struc:"byte" json:"is_cloth_half_day"` // 活动标志0/1 - IsRoomHalfDay byte `struc:"byte" json:"is_room_half_day"` // 活动标志0/1 - IFortressHalfDay byte `struc:"byte" json:"i_fortress_half_day"` // 活动标志0/1 - IsHQHalfDay byte `struc:"byte" json:"is_hq_half_day"` // 活动标志0/1 - LoginCount uint32 `struc:"uint32" json:"login_count"` // 固定0 - Inviter uint32 `struc:"uint32" json:"inviter"` // 固定0 - NewInviteeCount uint32 `struc:"uint32" json:"new_invitee_count"` // 固定0 - VipLevel uint32 `struc:"uint32" default:"8" json:"vip_level"` // 固定8 - VipValue uint32 `struc:"uint32" default:"80000" json:"vip_value"` // 固定80000 - VipStage uint32 `struc:"uint32" default:"1" json:"vip_stage"` // 固定1 - AutoCharge uint32 `struc:"uint32" default:"1" json:"auto_charge"` // 固定1 - VipEndTime uint32 `struc:"uint32" default:"4294967295" json:"vip_end_time"` // 尽可能大值 - FreshManBonus uint32 `struc:"uint32" json:"fresh_man_bonus"` // 固定0 - NonoChipList [80]byte `struc:"[80]byte" json:"nono_chip_list"` // 超no芯片列表 - DailyResArr [50]byte `struc:"[50]byte" default:"3" json:"daily_res_arr"` // 任务状态数组默认3 - TeacherID uint32 `struc:"uint32" json:"teacher_id"` // 教官id - StudentID uint32 `struc:"uint32" json:"student_id"` // 学员id - GraduationCount uint32 `struc:"uint32" default:"0" json:"graduation_count"` // 毕业人数 - MaxPuniLv uint32 `struc:"uint32" default:"0" json:"max_puni_lv"` // 默认0 - PetMaxLevel uint32 `struc:"uint32" json:"pet_max_level"` // 精灵最高等级 - AllPetNumber uint32 `struc:"uint32" json:"all_pet_number"` // 精灵数量 - MonKingWin uint32 `struc:"uint32" json:"mon_king_win"` // 精灵王胜场 - CurrentStage uint32 `struc:"uint32" json:"current_stage"` // 勇者之塔层数 - MaxStage uint32 `struc:"uint32" json:"max_stage"` // 试炼之塔最高层 - CurrentFreshStage uint32 `struc:"uint32" json:"current_fresh_stage"` // 当前试炼层数 - MaxFreshStage uint32 `struc:"uint32" json:"max_fresh_stage"` // 最高试炼层 - MaxArenaWins uint32 `struc:"uint32" json:"max_arena_wins"` // 星际擂台连胜 - TwoTimes uint32 `struc:"uint32" default:"0" json:"two_times"` // 默认0 - ThreeTimes uint32 `struc:"uint32" default:"0" json:"three_times"` // 默认0 - AutoFight uint32 `struc:"uint32" default:"0" json:"auto_fight"` // 默认0 - AutoFightTime uint32 `struc:"uint32" default:"0" json:"auto_fight_time"` // 默认0 - EnergyTime uint32 `struc:"uint32" default:"0" json:"energy_time"` // 默认0 - LearnTimes uint32 `struc:"uint32" default:"0" json:"learn_times"` // 默认0 - MonBattleMedal uint32 `struc:"uint32" default:"0" json:"mon_battle_medal"` // 默认0 - RecordCount uint32 `struc:"uint32" default:"0" json:"record_count"` // 默认0 - ObtainTm uint32 `struc:"uint32" default:"0" json:"obtain_tm"` // 默认0 - SoulBeadItemID uint32 `struc:"uint32" json:"soul_bead_item_id"` // 当前元神珠id - ExpireTm uint32 `struc:"uint32" default:"0" json:"expire_tm"` // 默认0 - FuseTimes uint32 `struc:"uint32" default:"0" json:"fuse_times"` // 默认0 - HasNono uint32 `struc:"uint32" default:"1" json:"has_nono"` // 玩家是否有nono - SuperNono uint32 `struc:"uint32" default:"1" json:"super_nono"` // 玩家是否有超能nono - NonoState uint32 `struc:"uint32" default:"4294967295" json:"nono_state"` // 默认-1 - NonoColor uint32 `struc:"uint32" json:"nono_color"` // nono颜色 - NonoNick string `struc:"[16]byte" default:"nono" json:"nono_nick"` // nono名字(16字节) - TeamInfo TeamInfo `struc:"struct" json:"team_info"` // 战队信息24字节 - TeamPkInfo TeamPKInfo `struc:"struct" json:"team_pk_info"` // 8字节 - Reserved byte `struc:"byte" json:"reserved"` // 1字节无内容 - Badge uint32 `struc:"uint32" default:"0" json:"badge"` // 默认0 - Reserved1 [27]byte `struc:"[27]byte" default:"3" json:"reserved1"` // 27字节默认3 - TaskList [500]byte `struc:"[500]byte" default:"3" json:"task_list"` // 任务状态数组500字节,默认3 - PetListCount uint32 `struc:"sizeof=PetList" json:"pet_list_count"` // 精灵列表长度 - PetList []PetInfo ` json:"pet_list"` // 精灵背包内信息 - ClothesCount uint32 `struc:"sizeof=Clothes" json:"clothes_count"` // 穿戴装备数量 - Clothes []PeopleItemInfo ` json:"clothes"` // 穿戴装备 -} diff --git a/modules/blazing/model/soul_orb.go b/modules/blazing/model/soul.go similarity index 76% rename from modules/blazing/model/soul_orb.go rename to modules/blazing/model/soul.go index 436bd2d25..8b31ffb5c 100644 --- a/modules/blazing/model/soul_orb.go +++ b/modules/blazing/model/soul.go @@ -9,7 +9,11 @@ const TableNameSoulOrb = "soul_orb" // SoulOrb mapped from table type SoulOrb struct { *cool.Model - PlayerID uint64 `gorm:"not null;index:idx_soul_orb_by_player_id;comment:'所属玩家ID'" json:"player_id"` + PlayerID uint64 `gorm:"not null;index:idx_soul_orb_by_player_id;comment:'所属玩家ID'" json:"player_id"` + Data string `gorm:"type:text;not null;comment:'全部数据'" json:"data"` +} + +type SoulInfo struct { ItemID int64 `gorm:"not null;comment:'对应物品ID'" json:"item_id"` ObtainTime int64 `gorm:"not null;comment:'捕获时间(时间戳)'" json:"obtain_time"` StartHatchTime string `gorm:"comment:'开始孵化时间'" json:"start_hatch_time"` @@ -18,7 +22,7 @@ type SoulOrb struct { IndividualValue int16 `gorm:"not null;comment:'个体值(DV)'" json:"individual_value"` Nature int16 `gorm:"not null;comment:'性格类型'" json:"nature"` AbilityTypeEnum int16 `gorm:"comment:'特性枚举'" json:"ability_type_enum"` - IsShiny int32 `gorm:"not null;default:0;comment:'是否为闪光宠物(1=是,0=否)'" json:"is_shiny"` + Shiny int32 `gorm:"not null;default:0;comment:'是否为闪光宠物(1=是,0=否)'" json:"shiny"` Level int16 `gorm:"not null;default:1;comment:'当前等级'" json:"level"` CurrentExp int32 `gorm:"not null;default:0;comment:'当前等级已获得经验值'" json:"current_exp"` EvHP int16 `gorm:"not null;default:0;comment:'生命值学习力'" json:"ev_hp"` @@ -27,10 +31,6 @@ type SoulOrb struct { EvSpecialAttack int16 `gorm:"not null;default:0;comment:'特殊攻击学习力'" json:"ev_special_attack"` EvSpecialDefense int16 `gorm:"not null;default:0;comment:'特殊防御学习力'" json:"ev_special_defense"` EvSpeed int16 `gorm:"not null;default:0;comment:'速度学习力'" json:"ev_speed"` - Skill1ID int32 `gorm:"not null;default:0;comment:'技能1'" json:"skill_1_id"` - Skill2ID int32 `gorm:"not null;default:0;comment:'技能2'" json:"skill_2_id"` - Skill3ID int32 `gorm:"not null;default:0;comment:'技能3'" json:"skill_3_id"` - Skill4ID int32 `gorm:"not null;default:0;comment:'技能4'" json:"skill_4_id"` } // TableName SoulOrb's table name