feat(cache): 添加复合键缓存操作支持 添加了基于 uint32+string 组合键的缓存操作方法,包括 GetByCompoundKey、SetByCompoundKey、DelByCompoundKey 和 ContainsByCompoundKey 方法,用于处理用户ID和会话ID的组合缓存场景 fix(vscode): 添加 cSpell 配置支持 struc 词汇 refactor(session): 移除过时的会话管理方法 移除了基于单一字符串键的会话管理方法,因为已迁移到使用 复合键的缓存操作方式 ```
47 lines
1.4 KiB
Go
47 lines
1.4 KiB
Go
package controller
|
|
|
|
import (
|
|
"blazing/common/socket/errorcode"
|
|
"blazing/logic/service/pet"
|
|
"blazing/logic/service/player"
|
|
"blazing/logic/service/room"
|
|
|
|
"github.com/jinzhu/copier"
|
|
)
|
|
|
|
// SetFitment 设置基地家具摆放
|
|
// data: 包含家具列表的输入信息
|
|
// c: 当前玩家对象
|
|
// 返回: 空结果和错误码
|
|
func (h Controller) SetFitment(data *room.SET_FITMENT, c *player.Player) (result *room.NullInfo, err errorcode.ErrorCode) {
|
|
|
|
c.Service.Room.Set(data.Fitments)
|
|
return
|
|
}
|
|
|
|
// SetPet 设置基地展示的精灵
|
|
// data: 包含精灵展示列表的输入信息
|
|
// c: 当前玩家对象
|
|
// 返回: 精灵展示列表和错误码
|
|
func (h Controller) SetPet(data *room.C2S_PET_ROOM_SHOW, c *player.Player) (result *room.S2C_PET_ROOM_SHOW, err errorcode.ErrorCode) {
|
|
var showPetCatchTimes []uint32
|
|
for _, petShowInfo := range data.PetShowList {
|
|
if petShowInfo.CatchTime != 0 {
|
|
showPetCatchTimes = append(showPetCatchTimes, petShowInfo.CatchTime)
|
|
}
|
|
}
|
|
c.Service.Room.Show(showPetCatchTimes)
|
|
result = &room.S2C_PET_ROOM_SHOW{}
|
|
result.PetShowList = make([]pet.PetShortInfo, len(showPetCatchTimes))
|
|
for _, catchTime := range showPetCatchTimes {
|
|
petInfo := c.Service.Pet.PetInfo_One(catchTime)
|
|
if petInfo.Data.ID == 0 {
|
|
continue
|
|
}
|
|
var petShortInfo pet.PetShortInfo
|
|
copier.Copy(&petShortInfo, &petInfo.Data)
|
|
result.PetShowList = append(result.PetShowList, petShortInfo)
|
|
}
|
|
return
|
|
}
|