game_sync/dbproxy/mq/c_coinlog.go

36 lines
787 B
Go

package mq
import (
"mongo.games.com/game/dbproxy/svc"
"mongo.games.com/game/model"
"mongo.games.com/game/mq"
)
func init() {
mq.RegisterHandler(&mq.RegisterHandlerParam{
Name: model.CoinLogCollName,
Data: &model.CoinLog{},
Handler: func(data interface{}) (err error) {
log, ok := data.(*model.CoinLog)
if !ok {
return
}
if log.Count == 0 { //玩家冲账探针
mq.Send(mq.WorldLogCoinAck, log)
} else {
c := svc.CoinLogsCollection(log.Platform)
if c != nil {
err = c.Insert(log)
if err == nil {
err = svc.InsertCoinWAL(log.Platform, model.NewCoinWAL(log.SnId, log.Count, log.LogType, log.InGame, log.CoinType, log.RoomId, log.Time.UnixNano()))
if err != nil {
return
}
}
}
}
return
},
})
}