82 lines
2.0 KiB
Go
82 lines
2.0 KiB
Go
package mq
|
|
|
|
import (
|
|
"mongo.games.com/goserver/core"
|
|
"mongo.games.com/goserver/core/basic"
|
|
"mongo.games.com/goserver/core/logger"
|
|
"mongo.games.com/goserver/srvlib"
|
|
"mongo.games.com/goserver/srvlib/action"
|
|
|
|
"mongo.games.com/game/common"
|
|
"mongo.games.com/game/model"
|
|
"mongo.games.com/game/mq"
|
|
rankproto "mongo.games.com/game/protocol/rank"
|
|
"mongo.games.com/game/ranksrv/rank"
|
|
)
|
|
|
|
// Init 初始化
|
|
func Init() {
|
|
InitHandler()
|
|
// 注册消息
|
|
mq.RegisterMessage(&mq.RegisterMessageParam{
|
|
Name: mq.DBCustomLogAward,
|
|
Data: model.CustomLogAward{},
|
|
})
|
|
}
|
|
|
|
// InitHandler 注册消息处理方法
|
|
func InitHandler() {
|
|
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
|
Name: mq.RankCustomLogAward,
|
|
Data: model.CustomLogAward{},
|
|
Handler: func(data interface{}) (err error) {
|
|
log, ok := data.(*model.CustomLogAward)
|
|
if !ok {
|
|
return nil
|
|
}
|
|
|
|
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
|
rank.CustomAwardMgrInstance.UpdateCache(log.Platform, 0)
|
|
|
|
var awards []*rankproto.Item
|
|
for _, v := range log.Awards {
|
|
awards = append(awards, &rankproto.Item{
|
|
Id: v.ItemId,
|
|
N: v.ItemNum,
|
|
})
|
|
}
|
|
pack := &rankproto.UserAward{
|
|
Snid: log.SnId,
|
|
Name: log.Name,
|
|
Awards: awards,
|
|
Ts: log.EndTs,
|
|
Price: log.Price,
|
|
ImageURL: log.ImageURL,
|
|
}
|
|
action.BroadcastMessage(common.GetSelfAreaId(), srvlib.GateServerType, int(rankproto.Rank_PACKET_SCRoomAwardOne), pack, nil)
|
|
logger.Logger.Tracef("SCRoomAwardOne %v", pack)
|
|
return nil
|
|
}), true)
|
|
return nil
|
|
},
|
|
})
|
|
|
|
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
|
Name: mq.RankLotteryLog,
|
|
Data: &model.LotteryLog{},
|
|
Handler: func(data interface{}) (err error) {
|
|
log, ok := data.(*model.LotteryLog)
|
|
if !ok {
|
|
return nil
|
|
}
|
|
|
|
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
|
rank.LotteryLogMgrInstance.UpdateCache(log.Platform, 0)
|
|
return nil
|
|
}), true)
|
|
|
|
return nil
|
|
},
|
|
})
|
|
}
|