Files
bl/modules/player/service/room.go
昔念 026689f3ed ```
feat(cache): 添加复合键缓存操作支持

添加了基于 uint32+string 组合键的缓存操作方法,包括
GetByCompoundKey、SetByCompoundKey、DelByCompoundKey 和
ContainsByCompoundKey 方法,用于处理用户ID和会话ID的组合缓存场景

fix(vscode): 添加 cSpell 配置支持 struc 词汇

refactor(session): 移除过时的会话管理方法

移除了基于单一字符串键的会话管理方法,因为已迁移到使用
复合键的缓存操作方式
```
2026-01-19 18:51:56 +08:00

106 lines
2.0 KiB
Go

package service
import (
"blazing/cool"
"blazing/modules/player/model"
"context"
)
func (s *RoomService) Get(userid uint32) model.BaseHouseEx {
//todo待测试
var ttt model.BaseHouseEx
m := s.TestModel(s.Model)
m.Where("player_id", userid).Scan(&ttt)
return ttt
}
// func (s *RoomService) Add(id, count uint32) {
// //todo待测试
// var ttt model.BaseHouseEx
// m := s.TestModel(s.Model)
// m.Scan(&ttt)
// if ttt.OwnedItems == nil {
// ttt.OwnedItems = make(map[uint32]uint32)
// }
// t, ok := ttt.OwnedItems[id]
// if ok {
// ttt.OwnedItems[id] = t + count
// } else {
// ttt.OwnedItems[id] = count
// }
// ttt.PlayerID = uint64(s.userid)
// m.Save(ttt)
// }
func (s *RoomService) Set(id []model.FitmentShowInfo) {
//todo待测试
var ttt model.BaseHouseEx
m := s.TestModel(s.Model)
m.Scan(&ttt)
ttt.PlacedItems = id
ttt.UsedItems = make(map[uint32]uint32)
for _, ids := range id {
_, ok := ttt.UsedItems[ids.Id]
if !ok {
ttt.UsedItems[ids.Id] = 1
} else {
ttt.UsedItems[ids.Id] = ttt.UsedItems[ids.Id] + 1
}
}
ttt.PlayerID = uint64(s.userid)
m.Save(ttt)
}
func (s *RoomService) Show(cactime []uint32) {
//todo待测试
var ttt model.BaseHouseEx
m := s.TestModel(s.Model)
m.Scan(&ttt)
ttt.ShowPokemon = cactime
ttt.PlayerID = uint64(s.userid)
m.Save(ttt)
}
// /添加进来的物品一定是保证存在的
type RoomService struct {
BaseService
}
func NewRoomService(id uint32) *RoomService {
return &RoomService{
BaseService: BaseService{userid: id,
Service: &cool.Service{Model: model.NewBaseHouse(), UniqueKey: map[string]string{
"player_id": "角色名称不能重复",
}, PageQueryOp: &cool.QueryOp{
KeyWordField: []string{"player_id"},
Where: func(ctx context.Context) [][]interface{} {
var (
//admin = cool.GetAdmin(ctx)
//userId = admin.UserId
)
return [][]interface{}{
// {"player_id", userId, true},
// {"free", 0, true},
}
},
}},
},
}
}