rabbitmq优化
This commit is contained in:
parent
a38f8fa366
commit
ae3e9d8fd6
|
@ -12,7 +12,7 @@ import (
|
|||
|
||||
_ "mongo.games.com/game"
|
||||
"mongo.games.com/game/common"
|
||||
dbmq "mongo.games.com/game/dbproxy/mq"
|
||||
_ "mongo.games.com/game/dbproxy/mq"
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
|
@ -20,7 +20,6 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
dbmq.Init()
|
||||
// 自定义配置文件
|
||||
model.InitGameParam()
|
||||
// package模块
|
||||
|
|
|
@ -1,36 +1,25 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(mq.MgrAPILog, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.APILog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
return
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: mq.DBAPILog,
|
||||
Data: model.APILog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.APILog)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
|
||||
c := svc.APILogsCollection()
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(mq.MgrAPILog), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
return nil
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,36 +1,25 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.CoinGiveLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.CoinGiveLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: mq.DBGiveLog,
|
||||
Data: model.CoinGiveLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.CoinGiveLog)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
c := svc.CoinGiveLogCollection(log.Platform)
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.CoinGiveLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,30 +1,20 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.CoinLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.CoinLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
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 {
|
||||
|
@ -40,7 +30,6 @@ func init() {
|
|||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.CoinLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -7,6 +7,12 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
// 竞技馆获奖通知
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{
|
||||
Name: mq.RankCustomLogAward,
|
||||
Data: model.CustomLogAward{},
|
||||
})
|
||||
|
||||
// 竞技馆对局记录
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: mq.DBCustomLog,
|
||||
|
|
|
@ -1,32 +1,22 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.FriendRecordLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.FriendRecord
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.FriendRecordLogCollName,
|
||||
Data: &model.FriendRecord{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.FriendRecord)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
err = svc.InsertFriendRecordLog(log)
|
||||
err = svc.InsertFriendRecordLog(*log)
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.FriendRecordLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
|
@ -13,19 +9,14 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.GameDetailedLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.GameDetailedLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.GameDetailedLogCollName,
|
||||
Data: &model.GameDetailedLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.GameDetailedLog)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
logger.Logger.Tracef("mq receive GameDetailedLog:%v", log)
|
||||
c := svc.GameDetailedLogsCollection(log.Platform)
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
|
@ -34,7 +25,6 @@ func init() {
|
|||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.GameDetailedLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,36 +1,25 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.GamePlayerListLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.GamePlayerListLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.GamePlayerListLogCollName,
|
||||
Data: &model.GamePlayerListLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.GamePlayerListLog)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
c := svc.GamePlayerListLogsCollection(log.Platform)
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.GamePlayerListLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -2,14 +2,11 @@ package mq
|
|||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
newMongo "go.mongodb.org/mongo-driver/mongo"
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/common"
|
||||
|
@ -20,21 +17,14 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(mq.DBInvite, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.EvtInviteMsg
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("EvtInvite json.Unmarshal error:%v msg:%v", err, string(msg.Body))
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: mq.DBInvite,
|
||||
Data: &model.EvtInviteMsg{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.EvtInviteMsg)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
logger.Logger.Tracef("EvtInvite log:%+v", log)
|
||||
|
||||
var addRechargeScore bool
|
||||
if log.Tp != common.InviteScoreCheckWeek {
|
||||
addRechargeScore, err = svc.CheckInviteScore(&log.InviteScore)
|
||||
|
@ -303,8 +293,7 @@ func init() {
|
|||
}
|
||||
mq.Send(mq.WorldInviteAck, msg)
|
||||
}
|
||||
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(mq.DBInvite), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
return
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,36 +1,25 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.ItemLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.ItemLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.ItemLogCollName,
|
||||
Data: &model.ItemLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.ItemLog)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
c := svc.ItemLogsCollection(log.Platform)
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.ItemLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,38 +1,27 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.LoginLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.LoginLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.LoginLogCollName,
|
||||
Data: &model.LoginLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.LoginLog)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
c := svc.LoginLogsCollection(log.Platform)
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.LoginLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
|
||||
//for test
|
||||
//RegisterSubscriber(model.LoginLogCollName, func(e broker.Event) (err error) {
|
||||
|
|
|
@ -1,37 +1,26 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.OnlineLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.OnlineLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.OnlineLogCollName,
|
||||
Data: &model.OnlineLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.OnlineLog)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
c := new(svc.OnlineLogSvc)
|
||||
if c != nil {
|
||||
ret := false
|
||||
err = c.InsertSignleOnlineLog(&log, &ret)
|
||||
err = c.InsertSignleOnlineLog(log, &ret)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.OnlineLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core"
|
||||
"mongo.games.com/goserver/core/basic"
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
|
@ -16,117 +10,70 @@ import (
|
|||
|
||||
func init() {
|
||||
// 排位排行榜
|
||||
mq.RegisterSubscriber(model.MQRankSeason, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.PlayerRankScore
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.MQRankSeason,
|
||||
Data: &model.PlayerRankScore{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.PlayerRankScore)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
logger.Logger.Tracef("SubscriberPlayerRankScore: %+v", log)
|
||||
|
||||
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
||||
err := svc.RankSeasonUpsert(&log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("RankSeasonUpsert err: %v", err)
|
||||
}
|
||||
return nil
|
||||
}), true)
|
||||
|
||||
err = svc.RankSeasonUpsert(log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("RankSeasonUpsert err: %v", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.MQRankSeason), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
|
||||
// 金币榜
|
||||
mq.RegisterSubscriber(model.MQRankPlayerCoin, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.RankPlayerCoin
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.MQRankPlayerCoin,
|
||||
Data: &model.RankPlayerCoin{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.RankPlayerCoin)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
logger.Logger.Tracef("SubscriberRankPlayerCoin: %+v", log)
|
||||
|
||||
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
||||
err := svc.RankPlayerCoinUpsert(&log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("RankPlayerCoinUpsert err: %v", err)
|
||||
}
|
||||
return nil
|
||||
}), true)
|
||||
|
||||
err = svc.RankPlayerCoinUpsert(log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("RankPlayerCoinUpsert err: %v", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.MQRankPlayerCoin), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
|
||||
//等级榜
|
||||
mq.RegisterSubscriber(model.MQRankPlayerLevel, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.PlayerLevelInfo
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.MQRankPlayerLevel,
|
||||
Data: &model.PlayerLevelInfo{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.PlayerLevelInfo)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
logger.Logger.Tracef("SubscriberRankPlayerLevel: %+v", log)
|
||||
|
||||
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
||||
err := svc.RankPlayerLevelUpsert(&log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("RankPlayerCoinUpsert err: %v", err)
|
||||
}
|
||||
return nil
|
||||
}), true)
|
||||
|
||||
err = svc.RankPlayerLevelUpsert(log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("RankPlayerLevelUpsert err: %v", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.MQRankPlayerLevel), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
|
||||
// 赛季通行证积分
|
||||
mq.RegisterSubscriber(model.MQRankPlayerPermit, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.PermitScore
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.MQRankPlayerPermit,
|
||||
Data: &model.PermitScore{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.PermitScore)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
logger.Logger.Tracef("SubscriberRankPlayerPermit: %+v", log)
|
||||
|
||||
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
||||
err := svc.RankPlayerPermitUpsert(&log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("RankPlayerPermitUpsert err: %v", err)
|
||||
}
|
||||
return nil
|
||||
}), true)
|
||||
|
||||
err = svc.RankPlayerPermitUpsert(log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("RankPlayerPermitUpsert err: %v", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.MQRankPlayerPermit), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
|
@ -12,25 +9,22 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.SceneCoinLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.SceneCoinLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.SceneCoinLogCollName,
|
||||
Data: &model.SceneCoinLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.SceneCoinLog)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
c := svc.SceneCoinLogsCollection(log.Platform)
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("insert SceneCoinLog failed, err: %v", err)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.SceneCoinLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
|
@ -12,25 +9,22 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(mq.DBVipGiftLog, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.DbVip
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: mq.DBVipGiftLog,
|
||||
Data: &model.DbVip{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.DbVip)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
c := svc.DbVipLogCollection(log.Platform)
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("insert DBVipGiftLog error:%v", err)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(mq.DBVipGiftLog), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/dbproxy/svc"
|
||||
"mongo.games.com/game/model"
|
||||
|
@ -12,25 +9,22 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(model.WelfareLogCollName, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.WelfareLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: model.WelfareLogCollName,
|
||||
Data: &model.WelfareLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.WelfareLog)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
c := svc.WelfareLogsCollection(log.Platform)
|
||||
if c != nil {
|
||||
err = c.Insert(log)
|
||||
if err != nil {
|
||||
logger.Logger.Errorf("insert WelfareLog failed: %v", err)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(model.WelfareLogCollName), broker.DisableAutoAck(), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func Init() {
|
||||
InitHandler()
|
||||
// 竞技馆获奖通知
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{
|
||||
Name: mq.RankCustomLogAward,
|
||||
Data: model.CustomLogAward{},
|
||||
})
|
||||
}
|
||||
|
||||
func InitHandler() {
|
||||
|
||||
}
|
|
@ -1,62 +0,0 @@
|
|||
package base
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
// LogChannelSingleton 日志记录器
|
||||
var LogChannelSingleton = &LogChannel{
|
||||
cName: make(map[reflect.Type]string),
|
||||
}
|
||||
|
||||
type LogChannel struct {
|
||||
cName map[reflect.Type]string
|
||||
}
|
||||
|
||||
func (c *LogChannel) RegisterLogCName(cname string, log interface{}) {
|
||||
t := c.getLogType(log)
|
||||
c.cName[t] = cname
|
||||
}
|
||||
|
||||
func (c *LogChannel) getLogType(log interface{}) reflect.Type {
|
||||
return reflect.Indirect(reflect.ValueOf(log)).Type()
|
||||
}
|
||||
|
||||
func (c *LogChannel) getLogCName(log interface{}) string {
|
||||
t := c.getLogType(log)
|
||||
if name, exist := c.cName[t]; exist {
|
||||
return name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (c *LogChannel) WriteLog(log interface{}) {
|
||||
cname := c.getLogCName(log)
|
||||
if cname == "" {
|
||||
cname = "_null_"
|
||||
}
|
||||
logger.Logger.Tracef("LogChannel ==> %#v", log)
|
||||
mq.Send(cname, log)
|
||||
}
|
||||
|
||||
func (c *LogChannel) WriteMQData(data *model.RabbitMQData) {
|
||||
mq.Send(data.MQName, data.Data)
|
||||
}
|
||||
|
||||
func init() {
|
||||
LogChannelSingleton.RegisterLogCName(model.LoginLogCollName, &model.LoginLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.CoinGiveLogCollName, &model.CoinGiveLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.CoinLogCollName, &model.CoinLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.SceneCoinLogCollName, &model.SceneCoinLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.GameDetailedLogCollName, &model.GameDetailedLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.GamePlayerListLogCollName, &model.GamePlayerListLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.FriendRecordLogCollName, &model.FriendRecord{})
|
||||
LogChannelSingleton.RegisterLogCName(model.ItemLogCollName, &model.ItemLog{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.DBCustomLog, &model.CustomLog{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.DBCustomLogAward, &model.CustomLogAward{})
|
||||
}
|
|
@ -2,21 +2,22 @@ package base
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
rawproto "google.golang.org/protobuf/proto"
|
||||
"math"
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/player"
|
||||
"mongo.games.com/game/protocol/server"
|
||||
"mongo.games.com/game/srvdata"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
rawproto "google.golang.org/protobuf/proto"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
"mongo.games.com/goserver/core/netlib"
|
||||
"mongo.games.com/goserver/core/timer"
|
||||
|
||||
//rawproto "github.com/golang/protobuf/proto"
|
||||
"math/rand"
|
||||
"time"
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/player"
|
||||
"mongo.games.com/game/protocol/server"
|
||||
"mongo.games.com/game/srvdata"
|
||||
)
|
||||
|
||||
// 对应到客户端的一个玩家对象.
|
||||
|
@ -474,7 +475,7 @@ func (this *Player) AddCoin(num int64, gainWay int32, syncFlag int, oper, remark
|
|||
if log != nil {
|
||||
this.GameCoinTs = log.Time.UnixNano()
|
||||
this.dirty = true
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
//确保金币场金币数量不小于0
|
||||
|
@ -557,7 +558,7 @@ func (this *Player) AddCoinAsync(num int64, gainWay int32, notifyC, broadcast bo
|
|||
if log != nil {
|
||||
this.GameCoinTs = log.Time.UnixNano()
|
||||
this.dirty = true
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
//确保金币场金币数量不小于0
|
||||
|
@ -638,11 +639,11 @@ func (this *Player) ReportGameEvent(tax, taxex, changeCoin, validbet, validFlow,
|
|||
}
|
||||
|
||||
gamingTime := int32(time.Now().Sub(this.scene.GameNowTime).Seconds())
|
||||
LogChannelSingleton.WriteMQData(model.GenerateGameEvent(model.CreatePlayerGameRecEvent(this.SnId, tax, taxex, changeCoin, validbet, validFlow, in, out,
|
||||
mq.Write(model.CreatePlayerGameRecEvent(this.SnId, tax, taxex, changeCoin, validbet, validFlow, in, out,
|
||||
int32(this.scene.GameId), this.scene.GetGameFreeId(), int32(this.scene.GameMode),
|
||||
this.scene.GetRecordId(), this.Channel, this.BeUnderAgentCode, this.Platform, this.City, this.DeviceOS,
|
||||
this.CreateTime, gamingTime, gameFirstTime, gameFreeFirstTime, gameTimes, gameFreeTimes, this.LastLoginTime,
|
||||
this.TelephonePromoter, this.DeviceId)))
|
||||
this.TelephonePromoter, this.DeviceId), mq.BackGameRecord)
|
||||
}
|
||||
|
||||
// 汇总玩家该次游戏总产生的税收
|
||||
|
|
|
@ -6,11 +6,13 @@ import (
|
|||
"encoding/json"
|
||||
"time"
|
||||
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/server"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
"mongo.games.com/goserver/core/netlib"
|
||||
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/server"
|
||||
)
|
||||
|
||||
var _replayIgnorePacketIds = map[int]bool{}
|
||||
|
@ -112,7 +114,7 @@ func (this *ReplayRecorder) Fini(s *Scene) {
|
|||
break
|
||||
}
|
||||
}
|
||||
LogChannelSingleton.WriteMQData(&model.RabbitMQData{MQName: "log_playback", Data: pack})
|
||||
mq.Write(pack, "log_playback")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/gamehall"
|
||||
"mongo.games.com/game/protocol/player"
|
||||
|
@ -1435,7 +1436,7 @@ func (this *Scene) SaveGameDetailedLog(logid string, gamedetailednote string, ga
|
|||
if this.IsCustom() {
|
||||
log.CycleId = this.CycleID
|
||||
}
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1454,7 +1455,7 @@ func (this *Scene) SaveGameDetailedLog(logid string, gamedetailednote string, ga
|
|||
}
|
||||
newLog := new(model.GameDetailedLog)
|
||||
*newLog = *log
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1514,7 +1515,7 @@ func (this *Scene) SaveFriendRecord(snid int32, isWin int32, billCoin int64, bas
|
|||
}
|
||||
log := model.NewFriendRecordLogEx(this.Platform, snid, isWin, this.GameId, baseScore, billCoin, int64(this.GetMatch().GetMatchType()))
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1563,7 +1564,7 @@ func (this *Scene) SaveGamePlayerListLog(snid int32, param *SaveGamePlayerListLo
|
|||
param.BetAmount, param.WinAmountNoAnyTax, this.KeyGameId, Name, this.GetDBGameFree().GetGameClass(),
|
||||
param.IsFirstGame, this.GetMatch().GetMatchSortId(), int64(this.GetMatch().GetMatchType()), param.IsFree, param.WinSmallGame, param.WinTotal, param.CycleId)
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
"mongo.games.com/game/common"
|
||||
_ "mongo.games.com/game/gamesrv/action"
|
||||
_ "mongo.games.com/game/gamesrv/base"
|
||||
_ "mongo.games.com/game/gamesrv/mq"
|
||||
_ "mongo.games.com/game/gamesrv/transact"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.LoginLogCollName, Data: &model.LoginLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBGiveLog, Data: &model.CoinGiveLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.CoinLogCollName, Data: &model.CoinLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.SceneCoinLogCollName, Data: &model.SceneCoinLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.GameDetailedLogCollName, Data: &model.GameDetailedLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.GamePlayerListLogCollName, Data: &model.GamePlayerListLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.FriendRecordLogCollName, Data: &model.FriendRecord{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.ItemLogCollName, Data: &model.ItemLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBCustomLog, Data: &model.CustomLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBCustomLogAward, Data: &model.CustomLogAward{}})
|
||||
}
|
|
@ -16,6 +16,7 @@ import (
|
|||
rule "mongo.games.com/game/gamerule/tienlen"
|
||||
"mongo.games.com/game/gamesrv/base"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/tienlen"
|
||||
"mongo.games.com/game/srvdata"
|
||||
|
@ -2163,5 +2164,5 @@ func (this *TienLenSceneData) SaveCustomLog() {
|
|||
LogId: this.RoundLogId[k],
|
||||
})
|
||||
}
|
||||
base.LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import (
|
|||
rule "mongo.games.com/game/gamerule/tienlen"
|
||||
"mongo.games.com/game/gamesrv/base"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/tienlen"
|
||||
"mongo.games.com/game/srvdata"
|
||||
|
@ -2639,7 +2640,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
GameId: int64(sceneEx.GameId),
|
||||
GameFreeId: int64(sceneEx.GetGameFreeId()),
|
||||
})
|
||||
base.LogChannelSingleton.WriteLog(&model.CustomLogAward{
|
||||
mq.Write(&model.CustomLogAward{
|
||||
Platform: p.Platform,
|
||||
CycleId: sceneEx.CycleID,
|
||||
SnId: p.SnId,
|
||||
|
|
|
@ -13,8 +13,6 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackClientLog, &model.ClientLogMysql{})
|
||||
|
||||
// 客户端日志
|
||||
netlib.Register(int(player.PlayerPacketID_PACKET_CS_CLIENT_LOG), player.CSClientLog{}, CSClientLog)
|
||||
}
|
||||
|
@ -55,7 +53,7 @@ func CSClientLog(s *netlib.Session, packetid int, pack interface{}) error {
|
|||
// Ts: time.Now().Unix(),
|
||||
//})
|
||||
|
||||
LogChannelSingleton.WriteLog(&model.ClientLogMysql{
|
||||
mq.Write(&model.ClientLogMysql{
|
||||
Data: msg.GetData(),
|
||||
Platform: platform,
|
||||
Snid: snid,
|
||||
|
@ -64,6 +62,5 @@ func CSClientLog(s *netlib.Session, packetid int, pack interface{}) error {
|
|||
AppChannel: appChannel,
|
||||
ChannelId: channelId,
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
// LogChannelSingleton 日志记录器
|
||||
var LogChannelSingleton = &LogChannel{
|
||||
cName: make(map[reflect.Type]string),
|
||||
}
|
||||
|
||||
type LogChannel struct {
|
||||
cName map[reflect.Type]string
|
||||
}
|
||||
|
||||
func (c *LogChannel) RegisterLogCName(cname string, log interface{}) {
|
||||
t := c.getLogType(log)
|
||||
c.cName[t] = cname
|
||||
}
|
||||
|
||||
func (c *LogChannel) getLogType(log interface{}) reflect.Type {
|
||||
return reflect.Indirect(reflect.ValueOf(log)).Type()
|
||||
}
|
||||
|
||||
func (c *LogChannel) getLogCName(log interface{}) string {
|
||||
t := c.getLogType(log)
|
||||
if name, exist := c.cName[t]; exist {
|
||||
return name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (c *LogChannel) WriteLog(log interface{}) {
|
||||
cname := c.getLogCName(log)
|
||||
if cname == "" {
|
||||
cname = "_null_"
|
||||
}
|
||||
mq.Send(cname, log)
|
||||
}
|
||||
|
||||
func (c *LogChannel) WriteMQData(data *model.RabbitMQData) {
|
||||
mq.Send(data.MQName, data.Data)
|
||||
}
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
_ "mongo.games.com/game"
|
||||
"mongo.games.com/game/common"
|
||||
_ "mongo.games.com/game/gatesrv/mq"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackClientLog, Data: &model.ClientLogMysql{}})
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
/*
|
||||
api调用记录写入rabbitmq,然后dbproxy收到rabbitmq数据再写到数据库
|
||||
*/
|
||||
|
||||
const (
|
||||
LogChanelBlackHole = "_null_"
|
||||
)
|
||||
|
||||
var LogChannelSington = &LogChannel{
|
||||
cName: make(map[reflect.Type]string),
|
||||
}
|
||||
|
||||
type LogChannel struct {
|
||||
cName map[reflect.Type]string
|
||||
}
|
||||
|
||||
func (c *LogChannel) RegisteLogCName(cname string, log interface{}) {
|
||||
t := c.getLogType(log)
|
||||
c.cName[t] = cname
|
||||
}
|
||||
|
||||
func (c *LogChannel) getLogType(log interface{}) reflect.Type {
|
||||
return reflect.Indirect(reflect.ValueOf(log)).Type()
|
||||
}
|
||||
|
||||
func (c *LogChannel) getLogCName(log interface{}) string {
|
||||
t := c.getLogType(log)
|
||||
if name, exist := c.cName[t]; exist {
|
||||
return name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (c *LogChannel) WriteLog(log interface{}) {
|
||||
cname := c.getLogCName(log)
|
||||
if cname == "" {
|
||||
cname = LogChanelBlackHole
|
||||
}
|
||||
mq.Send(cname, log)
|
||||
}
|
||||
|
||||
func (c *LogChannel) WriteMQData(data *model.RabbitMQData) {
|
||||
mq.Send(data.MQName, data.Data)
|
||||
}
|
||||
|
||||
func init() {
|
||||
LogChannelSington.RegisteLogCName(mq.MgrAPILog, &model.APILog{})
|
||||
}
|
|
@ -20,6 +20,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/webapi"
|
||||
)
|
||||
|
@ -121,7 +122,7 @@ func GameSrvWebAPI(rw http.ResponseWriter, req *http.Request) {
|
|||
result, err := json.Marshal(rep)
|
||||
if err == nil {
|
||||
log := model.NewAPILog(req.URL.Path, req.URL.RawQuery, string(data[:]), req.RemoteAddr, string(result[:]), startTime, ps)
|
||||
LogChannelSington.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
// API
|
||||
|
@ -133,7 +134,7 @@ func WorldSrvApi(rw http.ResponseWriter, req *http.Request) {
|
|||
result, err := json.Marshal(rep)
|
||||
if err == nil {
|
||||
log := model.NewAPILog(req.URL.Path, req.URL.RawQuery, string(data[:]), req.RemoteAddr, string(result[:]), startTime, ps)
|
||||
LogChannelSington.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
_ "mongo.games.com/game"
|
||||
"mongo.games.com/game/common"
|
||||
_ "mongo.games.com/game/mgrsrv/api"
|
||||
_ "mongo.games.com/game/mgrsrv/mq"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
_ "mongo.games.com/game/srvdata"
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
package mq
|
||||
|
||||
import (
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBAPILog, Data: &model.APILog{}})
|
||||
}
|
|
@ -8,7 +8,7 @@ import (
|
|||
)
|
||||
|
||||
// GenerateOnline 在线统计
|
||||
func GenerateOnline(online map[string]map[string]int) *RabbitMQData {
|
||||
func GenerateOnline(online map[string]map[string]int) *mq.RabbitMQData {
|
||||
params := make(map[string]interface{})
|
||||
params["Online"] = online
|
||||
params["Time"] = time.Now().Unix()
|
||||
|
@ -16,17 +16,12 @@ func GenerateOnline(online map[string]map[string]int) *RabbitMQData {
|
|||
}
|
||||
|
||||
// GenerateLogin 玩家登陆事件
|
||||
func GenerateLogin(o *PlayerLoginEvent) *RabbitMQData {
|
||||
func GenerateLogin(o *PlayerLoginEvent) *mq.RabbitMQData {
|
||||
return NewRabbitMQData(mq.BackLogin, o)
|
||||
}
|
||||
|
||||
// GenerateGameEvent 游戏结算事件
|
||||
func GenerateGameEvent(o *PlayerGameRecEvent) *RabbitMQData {
|
||||
return NewRabbitMQData(mq.BackGameRecord, o)
|
||||
}
|
||||
|
||||
// GenerateSystemFreeGive 系统免费赠送
|
||||
func GenerateSystemFreeGive(snid int32, name, platform, channel string, givetype, cointype int32, count int64) *RabbitMQData {
|
||||
func GenerateSystemFreeGive(snid int32, name, platform, channel string, givetype, cointype int32, count int64) *mq.RabbitMQData {
|
||||
params := make(map[string]string)
|
||||
params["snid"] = strconv.Itoa(int(snid))
|
||||
params["Channel"] = channel
|
||||
|
@ -40,7 +35,7 @@ func GenerateSystemFreeGive(snid int32, name, platform, channel string, givetype
|
|||
}
|
||||
|
||||
// GeneratePhoneLottery 手机抽奖统计
|
||||
func GeneratePhoneLottery(snid int32, platform string, items string, lotteryType, count, countType, score int) *RabbitMQData {
|
||||
func GeneratePhoneLottery(snid int32, platform string, items string, lotteryType, count, countType, score int) *mq.RabbitMQData {
|
||||
params := make(map[string]string)
|
||||
params["Snid"] = strconv.Itoa(int(snid))
|
||||
params["Platform"] = platform
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
package model
|
||||
|
||||
type RabbitMQData struct {
|
||||
MQName string // 是队列名称也是Routing key
|
||||
Data interface{}
|
||||
}
|
||||
import "mongo.games.com/game/mq"
|
||||
|
||||
func NewRabbitMQData(mqName string, data interface{}) *RabbitMQData {
|
||||
log := &RabbitMQData{
|
||||
func NewRabbitMQData(mqName string, data interface{}) *mq.RabbitMQData {
|
||||
log := &mq.RabbitMQData{
|
||||
MQName: mqName,
|
||||
Data: data,
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@ import (
|
|||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/mq/internal"
|
||||
)
|
||||
|
||||
type HandlerFunc func(data interface{}) (err error)
|
||||
|
@ -48,20 +50,23 @@ func (c *MessageMgr) getName(data interface{}) string {
|
|||
return ""
|
||||
}
|
||||
|
||||
// Write 记录消息,需要提前注册
|
||||
func (c *MessageMgr) Write(data interface{}) {
|
||||
name := c.getName(data)
|
||||
if name == "" {
|
||||
name = "_null_"
|
||||
}
|
||||
logger.Logger.Tracef("==> RabbitMQ(%v): %#v", name, data)
|
||||
Send(name, data)
|
||||
type RabbitMQData struct {
|
||||
MQName string // 是队列名称也是Routing key
|
||||
Data interface{}
|
||||
}
|
||||
|
||||
// WriteMQData rabbitMQ消息
|
||||
func (c *MessageMgr) WriteMQData(name string, data interface{}) {
|
||||
logger.Logger.Tracef("==> RabbitMQ(%v): %#v", name, data)
|
||||
Send(name, data)
|
||||
func (c *MessageMgr) Send(data interface{}, name ...string) error {
|
||||
if msg, ok := data.(*RabbitMQData); ok {
|
||||
return Send(msg.MQName, msg.Data)
|
||||
}
|
||||
if len(name) > 0 && name[0] != "" {
|
||||
return Send(name[0], data)
|
||||
}
|
||||
key := c.getName(data)
|
||||
if key == "" {
|
||||
key = "_null_"
|
||||
}
|
||||
return Send(key, data)
|
||||
}
|
||||
|
||||
type RegisterHandlerParam struct {
|
||||
|
@ -90,7 +95,7 @@ func (c *MessageMgr) RegisterHandler(param *RegisterHandlerParam) {
|
|||
F: param.Handler,
|
||||
}
|
||||
|
||||
RegisterSubscriber(param.Name, func(e broker.Event) (err error) {
|
||||
internal.RegisterSubscriber(param.Name, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
|
@ -126,16 +131,56 @@ func RegisterMessage(param *RegisterMessageParam) {
|
|||
|
||||
// Write 发送消息
|
||||
// 默认队列名称规则:队列前缀_消息结构体名称
|
||||
func Write(data interface{}) {
|
||||
MessageMgrSingle.Write(data)
|
||||
}
|
||||
|
||||
// WriteMQData 发送消息
|
||||
func WriteMQData(name string, data interface{}) {
|
||||
MessageMgrSingle.WriteMQData(name, data)
|
||||
func Write(data interface{}, name ...string) error {
|
||||
return MessageMgrSingle.Send(data, name...)
|
||||
}
|
||||
|
||||
// RegisterHandler 注册消息处理函数
|
||||
func RegisterHandler(param *RegisterHandlerParam) {
|
||||
MessageMgrSingle.RegisterHandler(param)
|
||||
}
|
||||
|
||||
var globalConsumer *internal.RabbitMQConsumer
|
||||
|
||||
// StartConsumer 启动消费者
|
||||
func StartConsumer(url string, exchange string, durableExchange bool, opts ...broker.Option) {
|
||||
StopConsumer()
|
||||
globalConsumer = internal.NewRabbitMQConsumer(url, rabbitmq.Exchange{Name: exchange, Durable: durableExchange}, opts...)
|
||||
if err := globalConsumer.Start(); err != nil {
|
||||
panic(fmt.Sprintf("RabbitMQConsumer.Start() url:%v exchange:%v err:%v", url, exchange, err))
|
||||
}
|
||||
}
|
||||
|
||||
// StopConsumer 停止消费者
|
||||
func StopConsumer() {
|
||||
if globalConsumer != nil {
|
||||
globalConsumer.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
var globalPublisher *internal.RabbitMQPublisher
|
||||
|
||||
// StartPublisher 启动发布者
|
||||
func StartPublisher(url string, exchange string, durableExchange bool, queueSize int, opts ...broker.Option) {
|
||||
StopPublisher()
|
||||
globalPublisher = internal.NewRabbitMQPublisher(url, rabbitmq.Exchange{Name: exchange, Durable: durableExchange}, queueSize, opts...)
|
||||
if err := globalPublisher.Start(); err != nil {
|
||||
panic(fmt.Sprintf("RabbitMQPublisher.Start() url:%v exchange:%v err:%v", url, exchange, err))
|
||||
}
|
||||
}
|
||||
|
||||
// StopPublisher 停止发布者
|
||||
func StopPublisher() {
|
||||
if globalPublisher != nil {
|
||||
globalPublisher.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
func Send(topic string, msg interface{}, opts ...broker.PublishOption) (err error) {
|
||||
if globalPublisher != nil {
|
||||
logger.Logger.Tracef("==> RabbitMQ(%v): %#v", topic, msg)
|
||||
return globalPublisher.Send(topic, msg, opts...)
|
||||
}
|
||||
logger.Logger.Errorf("RabbitMQPublisher not start!")
|
||||
return internal.ErrClosed
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package internal
|
||||
|
||||
import "os"
|
||||
|
||||
const (
|
||||
BackupPath = "backup"
|
||||
TimeFormat = "20060102150405"
|
||||
FilePathFormat = "%s/%s_%s_%09d_%04d.dat"
|
||||
)
|
||||
|
||||
func PathExists(path string) (bool, error) {
|
||||
_, err := os.Stat(path)
|
||||
if err == nil {
|
||||
return true, nil
|
||||
}
|
||||
if os.IsNotExist(err) {
|
||||
return false, nil
|
||||
}
|
||||
return false, err
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package mq
|
||||
package internal
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
@ -10,8 +10,6 @@ import (
|
|||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/common"
|
||||
)
|
||||
|
||||
/*
|
||||
|
@ -19,7 +17,6 @@ import (
|
|||
*/
|
||||
|
||||
var (
|
||||
globalConsumer *RabbitMQConsumer
|
||||
subscriberLock sync.RWMutex
|
||||
subscriber = make(map[string][]*Subscriber)
|
||||
)
|
||||
|
@ -56,7 +53,7 @@ func NewRabbitMQConsumer(url string, exchange rabbitmq.Exchange, opts ...broker.
|
|||
}
|
||||
|
||||
func (c *RabbitMQConsumer) Start() error {
|
||||
if ok, _ := common.PathExists(BackupPath); !ok {
|
||||
if ok, _ := PathExists(BackupPath); !ok {
|
||||
os.MkdirAll(BackupPath, os.ModePerm)
|
||||
}
|
||||
|
||||
|
@ -144,19 +141,3 @@ func GetSubscribers() map[string][]*Subscriber {
|
|||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
// StartConsumer 启动消费者
|
||||
func StartConsumer(url string, exchange string, durableExchange bool, opts ...broker.Option) {
|
||||
StopConsumer()
|
||||
globalConsumer = NewRabbitMQConsumer(url, rabbitmq.Exchange{Name: exchange, Durable: durableExchange}, opts...)
|
||||
if err := globalConsumer.Start(); err != nil {
|
||||
panic(fmt.Sprintf("RabbitMQConsumer.Start() url:%v exchange:%v err:%v", url, exchange, err))
|
||||
}
|
||||
}
|
||||
|
||||
// StopConsumer 停止消费者
|
||||
func StopConsumer() {
|
||||
if globalConsumer != nil {
|
||||
globalConsumer.Stop()
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package mq
|
||||
package internal
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
@ -12,24 +12,14 @@ import (
|
|||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/common"
|
||||
)
|
||||
|
||||
/*
|
||||
在发布功能上加上异步发送消息和发送失败备份到本地文件的功能
|
||||
*/
|
||||
|
||||
const (
|
||||
BackupPath = "backup"
|
||||
TimeFormat = "20060102150405"
|
||||
FilePathFormat = "%s/%s_%s_%09d_%04d.dat"
|
||||
)
|
||||
|
||||
var ErrClosed = errors.New("publisher is closed")
|
||||
|
||||
var globalPublisher *RabbitMQPublisher
|
||||
|
||||
type item struct {
|
||||
topic string
|
||||
msg interface{}
|
||||
|
@ -121,7 +111,7 @@ func (p *RabbitMQPublisher) publishRoutine() {
|
|||
}
|
||||
|
||||
func (p *RabbitMQPublisher) Start() (err error) {
|
||||
if ok, _ := common.PathExists(BackupPath); !ok {
|
||||
if ok, _ := PathExists(BackupPath); !ok {
|
||||
err = os.MkdirAll(BackupPath, os.ModePerm)
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -201,26 +191,3 @@ func (p *RabbitMQPublisher) backup(topic string, msg interface{}, err error) {
|
|||
f.WriteString("reason:" + reason + "\n")
|
||||
f.WriteString("data:" + string(buf) + "\n")
|
||||
}
|
||||
|
||||
// StartPublisher 启动发布者
|
||||
func StartPublisher(url string, exchange string, durableExchange bool, queueSize int, opts ...broker.Option) {
|
||||
StopPublisher()
|
||||
globalPublisher = NewRabbitMQPublisher(url, rabbitmq.Exchange{Name: exchange, Durable: durableExchange}, queueSize, opts...)
|
||||
if err := globalPublisher.Start(); err != nil {
|
||||
panic(fmt.Sprintf("RabbitMQPublisher.Start() url:%v exchange:%v err:%v", url, exchange, err))
|
||||
}
|
||||
}
|
||||
|
||||
// StopPublisher 停止发布者
|
||||
func StopPublisher() {
|
||||
if globalPublisher != nil {
|
||||
globalPublisher.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
func Send(topic string, msg interface{}, opts ...broker.PublishOption) (err error) {
|
||||
if globalPublisher != nil {
|
||||
return globalPublisher.Send(topic, msg, opts...)
|
||||
}
|
||||
return ErrClosed
|
||||
}
|
|
@ -21,9 +21,7 @@ const (
|
|||
|
||||
// mgrsrv
|
||||
|
||||
const (
|
||||
MgrAPILog = "mgr_apilog"
|
||||
)
|
||||
const ()
|
||||
|
||||
// worldsrv 消息
|
||||
|
||||
|
@ -39,6 +37,8 @@ const (
|
|||
DBCustomLog = "db_customlog" // 房卡场对局记录
|
||||
DBCustomLogAward = "db_customlog_award" // 房卡场对局奖励
|
||||
DBInvite = "db_invite"
|
||||
DBAPILog = "db_apilog"
|
||||
DBGiveLog = "db_givelog"
|
||||
)
|
||||
|
||||
// ranksrv 消息
|
||||
|
|
|
@ -3,9 +3,6 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"mongo.games.com/game/proto"
|
||||
webapi_proto "mongo.games.com/game/protocol/webapi"
|
||||
"mongo.games.com/game/webapi"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
|
@ -16,8 +13,12 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/bag"
|
||||
webapiproto "mongo.games.com/game/protocol/webapi"
|
||||
"mongo.games.com/game/srvdata"
|
||||
"mongo.games.com/game/webapi"
|
||||
)
|
||||
|
||||
func CSBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||
|
@ -193,8 +194,7 @@ func CSUpBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) e
|
|||
tp1 = model.SystemFreeGive_CoinType_Diamond
|
||||
}
|
||||
if !p.IsRob && tp1 >= 0 {
|
||||
LogChannelSingleton.WriteMQData(
|
||||
model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_CollectBox, tp1, v.ItemNum))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_CollectBox, tp1, v.ItemNum))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -579,8 +579,7 @@ func CSPropExchange(s *netlib.Session, packetid int, data interface{}, sid int64
|
|||
tp1 = model.SystemFreeGive_CoinType_Diamond
|
||||
}
|
||||
if !p.IsRob && tp1 >= 0 {
|
||||
LogChannelSingleton.WriteMQData(
|
||||
model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_CollectBoxSwap, tp1, v.ItemNum))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_CollectBoxSwap, tp1, v.ItemNum))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -668,13 +667,13 @@ func CSDollChangeLog(s *netlib.Session, packetid int, data interface{}, sid int6
|
|||
}
|
||||
}
|
||||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
msg := &webapi_proto.ASGetDollExchangeOrder{
|
||||
msg := &webapiproto.ASGetDollExchangeOrder{
|
||||
Snid: p.SnId,
|
||||
Platform: p.Platform,
|
||||
}
|
||||
buff, err := webapi.API_DollExchangeRecord(common.GetAppId(), msg)
|
||||
|
||||
as := &webapi_proto.SAGetDollExchangeOrder{}
|
||||
as := &webapiproto.SAGetDollExchangeOrder{}
|
||||
if err != nil {
|
||||
logger.Logger.Error("API_DollExchangeRecord error:", err)
|
||||
return nil
|
||||
|
@ -686,7 +685,7 @@ func CSDollChangeLog(s *netlib.Session, packetid int, data interface{}, sid int6
|
|||
return as
|
||||
}), task.CompleteNotifyWrapper(func(data interface{}, t task.Task) {
|
||||
if data != nil {
|
||||
if as := data.(*webapi_proto.SAGetDollExchangeOrder); as != nil {
|
||||
if as := data.(*webapiproto.SAGetDollExchangeOrder); as != nil {
|
||||
for _, v := range as.OrderList {
|
||||
cdata := ShopMgrSington.GetExchangeData(p.Platform, v.GoodsId)
|
||||
record := &bag.DillChangeLogInfo{
|
||||
|
|
|
@ -3,13 +3,16 @@ package main
|
|||
import (
|
||||
"encoding/json"
|
||||
"math/rand"
|
||||
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
"mongo.games.com/goserver/core/netlib"
|
||||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
player_proto "mongo.games.com/game/protocol/player"
|
||||
"mongo.games.com/game/protocol/webapi"
|
||||
"mongo.games.com/game/srvdata"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
"mongo.games.com/goserver/core/netlib"
|
||||
)
|
||||
|
||||
type CSPhoneLotteryInfoPacketFactory struct {
|
||||
|
@ -195,7 +198,7 @@ func (this *CSPhoneLotteryHandler) Process(s *netlib.Session, packetid int, data
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
LogChannelSingleton.WriteMQData(model.GeneratePhoneLottery(p.SnId, p.Platform, string(jsonData), 1, 0, 0, 0))
|
||||
mq.Write(model.GeneratePhoneLottery(p.SnId, p.Platform, string(jsonData), 1, 0, 0, 0))
|
||||
for _, v := range items {
|
||||
tp1 := int32(-1)
|
||||
if v.ItemId == common.ItemIDCoin {
|
||||
|
@ -204,8 +207,7 @@ func (this *CSPhoneLotteryHandler) Process(s *netlib.Session, packetid int, data
|
|||
tp1 = model.SystemFreeGive_CoinType_Diamond
|
||||
}
|
||||
if !p.IsRob && tp1 >= 0 {
|
||||
LogChannelSingleton.WriteMQData(
|
||||
model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_PhoneLottery, tp1, v.ItemNum))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_PhoneLottery, tp1, v.ItemNum))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
player_proto "mongo.games.com/game/protocol/player"
|
||||
webapi_proto "mongo.games.com/game/protocol/webapi"
|
||||
|
@ -1409,7 +1410,7 @@ func (this *CSPlayerRegisterHandler) Process(s *netlib.Session, packetid int, da
|
|||
err2 := model.UpdatePlayerCoin(pi.Platform, pi.SnId, pi.Coin+int64(model.GameParamData.NewPlayerCoin), 0, 0, time.Now().Unix(), time.Now().Unix(), 0, pi.ShopID)
|
||||
if err2 == nil {
|
||||
if !pi.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(pi.SnId, pi.Name, pi.Platform, pi.Channel, model.SystemFreeGive_GiveType_NewPlayer, model.SystemFreeGive_CoinType_Coin, int64(model.GameParamData.NewPlayerCoin)))
|
||||
mq.Write(model.GenerateSystemFreeGive(pi.SnId, pi.Name, pi.Platform, pi.Channel, model.SystemFreeGive_GiveType_NewPlayer, model.SystemFreeGive_CoinType_Coin, int64(model.GameParamData.NewPlayerCoin)))
|
||||
}
|
||||
log := model.NewCoinLogEx(&model.CoinLogParam{
|
||||
Platform: pi.Platform,
|
||||
|
@ -1427,7 +1428,7 @@ func (this *CSPlayerRegisterHandler) Process(s *netlib.Session, packetid int, da
|
|||
Remark: "",
|
||||
})
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
return player_proto.OpResultCode_OPRC_Sucess
|
||||
|
@ -2074,7 +2075,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
player.addLotteryCount(20)
|
||||
player.InitLotteryStatus = true
|
||||
player.dirty = true
|
||||
LogChannelSingleton.WriteMQData(model.GeneratePhoneLottery(player.SnId, player.Platform, "", 3, 20, 5, 0))
|
||||
mq.Write(model.GeneratePhoneLottery(player.SnId, player.Platform, "", 3, 20, 5, 0))
|
||||
}
|
||||
|
||||
// rehold player
|
||||
|
@ -3082,7 +3083,7 @@ func CSUpdateAttribute(s *netlib.Session, packetId int, data interface{}, sid in
|
|||
N: int64(stepId),
|
||||
}
|
||||
b, _ := json.Marshal(d)
|
||||
LogChannelSingleton.WriteLog(&model.ClientLogMysql{
|
||||
mq.Write(&model.ClientLogMysql{
|
||||
Data: string(b),
|
||||
Platform: p.Platform,
|
||||
Snid: p.SnId,
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/protocol/rankmatch"
|
||||
"mongo.games.com/game/srvdata"
|
||||
)
|
||||
|
@ -240,13 +241,14 @@ func CSRMAward(s *netlib.Session, packetId int, data interface{}, sid int64) err
|
|||
case v.Id == 1: //金币
|
||||
p.AddCoin(int64(v.Num), 0, common.GainWay_RankMatch, "system", "段位奖励")
|
||||
if !p.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel,
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel,
|
||||
model.SystemFreeGive_GiveType_RankMatch, model.SystemFreeGive_CoinType_Coin, int64(v.Num)))
|
||||
|
||||
}
|
||||
case v.Id == 2: //钻石
|
||||
p.AddDiamond(int64(v.Num), 0, common.GainWay_RankMatch, "system", "段位奖励")
|
||||
if !p.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel,
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel,
|
||||
model.SystemFreeGive_GiveType_RankMatch, model.SystemFreeGive_CoinType_Diamond, int64(v.Num)))
|
||||
}
|
||||
default:
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
loginproto "mongo.games.com/game/protocol/login"
|
||||
playerproto "mongo.games.com/game/protocol/player"
|
||||
serverproto "mongo.games.com/game/protocol/server"
|
||||
|
@ -115,7 +116,7 @@ func init() {
|
|||
}
|
||||
}
|
||||
//更新玩家等级排行榜
|
||||
LogChannelSingleton.WriteLog(&model.PlayerLevelInfo{
|
||||
mq.Write(&model.PlayerLevelInfo{
|
||||
SnId: p.SnId,
|
||||
Name: p.Name,
|
||||
Level: p.Level,
|
||||
|
@ -134,7 +135,7 @@ func init() {
|
|||
logger.Logger.Infof("NewBankruptLogEx: snid:%v GetReturnCoin:%v coin:%v CostCoin:%v", p.SnId, msg.GetReturnCoin(), p.takeCoin, CostCoin)
|
||||
log := model.NewBankruptLogEx(p.SnId, scene.dbGameFree.GetId(), p.CreateTime.Unix(), CostCoin, p.Platform, p.Channel, scene.gameId)
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
taskproto "mongo.games.com/game/protocol/task"
|
||||
"mongo.games.com/game/srvdata"
|
||||
)
|
||||
|
@ -137,8 +138,7 @@ func SendReward(p *Player, m map[int64]int64, tp int32) {
|
|||
tp = model.SystemFreeGive_CoinType_Diamond
|
||||
}
|
||||
if !p.IsRob && tp >= 0 && giveType >= 0 {
|
||||
LogChannelSingleton.WriteMQData(
|
||||
model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, tp, v.ItemNum))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, tp, v.ItemNum))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -245,7 +245,7 @@ func CSTaskReward(s *netlib.Session, packetId int, data interface{}, sid int64)
|
|||
taskLog.ActivityType = data.GetActivityType()
|
||||
taskLog.TaskType = data.GetTaskType()
|
||||
}
|
||||
LogChannelSingleton.WriteLog(taskLog)
|
||||
mq.Write(taskLog)
|
||||
ret.OpCode = taskproto.OpResultCode_OPRC_Success
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
webapiproto "mongo.games.com/game/protocol/webapi"
|
||||
"mongo.games.com/game/protocol/welfare"
|
||||
|
@ -578,8 +579,7 @@ func SendPermitReward(p *Player, m map[int64]int64, tp int32) {
|
|||
tp1 = model.SystemFreeGive_CoinType_Diamond
|
||||
}
|
||||
if !p.IsRob && tp1 >= 0 && giveType >= 0 {
|
||||
LogChannelSingleton.WriteMQData(
|
||||
model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, tp1, v.ItemNum))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, tp1, v.ItemNum))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1122,7 +1122,7 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
})
|
||||
p.WelfData.PermitExchange[msg.GetId()] = append(p.WelfData.PermitExchange[msg.GetId()], now.Unix())
|
||||
// 兑换记录
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitExchange{
|
||||
mq.Write(&model.BackendPermitExchange{
|
||||
Platform: p.Platform,
|
||||
StartTs: startTs,
|
||||
SnId: p.SnId,
|
||||
|
|
|
@ -14,6 +14,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/bag"
|
||||
playerproto "mongo.games.com/game/protocol/player"
|
||||
|
@ -99,7 +100,7 @@ func init() {
|
|||
} else {
|
||||
permitScore = param.ItemNum
|
||||
}
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitJoin{
|
||||
mq.Write(&model.BackendPermitJoin{
|
||||
Platform: p.Platform,
|
||||
StartTs: PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs,
|
||||
SnId: p.SnId,
|
||||
|
@ -130,7 +131,7 @@ func init() {
|
|||
startTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs
|
||||
if item != nil && item.ItemNum > 0 && startTs > 0 {
|
||||
// 赛季积分排行榜
|
||||
LogChannelSingleton.WriteLog(&model.PermitScore{
|
||||
mq.Write(&model.PermitScore{
|
||||
Platform: p.Platform,
|
||||
SnId: p.SnId,
|
||||
Name: p.Name,
|
||||
|
@ -703,7 +704,7 @@ func (this *BagMgr) AddItems(param *model.AddItemParam) (*BagInfo, bag.OpResultC
|
|||
RoomConfigId: param.RoomConfigId,
|
||||
})
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
ts = log.Ts
|
||||
newBagInfo.LogId = log.LogId.Hex()
|
||||
}
|
||||
|
@ -877,7 +878,7 @@ func (this *BagMgr) VerifyUpJybInfo(p *Player, args *model.VerifyUpJybInfoArgs)
|
|||
if jyb.Award.Coin > 0 {
|
||||
p.AddCoin(jyb.Award.Coin, 0, common.GainWay_ActJybAward, "system", "礼包码兑换")
|
||||
if !p.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_GiveType_ActJybAward, model.SystemFreeGive_CoinType_Coin, int64(jyb.Award.Coin)))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_GiveType_ActJybAward, model.SystemFreeGive_CoinType_Coin, int64(jyb.Award.Coin)))
|
||||
}
|
||||
jybLog.Award = append(jybLog.Award, &model.JybItem{
|
||||
Id: common.ItemIDCoin,
|
||||
|
@ -887,7 +888,7 @@ func (this *BagMgr) VerifyUpJybInfo(p *Player, args *model.VerifyUpJybInfoArgs)
|
|||
if jyb.Award.Diamond > 0 {
|
||||
p.AddDiamond(jyb.Award.Diamond, 0, common.GainWay_ActJybAward, "system", "礼包码兑换")
|
||||
if !p.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_GiveType_ActJybAward, model.SystemFreeGive_CoinType_Diamond, int64(jyb.Award.Diamond)))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_GiveType_ActJybAward, model.SystemFreeGive_CoinType_Diamond, int64(jyb.Award.Diamond)))
|
||||
}
|
||||
jybLog.Award = append(jybLog.Award, &model.JybItem{
|
||||
Id: common.ItemIDDiamond,
|
||||
|
@ -895,7 +896,7 @@ func (this *BagMgr) VerifyUpJybInfo(p *Player, args *model.VerifyUpJybInfoArgs)
|
|||
})
|
||||
}
|
||||
// 领取日志
|
||||
LogChannelSingleton.WriteLog(jybLog)
|
||||
mq.Write(jybLog)
|
||||
p.dirty = true
|
||||
pack.GainItem.Coin = jyb.Award.Coin
|
||||
pack.GainItem.Diamond = jyb.Award.Diamond
|
||||
|
|
|
@ -14,6 +14,7 @@ import (
|
|||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/etcd"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
hallproto "mongo.games.com/game/protocol/gamehall"
|
||||
loginproto "mongo.games.com/game/protocol/login"
|
||||
playerproto "mongo.games.com/game/protocol/player"
|
||||
|
@ -265,7 +266,7 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
|
|||
}
|
||||
f2 := func() {
|
||||
if st.StartTs > 0 {
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{
|
||||
mq.Write(&model.BackendPermitCycle{
|
||||
Platform: config.Platform,
|
||||
StartTs: st.StartTs,
|
||||
EndTs: st.EndTs - 1,
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
// SaveInviteScore 保存玩家操作
|
||||
|
@ -15,7 +16,7 @@ func SaveInviteScore(data *model.InviteScore) {
|
|||
}
|
||||
cfg := PlatformMgrSingleton.GetConfig(data.Platform).ActInviteConfig
|
||||
data.Rate = cfg.GetRates()
|
||||
LogChannelSingleton.WriteLog(&model.EvtInviteMsg{
|
||||
mq.Write(&model.EvtInviteMsg{
|
||||
InviteScore: *data,
|
||||
RechargeScore: cfg.GetRechargeScore(),
|
||||
})
|
||||
|
@ -23,7 +24,7 @@ func SaveInviteScore(data *model.InviteScore) {
|
|||
|
||||
// CheckNewWeek 每周重置积分
|
||||
func CheckNewWeek(platform string, snid int32) {
|
||||
LogChannelSingleton.WriteLog(&model.EvtInviteMsg{
|
||||
mq.Write(&model.EvtInviteMsg{
|
||||
InviteScore: model.InviteScore{
|
||||
Platform: platform,
|
||||
SnId: snid,
|
||||
|
|
|
@ -1,75 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
// LogChannelSingleton 日志记录器
|
||||
var LogChannelSingleton = &LogChannel{
|
||||
cName: make(map[reflect.Type]string),
|
||||
}
|
||||
|
||||
type LogChannel struct {
|
||||
cName map[reflect.Type]string
|
||||
}
|
||||
|
||||
func (c *LogChannel) RegisterLogCName(cname string, log interface{}) {
|
||||
t := c.getLogType(log)
|
||||
c.cName[t] = cname
|
||||
}
|
||||
|
||||
func (c *LogChannel) getLogType(log interface{}) reflect.Type {
|
||||
return reflect.Indirect(reflect.ValueOf(log)).Type()
|
||||
}
|
||||
|
||||
func (c *LogChannel) getLogCName(log interface{}) string {
|
||||
t := c.getLogType(log)
|
||||
if name, exist := c.cName[t]; exist {
|
||||
return name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// WriteLog 记录日志,需要提前注册
|
||||
func (c *LogChannel) WriteLog(log interface{}) {
|
||||
cname := c.getLogCName(log)
|
||||
if cname == "" {
|
||||
cname = "_null_"
|
||||
}
|
||||
logger.Logger.Tracef("==> RabbitMQ(%v): %#v", cname, log)
|
||||
mq.Send(cname, log)
|
||||
}
|
||||
|
||||
// WriteMQData rabbitMQ消息
|
||||
func (c *LogChannel) WriteMQData(data *model.RabbitMQData) {
|
||||
mq.Send(data.MQName, data.Data)
|
||||
}
|
||||
|
||||
func init() {
|
||||
LogChannelSingleton.RegisterLogCName(model.LoginLogCollName, &model.LoginLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.CoinGiveLogCollName, &model.CoinGiveLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.CoinLogCollName, &model.CoinLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.ItemLogCollName, &model.ItemLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.WelfareLogCollName, &model.WelfareLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.OnlineLogCollName, &model.OnlineLog{})
|
||||
LogChannelSingleton.RegisterLogCName(model.MQRankSeason, &model.PlayerRankScore{})
|
||||
LogChannelSingleton.RegisterLogCName(model.MQRankPlayerCoin, &model.RankPlayerCoin{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackBankrupt, &model.BankruptLog{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackReliefund, &model.ReliefFundLog{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.DBInvite, &model.EvtInviteMsg{})
|
||||
LogChannelSingleton.RegisterLogCName(model.MQRankPlayerLevel, &model.PlayerLevelInfo{})
|
||||
LogChannelSingleton.RegisterLogCName(model.MQRankPlayerPermit, &model.PermitScore{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitCycle, &model.BackendPermitCycle{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitRank, &model.BackendPermitRank{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitExchange, &model.BackendPermitExchange{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitJoin, &model.BackendPermitJoin{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemPermitTask, &model.BackendPermitTask{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackClientLog, &model.ClientLogMysql{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.BackSystemJyb, &model.JybLog{})
|
||||
LogChannelSingleton.RegisterLogCName(mq.DBVipGiftLog, &model.DbVip{})
|
||||
}
|
|
@ -1,13 +1,8 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"mongo.games.com/goserver/core"
|
||||
"mongo.games.com/goserver/core/basic"
|
||||
"mongo.games.com/goserver/core/broker"
|
||||
"mongo.games.com/goserver/core/broker/rabbitmq"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
|
@ -15,19 +10,39 @@ import (
|
|||
)
|
||||
|
||||
func init() {
|
||||
mq.RegisterSubscriber(mq.WorldLogCoinAck, func(e broker.Event) (err error) {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.LoginLogCollName, Data: &model.LoginLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBGiveLog, Data: &model.CoinGiveLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.CoinLogCollName, Data: &model.CoinLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.ItemLogCollName, Data: &model.ItemLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.WelfareLogCollName, Data: &model.WelfareLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.OnlineLogCollName, Data: &model.OnlineLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankSeason, Data: &model.PlayerRankScore{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankPlayerCoin, Data: &model.RankPlayerCoin{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackBankrupt, Data: &model.BankruptLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackReliefund, Data: &model.ReliefFundLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBInvite, Data: &model.EvtInviteMsg{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankPlayerLevel, Data: &model.PlayerLevelInfo{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: model.MQRankPlayerPermit, Data: &model.PermitScore{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitCycle, Data: &model.BackendPermitCycle{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitRank, Data: &model.BackendPermitRank{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitExchange, Data: &model.BackendPermitExchange{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitJoin, Data: &model.BackendPermitJoin{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemPermitTask, Data: &model.BackendPermitTask{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackClientLog, Data: &model.ClientLogMysql{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.BackSystemJyb, Data: &model.JybLog{}})
|
||||
mq.RegisterMessage(&mq.RegisterMessageParam{Name: mq.DBVipGiftLog, Data: &model.DbVip{}})
|
||||
}
|
||||
|
||||
var log model.CoinLog
|
||||
err = json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
func init() {
|
||||
// 金币对账
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: mq.WorldLogCoinAck,
|
||||
Data: &model.CoinLog{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.CoinLog)
|
||||
if !ok || log == nil {
|
||||
return
|
||||
}
|
||||
|
||||
//通知主线程执行后续操作
|
||||
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
||||
player := PlayerMgrSington.GetPlayerBySnId(log.SnId)
|
||||
|
@ -38,26 +53,19 @@ func init() {
|
|||
return nil
|
||||
}), true)
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(mq.WorldLogCoinAck), rabbitmq.DurableQueue())
|
||||
},
|
||||
})
|
||||
|
||||
// 邀请数据同步
|
||||
mq.RegisterSubscriber(mq.WorldInviteAck, func(e broker.Event) error {
|
||||
msg := e.Message()
|
||||
if msg != nil {
|
||||
defer func() {
|
||||
e.Ack()
|
||||
}()
|
||||
|
||||
var log model.EvtInviteAckMsg
|
||||
err := json.Unmarshal(msg.Body, &log)
|
||||
if err != nil {
|
||||
return err
|
||||
mq.RegisterHandler(&mq.RegisterHandlerParam{
|
||||
Name: mq.WorldInviteAck,
|
||||
Data: &model.EvtInviteAckMsg{},
|
||||
Handler: func(data interface{}) (err error) {
|
||||
log, ok := data.(*model.EvtInviteAckMsg)
|
||||
if !ok || log == nil {
|
||||
return
|
||||
}
|
||||
|
||||
logger.Logger.Tracef("EvtInviteAckMsg: %+v", log)
|
||||
|
||||
//通知主线程执行后续操作
|
||||
core.CoreObject().SendCommand(basic.CommandWrapper(func(o *basic.Object) error {
|
||||
player := PlayerMgrSington.GetPlayerBySnId(log.Snid)
|
||||
|
@ -84,7 +92,7 @@ func init() {
|
|||
}
|
||||
return nil
|
||||
}), true)
|
||||
}
|
||||
return nil
|
||||
}, broker.Queue(mq.WorldInviteAck), rabbitmq.DurableQueue())
|
||||
return
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
var PermitMgrInst = new(PermitMgr)
|
||||
|
@ -109,7 +110,7 @@ func (r *PermitMgr) OnDayTimer() {
|
|||
}
|
||||
logger.Logger.Infof("PermitMgr rank award snid:%v rank:%v", player.SnId, rank)
|
||||
// 领奖记录
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitRank{
|
||||
mq.Write(&model.BackendPermitRank{
|
||||
Platform: platform,
|
||||
StartTs: startTs,
|
||||
SnId: curPlayer.SnId,
|
||||
|
@ -168,7 +169,7 @@ func (r *PermitMgr) OnDayTimer() {
|
|||
return nil
|
||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||
if se.StartTs > 0 {
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{
|
||||
mq.Write(&model.BackendPermitCycle{
|
||||
Platform: platform,
|
||||
StartTs: se.StartTs,
|
||||
EndTs: se.EndTs - 1,
|
||||
|
|
|
@ -25,6 +25,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/bag"
|
||||
hallproto "mongo.games.com/game/protocol/gamehall"
|
||||
|
@ -346,7 +347,7 @@ func (this *Player) OnLogined() {
|
|||
this.addLotteryCount(20)
|
||||
this.InitLotteryStatus = true
|
||||
this.dirty = true
|
||||
LogChannelSingleton.WriteMQData(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, 20, 5, 0))
|
||||
mq.Write(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, 20, 5, 0))
|
||||
}
|
||||
|
||||
//登录日志
|
||||
|
@ -355,7 +356,7 @@ func (this *Player) OnLogined() {
|
|||
if logState != nil {
|
||||
clog = logState.clog
|
||||
}
|
||||
LogChannelSingleton.WriteLog(model.NewLoginLog(this.SnId, common.LoginLogTypeLogin, this.Tel, this.Ip,
|
||||
mq.Write(model.NewLoginLog(this.SnId, common.LoginLogTypeLogin, this.Tel, this.Ip,
|
||||
this.Platform, this.Channel, this.BeUnderAgentCode, this.PackageID, this.City, clog, this.GetTotalCoin(), 0, 0,
|
||||
this.DeviceName, this.PackageName, this.AppVersion, this.BuildVersion, this.AppChannel, this.ChannelId))
|
||||
|
||||
|
@ -428,7 +429,7 @@ func (this *Player) OnRehold() {
|
|||
if logState != nil {
|
||||
clog = logState.clog
|
||||
}
|
||||
LogChannelSingleton.WriteLog(model.NewLoginLog(this.SnId, common.LoginLogTypeRehold, this.Tel, this.Ip,
|
||||
mq.Write(model.NewLoginLog(this.SnId, common.LoginLogTypeRehold, this.Tel, this.Ip,
|
||||
this.Platform, this.Channel, this.BeUnderAgentCode, this.PackageID, this.City, clog, this.GetTotalCoin(),
|
||||
gameid, 0, this.DeviceName, this.PackageName, this.AppVersion, this.BuildVersion, this.AppChannel, this.ChannelId))
|
||||
|
||||
|
@ -1117,9 +1118,8 @@ func (this *Player) GetMessageAttach(id string) {
|
|||
tp = model.SystemFreeGive_CoinType_Diamond
|
||||
}
|
||||
if tp != -1 {
|
||||
LogChannelSingleton.WriteMQData(
|
||||
model.GenerateSystemFreeGive(this.SnId, this.Name, this.Platform, this.Channel,
|
||||
model.SystemFreeGive_GiveType_TaskPermitRank, tp, int64(msg.Params[i+1])))
|
||||
mq.Write(model.GenerateSystemFreeGive(this.SnId, this.Name, this.Platform, this.Channel,
|
||||
model.SystemFreeGive_GiveType_TaskPermitRank, tp, int64(msg.Params[i+1])))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1202,7 +1202,7 @@ func (this *Player) GetMessageAttach(id string) {
|
|||
this.AddPayCoinLog(msg.Coin, model.PayCoinLogType_Coin, "mail")
|
||||
if msg.Oper == 0 { //系统赠送
|
||||
if !this.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(this.SnId, this.Name, this.Platform, this.Channel, model.SystemFreeGive_GiveType_MailSystemGive,
|
||||
mq.Write(model.GenerateSystemFreeGive(this.SnId, this.Name, this.Platform, this.Channel, model.SystemFreeGive_GiveType_MailSystemGive,
|
||||
model.SystemFreeGive_CoinType_Coin, int64(msg.Coin)))
|
||||
}
|
||||
}
|
||||
|
@ -1219,7 +1219,7 @@ func (this *Player) GetMessageAttach(id string) {
|
|||
this.AddDiamond(msg.Diamond, 0, gainWay, msg.Id.Hex(), remark)
|
||||
if msg.Oper == 0 { //系统赠送
|
||||
if !this.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(this.SnId, this.Name, this.Platform, this.Channel, model.SystemFreeGive_GiveType_MailSystemGive,
|
||||
mq.Write(model.GenerateSystemFreeGive(this.SnId, this.Name, this.Platform, this.Channel, model.SystemFreeGive_GiveType_MailSystemGive,
|
||||
model.SystemFreeGive_CoinType_Diamond, int64(msg.Diamond)))
|
||||
}
|
||||
}
|
||||
|
@ -1281,7 +1281,7 @@ func (this *Player) DropLine() {
|
|||
if this.scene != nil && this.scene.gameSess != nil {
|
||||
gameid = this.scene.gameId
|
||||
}
|
||||
LogChannelSingleton.WriteLog(model.NewLoginLog(this.SnId, common.LoginLogTypeDrop, this.Tel, this.Ip,
|
||||
mq.Write(model.NewLoginLog(this.SnId, common.LoginLogTypeDrop, this.Tel, this.Ip,
|
||||
this.Platform, this.Channel, this.BeUnderAgentCode, this.PackageID, this.City, clog, this.GetTotalCoin(),
|
||||
gameid, this.LastGameId, this.DeviceName, this.PackageName, this.AppVersion, this.BuildVersion, this.AppChannel, this.ChannelId))
|
||||
|
||||
|
@ -1406,7 +1406,7 @@ func (this *Player) OnLogouted() {
|
|||
}
|
||||
//排除掉机器人
|
||||
if !this.IsRob {
|
||||
LogChannelSingleton.WriteLog(model.NewLoginLog(this.SnId, common.LoginLogTypeLogout, this.Tel, this.Ip,
|
||||
mq.Write(model.NewLoginLog(this.SnId, common.LoginLogTypeLogout, this.Tel, this.Ip,
|
||||
this.Platform, this.Channel, this.BeUnderAgentCode, this.PackageID, this.City, clog, this.GetTotalCoin(),
|
||||
0, 0, this.DeviceName, this.PackageName, this.AppVersion, this.BuildVersion, this.AppChannel, this.ChannelId))
|
||||
this.OnlineLogLogout()
|
||||
|
@ -1712,7 +1712,7 @@ func (this *Player) AddDiamond(num, add int64, gainWay int32, oper, remark strin
|
|||
Remark: remark,
|
||||
})
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1767,7 +1767,7 @@ func (this *Player) AddCoin(num, add int64, gainWay int32, oper, remark string)
|
|||
Remark: remark,
|
||||
})
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1822,7 +1822,7 @@ func (this *Player) AddCoinAsync(num, add int64, gainWay int32, oper, remark str
|
|||
Remark: remark,
|
||||
})
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2908,7 +2908,7 @@ func (this *Player) ReportLoginEvent() {
|
|||
this.UpgradeTime = this.CreateTime
|
||||
}
|
||||
}
|
||||
LogChannelSingleton.WriteMQData(model.GenerateLogin(model.CreatePlayerLoginEvent(this.SnId,
|
||||
mq.Write(model.GenerateLogin(model.CreatePlayerLoginEvent(this.SnId,
|
||||
this.Channel, this.BeUnderAgentCode, this.Platform, this.City, this.DeviceOS, this.Ip,
|
||||
this.CreateTime, this.UpgradeTime, isBindPhone, this.TelephonePromoter, this.DeviceId, this.ChannelId)))
|
||||
//登录通知
|
||||
|
@ -3255,7 +3255,7 @@ func (this *Player) TryRetrieveLostGameCoin(sceneid int) {
|
|||
logProbe.RestCount = 0 //this.Coin
|
||||
logProbe.SeqNo = this.GameCoinTs
|
||||
logProbe.RoomId = int32(sceneid)
|
||||
LogChannelSingleton.WriteLog(logProbe)
|
||||
mq.Write(logProbe)
|
||||
this.SendDiffData()
|
||||
}
|
||||
|
||||
|
@ -3484,7 +3484,7 @@ func (this *Player) VIPDraw(id, vip int32) {
|
|||
var item []model.ItemInfo
|
||||
item = append(item, model.ItemInfo{ItemId: 1, ItemNum: money})
|
||||
log := model.NewDbVip(this.Platform, this.SnId, this.VIP, 0, 0, 0, item, 0, "Vip每日礼包")
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
|
||||
case 1:
|
||||
var items []*model.Item
|
||||
|
@ -3508,7 +3508,7 @@ func (this *Player) VIPDraw(id, vip int32) {
|
|||
logger.Logger.Tracef("玩家领取VIP等级礼包成功!snid = %v,Vip = %v,items %#v", this.SnId, this.VIP, items)
|
||||
//VIP礼包统计数据
|
||||
log := model.NewDbVip(this.Platform, this.SnId, this.VIP, 9, 0, 0, itemInfo, 0, "Vip等级礼包")
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
send()
|
||||
|
@ -3653,7 +3653,7 @@ func (this *Player) DoShopInfo(info *model.DbShop, isLogin bool) {
|
|||
// 通行证
|
||||
if info.PageId == ShopPagePermit {
|
||||
this.Permit = info.CreateTs.Local()
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitJoin{
|
||||
mq.Write(&model.BackendPermitJoin{
|
||||
Platform: this.Platform,
|
||||
StartTs: PlatformMgrSingleton.GetConfig(this.Platform).PermitStartTs,
|
||||
SnId: this.SnId,
|
||||
|
@ -3767,7 +3767,7 @@ func (this *Player) OnlineLogLogin() {
|
|||
}
|
||||
if this.onlineLog == nil {
|
||||
this.onlineLog = model.NewOnlineLog(bson.NewObjectId(), this.SnId, common.LoginLogTypeLogin, this.Platform)
|
||||
LogChannelSingleton.WriteLog(*this.onlineLog)
|
||||
mq.Write(*this.onlineLog)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3777,7 +3777,7 @@ func (this *Player) OnlineLogRehold() {
|
|||
}
|
||||
if this.onlineLog == nil {
|
||||
this.onlineLog = model.NewOnlineLog(bson.NewObjectId(), this.SnId, common.LoginLogTypeRehold, this.Platform)
|
||||
LogChannelSingleton.WriteLog(*this.onlineLog)
|
||||
mq.Write(*this.onlineLog)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3788,7 +3788,7 @@ func (this *Player) OnlineLogDrop() {
|
|||
if this.onlineLog != nil && this.onlineLog.OfflineTs == 0 {
|
||||
this.onlineLog.OfflineType = common.LoginLogTypeDrop
|
||||
this.onlineLog.OfflineTs = time.Now().Unix()
|
||||
LogChannelSingleton.WriteLog(*this.onlineLog)
|
||||
mq.Write(*this.onlineLog)
|
||||
this.onlineLog = nil
|
||||
}
|
||||
}
|
||||
|
@ -3800,7 +3800,7 @@ func (this *Player) OnlineLogLogout() {
|
|||
if this.onlineLog != nil && this.onlineLog.OfflineTs == 0 {
|
||||
this.onlineLog.OfflineType = common.LoginLogTypeLogout
|
||||
this.onlineLog.OfflineTs = time.Now().Unix()
|
||||
LogChannelSingleton.WriteLog(*this.onlineLog)
|
||||
mq.Write(*this.onlineLog)
|
||||
this.onlineLog = nil
|
||||
}
|
||||
}
|
||||
|
@ -3879,7 +3879,7 @@ func (this *Player) SendRankSeason() {
|
|||
}
|
||||
|
||||
func (this *Player) SendPlayerCoin() {
|
||||
LogChannelSingleton.WriteLog(&model.RankPlayerCoin{
|
||||
mq.Write(&model.RankPlayerCoin{
|
||||
Platform: this.Platform,
|
||||
SnId: this.SnId,
|
||||
Name: this.Name,
|
||||
|
@ -3969,7 +3969,7 @@ func (this *Player) UpdatePlayerVipBag(shopId int32) {
|
|||
item = append(item, model.ItemInfo{ItemId: shopInfo.Type, ItemNum: shopInfo.Amount})
|
||||
log := model.NewDbVip(this.Platform, this.SnId, shopInfo.VipLevel, shopInfo.Type, shopInfo.ConstType,
|
||||
int64(shopInfo.CostArea[0]), item, shopInfo.Id, shopInfo.Name)
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
//判断是否是礼包周卡
|
||||
if shopInfo.Page == ShopPageGift {
|
||||
|
@ -4193,7 +4193,7 @@ func (this *Player) PhoneLotteryTask(taskId int32, num int64) {
|
|||
count := this.WelfData.PhoneLotteryTask[taskId].N / 20
|
||||
this.addLotteryCount(int32(count))
|
||||
this.WelfData.PhoneLotteryTask[taskId].N = this.WelfData.PhoneLotteryTask[taskId].N % 20
|
||||
LogChannelSingleton.WriteMQData(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, int(count), 4, 0))
|
||||
mq.Write(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, int(count), 4, 0))
|
||||
}
|
||||
|
||||
case common.TaskTypeWinOrLose:
|
||||
|
@ -4202,7 +4202,7 @@ func (this *Player) PhoneLotteryTask(taskId int32, num int64) {
|
|||
count := this.WelfData.PhoneLotteryTask[taskId].N / 200000000
|
||||
this.addLotteryCount(int32(count))
|
||||
this.WelfData.PhoneLotteryTask[taskId].N = this.WelfData.PhoneLotteryTask[taskId].N % 200000000
|
||||
LogChannelSingleton.WriteMQData(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, int(count), 3, 0))
|
||||
mq.Write(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, int(count), 3, 0))
|
||||
}
|
||||
|
||||
case common.TaskTypeTienlenCount:
|
||||
|
@ -4211,11 +4211,11 @@ func (this *Player) PhoneLotteryTask(taskId int32, num int64) {
|
|||
count := this.WelfData.PhoneLotteryTask[taskId].N / 20
|
||||
this.addLotteryCount(int32(count))
|
||||
this.WelfData.PhoneLotteryTask[taskId].N = this.WelfData.PhoneLotteryTask[taskId].N % 20
|
||||
LogChannelSingleton.WriteMQData(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, int(count), 2, 0))
|
||||
mq.Write(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, int(count), 2, 0))
|
||||
}
|
||||
case common.TaskTypeFirstLogin:
|
||||
this.addLotteryCount(5)
|
||||
LogChannelSingleton.WriteMQData(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, 5, 1, 0))
|
||||
mq.Write(model.GeneratePhoneLottery(this.SnId, this.Platform, "", 3, 5, 1, 0))
|
||||
default:
|
||||
logger.Logger.Errorf("手机抽奖任务未找到对应的任务ID: %d", taskId)
|
||||
return
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"mongo.games.com/goserver/core/module"
|
||||
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
)
|
||||
|
||||
var PlayerOnlineSington = &PlayerOnlineEvent{
|
||||
|
@ -58,7 +59,7 @@ func (p *PlayerOnlineEvent) Update() {
|
|||
|
||||
here:
|
||||
p.OnlineCh = onlineCh
|
||||
LogChannelSingleton.WriteMQData(model.GenerateOnline(p.OnlineCh))
|
||||
mq.Write(model.GenerateOnline(p.OnlineCh))
|
||||
}
|
||||
|
||||
func (p *PlayerOnlineEvent) Shutdown() {
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"mongo.games.com/game/common"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -16,8 +15,10 @@ import (
|
|||
"mongo.games.com/goserver/core/module"
|
||||
"mongo.games.com/goserver/core/task"
|
||||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
hall_proto "mongo.games.com/game/protocol/gamehall"
|
||||
"mongo.games.com/game/mq"
|
||||
hallproto "mongo.games.com/game/protocol/gamehall"
|
||||
"mongo.games.com/game/protocol/rankmatch"
|
||||
"mongo.games.com/game/srvdata"
|
||||
"mongo.games.com/game/worldsrv/internal"
|
||||
|
@ -213,9 +214,9 @@ here:
|
|||
p := PlayerMgrSington.GetPlayerBySnId(this.SnId)
|
||||
if p != nil {
|
||||
if has {
|
||||
p.SendShowRed(hall_proto.ShowRedCode_RankReward, rankType, 1)
|
||||
p.SendShowRed(hallproto.ShowRedCode_RankReward, rankType, 1)
|
||||
} else {
|
||||
p.SendShowRed(hall_proto.ShowRedCode_RankReward, rankType, 0)
|
||||
p.SendShowRed(hallproto.ShowRedCode_RankReward, rankType, 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -241,7 +242,7 @@ func (this *PlayerRankSeason) rankLog(rankType int32) {
|
|||
UpdateTs: time.Now().Unix(),
|
||||
ModId: p.PlayerData.GetRoleId(),
|
||||
}
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
|
||||
type RankMatchMgr struct {
|
||||
|
@ -472,7 +473,7 @@ func (r *RankMatchMgr) UpdateRobotSeason(platform string, snid int32, rankType i
|
|||
UpdateTs: time.Now().Unix(),
|
||||
ModId: roleId,
|
||||
}
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
|
||||
func (r *RankMatchMgr) SetPlayerSeason(config *PlayerRankSeason) {
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"mongo.games.com/game/protocol/bag"
|
||||
"slices"
|
||||
"strconv"
|
||||
"time"
|
||||
|
@ -17,7 +16,9 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/bag"
|
||||
hall_proto "mongo.games.com/game/protocol/gamehall"
|
||||
"mongo.games.com/game/protocol/shop"
|
||||
webapi_proto "mongo.games.com/game/protocol/webapi"
|
||||
|
@ -595,7 +596,7 @@ func (this *ShopMgr) createPhoneScore(p *Player, shopInfo *model.ShopInfo, costN
|
|||
})
|
||||
jsonData, err := json.Marshal(items)
|
||||
if err == nil {
|
||||
LogChannelSingleton.WriteMQData(model.GeneratePhoneLottery(p.SnId, p.Platform, string(jsonData), 2, 0, 0, int(costNum)))
|
||||
mq.Write(model.GeneratePhoneLottery(p.SnId, p.Platform, string(jsonData), 2, 0, 0, int(costNum)))
|
||||
}
|
||||
for _, v := range items {
|
||||
tp1 := int32(-1)
|
||||
|
@ -605,8 +606,7 @@ func (this *ShopMgr) createPhoneScore(p *Player, shopInfo *model.ShopInfo, costN
|
|||
tp1 = model.SystemFreeGive_CoinType_Diamond
|
||||
}
|
||||
if !p.IsRob && tp1 >= 0 {
|
||||
LogChannelSingleton.WriteMQData(
|
||||
model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_PhoneLotterySwap, tp1, v.ItemNum))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_PhoneLotterySwap, tp1, v.ItemNum))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -749,7 +749,7 @@ func (this *ShopMgr) GainShop(shopInfo *model.ShopInfo, p *Player, vipShopId, po
|
|||
p.AddCoin(addTotal, 0, common.GainWay_Shop_Buy, "system", shopName)
|
||||
if shopInfo.Ad > 0 { //观看广告
|
||||
if !p.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_GiveType_ShopAd, model.SystemFreeGive_CoinType_Coin, addTotal))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_GiveType_ShopAd, model.SystemFreeGive_CoinType_Coin, addTotal))
|
||||
}
|
||||
}
|
||||
// 记录钻石兑换金币的金币数量,个人水池调控使用
|
||||
|
@ -766,7 +766,7 @@ func (this *ShopMgr) GainShop(shopInfo *model.ShopInfo, p *Player, vipShopId, po
|
|||
p.AddDiamond(addTotal, 0, common.GainWay_Shop_Buy, "system", shopName)
|
||||
if shopInfo.Ad > 0 { //观看广告
|
||||
if !p.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_GiveType_ShopAd, model.SystemFreeGive_CoinType_Diamond, addTotal))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, model.SystemFreeGive_GiveType_ShopAd, model.SystemFreeGive_CoinType_Diamond, addTotal))
|
||||
}
|
||||
}
|
||||
default:
|
||||
|
|
|
@ -17,6 +17,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
"mongo.games.com/game/proto"
|
||||
login_proto "mongo.games.com/game/protocol/login"
|
||||
server_proto "mongo.games.com/game/protocol/server"
|
||||
|
@ -133,7 +134,7 @@ func (t *TaskLogin) Call(o *basic.Object) interface{} {
|
|||
if err == nil {
|
||||
// 新号赠送日志
|
||||
if !playerData.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(
|
||||
mq.Write(model.GenerateSystemFreeGive(
|
||||
playerData.SnId, playerData.Name, playerData.Platform, playerData.Channel,
|
||||
model.SystemFreeGive_GiveType_NewPlayer, model.SystemFreeGive_CoinType_Coin,
|
||||
int64(model.GameParamData.NewPlayerCoin)))
|
||||
|
@ -155,7 +156,7 @@ func (t *TaskLogin) Call(o *basic.Object) interface{} {
|
|||
Remark: "",
|
||||
})
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,7 +168,7 @@ func (t *TaskLogin) Call(o *basic.Object) interface{} {
|
|||
// 金币
|
||||
if coin > 0 {
|
||||
if !playerData.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(
|
||||
mq.Write(model.GenerateSystemFreeGive(
|
||||
playerData.SnId, playerData.Name, playerData.Platform, playerData.Channel,
|
||||
model.SystemFreeGive_GiveType_BindTel, model.SystemFreeGive_CoinType_Coin, coin))
|
||||
}
|
||||
|
@ -188,13 +189,13 @@ func (t *TaskLogin) Call(o *basic.Object) interface{} {
|
|||
Remark: "",
|
||||
})
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
// 钻石
|
||||
if diamond > 0 {
|
||||
if !playerData.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(
|
||||
mq.Write(model.GenerateSystemFreeGive(
|
||||
playerData.SnId, playerData.Name, playerData.Platform, playerData.Channel,
|
||||
model.SystemFreeGive_GiveType_BindTel, model.SystemFreeGive_CoinType_Diamond, diamond))
|
||||
}
|
||||
|
@ -215,7 +216,7 @@ func (t *TaskLogin) Call(o *basic.Object) interface{} {
|
|||
Remark: "",
|
||||
})
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
//todo道具
|
||||
|
|
|
@ -55,7 +55,7 @@ package main
|
|||
// log := model.NewCoinLogEx(p.SnId, ctx.Coin, p.Coin, p.SafeBoxCoin, p.Ver, ctx.GainWay, 0,
|
||||
// ctx.Oper, ctx.Remark, p.Platform, p.Channel, p.BeUnderAgentCode, 0, p.PackageID, 0)
|
||||
// if log != nil {
|
||||
// LogChannelSingleton.WriteLog(log)
|
||||
// mq.Write(log)
|
||||
// }
|
||||
// }
|
||||
// tNode.TransRep.RetFiels = p.Coin
|
||||
|
|
|
@ -10,6 +10,7 @@ import (
|
|||
|
||||
"mongo.games.com/game/common"
|
||||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/mq"
|
||||
hall_proto "mongo.games.com/game/protocol/gamehall"
|
||||
player_proto "mongo.games.com/game/protocol/player"
|
||||
"mongo.games.com/game/protocol/shop"
|
||||
|
@ -109,7 +110,7 @@ func (this *WelfareMgr) GetReliefFund(p *Player, isVideo bool) {
|
|||
|
||||
log := model.NewReliefFundLogEx(p.SnId, getType, model.SystemFreeGive_CoinType_Coin, coin, p.CreateTime.Unix(), p.Platform, p.Channel)
|
||||
if log != nil {
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
logger.Logger.Tracef("NewReliefFundLogEx WriteLog snid: %v Coin:%v", p.SnId, pack.Coin)
|
||||
}
|
||||
}
|
||||
|
@ -556,14 +557,14 @@ func DrawWelfareDate(dates []*webapi_proto.WelfareDate, p *Player, gainWay int32
|
|||
p.AddCoin(coin, add, gainWay, oper, remark)
|
||||
if giveType != -1 {
|
||||
if !p.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, model.SystemFreeGive_CoinType_Coin, int64(coin)))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, model.SystemFreeGive_CoinType_Coin, int64(coin)))
|
||||
}
|
||||
}
|
||||
case 2: //钻石
|
||||
p.AddDiamond(int64(v.Grade), 0, gainWay, oper, remark)
|
||||
if giveType != -1 {
|
||||
if !p.IsRob {
|
||||
LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, model.SystemFreeGive_CoinType_Diamond, int64(v.Grade)))
|
||||
mq.Write(model.GenerateSystemFreeGive(p.SnId, p.Name, p.Platform, p.Channel, giveType, model.SystemFreeGive_CoinType_Diamond, int64(v.Grade)))
|
||||
}
|
||||
}
|
||||
case 3: //道具
|
||||
|
@ -1154,7 +1155,7 @@ func (this *WelfareMgr) RecordWelfareLog(p *Player, num, takenum, discount int64
|
|||
|
||||
if log != nil {
|
||||
//logger.Logger.Trace("RecordItemLog 开始记录 道具操作")
|
||||
LogChannelSingleton.WriteLog(log)
|
||||
mq.Write(log)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue