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