Files
bl/logic/controller/room_set.go
昔念 6368e2f2e9 feat(room): 增加房间宠物信息获取逻辑并优化展示条件
新增 Controller.RoomPetInfo 方法用于获取指定用户的房间宠物详细信息,
同时修复了宠物展示时可能因空数据导致的问题。在设置房间宠物展示和
处理房间装饰时增加对 CatchTime 和 ID
2025-12-13 23:52:16 +08:00

44 lines
1005 B
Go

package controller
import (
"blazing/common/socket/errorcode"
"blazing/logic/service/pet"
"blazing/logic/service/player"
"blazing/logic/service/room"
"github.com/jinzhu/copier"
)
// 基地设置
func (h Controller) SET_FITMENT(data *room.SET_FITMENT, c *player.Player) (result *room.NullInfo, err errorcode.ErrorCode) {
c.Service.Room.Set(data.Fitments)
return
}
func (h Controller) SET_Pet(data *room.C2S_PET_ROOM_SHOW, c *player.Player) (result *room.S2C_PET_ROOM_SHOW, err errorcode.ErrorCode) {
var showpet []uint32
for _, v := range data.PetShowList {
if v.CatchTime != 0 {
showpet = append(showpet, v.CatchTime)
}
}
c.Service.Room.Show(showpet)
result = &room.S2C_PET_ROOM_SHOW{}
result.PetShowList = make([]pet.PetShortInfo, len(showpet))
for _, v := range showpet {
r1 := c.Service.Pet.PetInfo_One(v)
if r1.Data.ID == 0 {
continue
}
var r12 pet.PetShortInfo
copier.Copy(&r12, &r1.Data)
result.PetShowList = append(result.PetShowList, r12)
}
return
}