game_sync/gamesrv/slotspkg/internal/module/player/playermgr.go

60 lines
1.2 KiB
Go

package player
import (
"fmt"
"github.com/go-redis/redis"
"github.com/tomas-qstarrs/redimo"
"mongo.games.com/game/gamesrv/slotspkg/internal/generic/ddb"
"mongo.games.com/game/gamesrv/slotspkg/internal/generic/global"
"time"
)
var PlayerMgrSington = &PlayerMgr{
Client: ddb.RedimoClient(),
}
const (
PLAYER_INFO = "PLAYERINFO[%v-%v]"
)
type PlayerMgr struct {
*redimo.Client
Redis *redis.Client
}
func (p *PlayerMgr) ModuleName() string {
return "PlayerMgr"
}
func (p *PlayerMgr) Init() {
p.Redis = global.RedisClient
}
func (p *PlayerMgr) getKey(tn string) string {
return fmt.Sprintf("%v.%v.Platform[%v]", global.Project, global.Game, tn)
}
func (p *PlayerMgr) GetPlayerUid(tn, ops string) uint64 {
val, err := p.HGET(p.getKey(tn), ops)
if err != nil {
logger.Logger.Errorf("get player info error: %v", err)
return 0
}
return uint64(val.Int())
}
func (p *PlayerMgr) SetPlayer(tn, ops string, uid uint64) bool {
_, err := p.HSETNX(p.getKey(tn), ops, redimo.IntValue{I: int64(uid)})
if err != nil {
logger.Logger.Errorf("set player err:%v", err)
return false
}
return true
}
func (p *PlayerMgr) Update() {
}
func (p *PlayerMgr) Shutdown() {
}
func init() {
module.RegisteModule(PlayerMgrSington, time.Hour, 0)
}