赛季通行证数据记录
This commit is contained in:
parent
2e34c33768
commit
8117f1af54
|
@ -0,0 +1,38 @@
|
|||
package model
|
||||
|
||||
// BackendPermitCycle 赛季周期
|
||||
type BackendPermitCycle struct {
|
||||
Platform string // 平台
|
||||
StartTs, EndTs int64 // 活动开始时间
|
||||
}
|
||||
|
||||
type AwardItem struct {
|
||||
Id int32 // 道具id
|
||||
Num int64
|
||||
}
|
||||
|
||||
// BackendPermitRank 玩家排名奖励
|
||||
type BackendPermitRank struct {
|
||||
Platform string // 平台
|
||||
StartTs int64 // 活动开始时间
|
||||
SnId int32 // 玩家id
|
||||
Rank int32 // 排名 1~100
|
||||
Awards []AwardItem // 奖励
|
||||
}
|
||||
|
||||
// BackendPermitExchange 玩家兑换
|
||||
type BackendPermitExchange struct {
|
||||
Platform string // 平台
|
||||
StartTs int64 // 活动开始时间
|
||||
SnId int32 // 玩家id
|
||||
Cost []AwardItem // 消耗
|
||||
Gain []AwardItem // 获得
|
||||
Ts int64 // 时间戳
|
||||
}
|
||||
|
||||
// BackendPermitJoin 玩家参与活动
|
||||
type BackendPermitJoin struct {
|
||||
Platform string // 平台
|
||||
StartTs int64 // 活动开始时间
|
||||
SnId int32 // 玩家id
|
||||
}
|
|
@ -2,14 +2,18 @@ package mq
|
|||
|
||||
// 后台消息
|
||||
const (
|
||||
BackBankrupt = "log_bankrupt"
|
||||
BackClientLog = "log_clientlog_mysql"
|
||||
BackGameRecord = "evt_gamerec"
|
||||
BackLogin = "evt_login"
|
||||
BackOnline = "evt_online"
|
||||
BackPhoneLottery = "evt_phonelottery"
|
||||
BackReliefund = "log_relieffund"
|
||||
BackSystemFreeGive = "evt_systemfreegive"
|
||||
BackBankrupt = "log_bankrupt"
|
||||
BackClientLog = "log_clientlog_mysql"
|
||||
BackGameRecord = "evt_gamerec"
|
||||
BackLogin = "evt_login"
|
||||
BackOnline = "evt_online"
|
||||
BackPhoneLottery = "evt_phonelottery"
|
||||
BackReliefund = "log_relieffund"
|
||||
BackSystemFreeGive = "evt_systemfreegive"
|
||||
BackSystemPermitCycle = "back_permitcycle"
|
||||
BackSystemPermitRank = "back_permitrank"
|
||||
BackSystemPermitExchange = "back_permitexchange"
|
||||
BackSystemPermitJoin = "back_permitjoin"
|
||||
)
|
||||
|
||||
// dbproxy 消息
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -318,7 +318,6 @@ message PlayerData {
|
|||
int32 Age = 47; // 年龄
|
||||
repeated WeekInfo WeekCard = 48;//周卡
|
||||
repeated int32 RequestAddFriend = 49;//请求添加好友信息
|
||||
int64 Long = 50; // 龙币
|
||||
}
|
||||
|
||||
//周卡数据
|
||||
|
@ -361,7 +360,6 @@ message SCPlayerDataUpdate {
|
|||
map<int32,int64> RankScore = 12; // 排位积分
|
||||
int64 PhoneScore = 13; //手机积分
|
||||
int64 InviteScore = 14; // 邀请积分
|
||||
int64 Long = 15; // 龙币
|
||||
}
|
||||
|
||||
//获取第三方玩家信息
|
||||
|
|
|
@ -940,11 +940,15 @@ func CSPermitExchangeList(s *netlib.Session, packetid int, data interface{}, sid
|
|||
|
||||
times := int32(v.GetTimes()) - int32(GetPermitExchangeNum(p, v.GetId()))
|
||||
|
||||
exchangeTimes := v.GetTimes()
|
||||
if exchangeTimes == 0 {
|
||||
exchangeTimes = -1
|
||||
}
|
||||
pack.List = append(pack.List, &welfare.ShopInfo{
|
||||
Id: v.GetId(),
|
||||
Gain: gain,
|
||||
Cost: cost,
|
||||
ExchangeTimes: int32(v.GetTimes()),
|
||||
ExchangeTimes: int32(exchangeTimes),
|
||||
RemainTimes: times,
|
||||
Level: v.GetLevel(),
|
||||
NeedPermit: v.GetIsPermit(),
|
||||
|
@ -1018,6 +1022,7 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
// 检查背包是否足够
|
||||
var items []*Item
|
||||
var costItems []*Item
|
||||
var cost, gain []model.AwardItem
|
||||
for _, v := range exchangeConfig.GetCost() {
|
||||
item := BagMgrSingleton.GetItem(p.SnId, v.GetItemId())
|
||||
if item == nil || item.ItemNum < v.GetItemNum() {
|
||||
|
@ -1031,6 +1036,10 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
ItemNum: v.GetItemNum(),
|
||||
Name: info.Name,
|
||||
})
|
||||
cost = append(cost, model.AwardItem{
|
||||
Id: v.GetItemId(),
|
||||
Num: v.GetItemNum(),
|
||||
})
|
||||
}
|
||||
}
|
||||
for _, v := range exchangeConfig.GetGain() {
|
||||
|
@ -1041,6 +1050,10 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
ItemNum: v.GetItemNum(),
|
||||
Name: info.Name,
|
||||
})
|
||||
gain = append(gain, model.AwardItem{
|
||||
Id: v.GetItemId(),
|
||||
Num: v.GetItemNum(),
|
||||
})
|
||||
}
|
||||
}
|
||||
// 扣除背包物品
|
||||
|
@ -1050,6 +1063,15 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
// 增加背包物品
|
||||
BagMgrSingleton.AddItems(p, items, 0, common.GainWayPermitExchangeGain, "system", "赛季通行证兑换获得", 0, 0, false)
|
||||
p.WelfData.PermitExchange[msg.GetId()] = append(p.WelfData.PermitExchange[msg.GetId()], now.Unix())
|
||||
// 兑换记录
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitExchange{
|
||||
Platform: p.Platform,
|
||||
StartTs: startTs,
|
||||
SnId: p.SnId,
|
||||
Cost: cost,
|
||||
Gain: gain,
|
||||
Ts: now.Unix(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -149,6 +149,7 @@ func (this *BagMgr) GetItem(snid, itemId int32) *Item {
|
|||
// noLog 是否不记录日志
|
||||
func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int32, operator, remark string,
|
||||
gameId, gameFreeId int64, noLog bool) (*BagInfo, bag.OpResultCode, bool) {
|
||||
longItem := this.GetItem(p.SnId, common.ItemIDPermit)
|
||||
var items []*Item
|
||||
for _, v := range addItems {
|
||||
if v == nil || v.ItemNum == 0 {
|
||||
|
@ -312,6 +313,14 @@ func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int
|
|||
ModId: p.Roles.ModId,
|
||||
StartTs: startTs,
|
||||
})
|
||||
// 参与赛季通行证活动
|
||||
if longItem == nil || longItem.ItemNum == 0 {
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitJoin{
|
||||
Platform: p.Platform,
|
||||
StartTs: PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs,
|
||||
SnId: p.SnId,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
if v == common.ItemIDLong {
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
|
||||
"go.etcd.io/etcd/client/v3"
|
||||
"mongo.games.com/goserver/core/basic"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
"mongo.games.com/goserver/core/task"
|
||||
|
||||
"mongo.games.com/game/common"
|
||||
|
@ -17,7 +18,6 @@ import (
|
|||
loginproto "mongo.games.com/game/protocol/login"
|
||||
playerproto "mongo.games.com/game/protocol/player"
|
||||
"mongo.games.com/game/protocol/webapi"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -308,6 +308,11 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
|
|||
if err != nil {
|
||||
logger.Logger.Errorf("permit startts update error:%v", err)
|
||||
}
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{
|
||||
Platform: config.Platform,
|
||||
StartTs: common.GetDayStartTs(1719646575),
|
||||
EndTs: common.GetDayStartTs(1719646575) + int64(actConfig.GetDays()*24*3600),
|
||||
})
|
||||
}
|
||||
return nil
|
||||
}), nil).StartByExecutor("permit_start_ts")
|
||||
|
@ -352,7 +357,15 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
|
|||
}
|
||||
}
|
||||
return nil
|
||||
}), nil).StartByExecutor("permit_start_ts")
|
||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||
if st.StartTs > 0 {
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{
|
||||
Platform: config.Platform,
|
||||
StartTs: st.StartTs,
|
||||
EndTs: st.EndTs,
|
||||
})
|
||||
}
|
||||
})).StartByExecutor("permit_start_ts")
|
||||
|
||||
default:
|
||||
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)
|
||||
|
|
|
@ -61,4 +61,8 @@ func init() {
|
|||
LogChannelSingleton.RegisterLogCName(model.EvtInvite, &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{})
|
||||
}
|
||||
|
|
|
@ -95,14 +95,27 @@ func (r *PermitMgr) OnDayTimer() {
|
|||
for r := rankInfo.GetStart(); r <= rankInfo.GetEnd(); r++ {
|
||||
if rank == int(r) {
|
||||
has = true
|
||||
var awards []model.AwardItem
|
||||
for _, item := range rankInfo.GetItemId() {
|
||||
items = append(items, item.GetItemId())
|
||||
items = append(items, int32(item.GetItemNum()))
|
||||
awards = append(awards, model.AwardItem{
|
||||
Id: item.GetItemId(),
|
||||
Num: item.GetItemNum(),
|
||||
})
|
||||
}
|
||||
if len(items) == 0 {
|
||||
break
|
||||
}
|
||||
logger.Logger.Infof("PermitMgr rank award snid:%v rank:%v", player.SnId, rank)
|
||||
// 领奖记录
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitRank{
|
||||
Platform: platform,
|
||||
StartTs: startTs,
|
||||
SnId: curPlayer.SnId,
|
||||
Rank: int32(rank),
|
||||
Awards: awards,
|
||||
})
|
||||
// 发邮件
|
||||
var newMsg *model.Message
|
||||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
|
@ -149,7 +162,15 @@ func (r *PermitMgr) OnDayTimer() {
|
|||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
model.UptStrKVGameData(common.PermitStartTsKey+platform, string(b))
|
||||
return nil
|
||||
}), nil).StartByExecutor("permit_start_ts")
|
||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||
if se.StartTs > 0 {
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitCycle{
|
||||
Platform: platform,
|
||||
StartTs: se.StartTs,
|
||||
EndTs: se.EndTs,
|
||||
})
|
||||
}
|
||||
})).StartByExecutor("permit_start_ts")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,7 +60,6 @@ const (
|
|||
UpdateField_RankScore
|
||||
UpdateField_PhoneScore
|
||||
UpdateField_InviteScore
|
||||
UpdateField_Long
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -2563,14 +2562,6 @@ func (this *Player) SendDiffData() {
|
|||
if len(pack.RankScore) == 0 {
|
||||
pack.RankScore = nil
|
||||
}
|
||||
// 龙币
|
||||
itemLong := BagMgrSingleton.GetItem(this.SnId, common.ItemIDLong)
|
||||
if itemLong != nil && this.diffData.Long != itemLong.ItemNum {
|
||||
dirty = true
|
||||
pack.Long = proto.Int64(itemLong.ItemNum)
|
||||
this.diffData.Long = itemLong.ItemNum
|
||||
pack.UpdateField += UpdateField_Long
|
||||
}
|
||||
|
||||
if dirty {
|
||||
FriendMgrSington.UpdateInfo(this.Platform, this.SnId)
|
||||
|
@ -3012,10 +3003,6 @@ func (this *Player) SendPlayerInfo() {
|
|||
if item := BagMgrSingleton.GetItem(this.SnId, VCard); item != nil {
|
||||
scPlayerData.Data.VCoin = item.ItemNum //V卡
|
||||
}
|
||||
// 龙币
|
||||
if item := BagMgrSingleton.GetItem(this.SnId, common.ItemIDLong); item != nil {
|
||||
scPlayerData.Data.Long = item.ItemNum
|
||||
}
|
||||
// 排位积分
|
||||
scPlayerData.Data.RankScore = RankMgrSingleton.GetPlayerRankScore(this.SnId)
|
||||
|
||||
|
@ -3935,6 +3922,11 @@ func (this *Player) GetPayGoodsInfo() {
|
|||
}
|
||||
if info.PageId == ShopPagePermit {
|
||||
this.Permit = info.CreateTs.Local()
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitJoin{
|
||||
Platform: this.Platform,
|
||||
StartTs: PlatformMgrSingleton.GetConfig(this.Platform).PermitStartTs,
|
||||
SnId: this.SnId,
|
||||
})
|
||||
}
|
||||
switch info.Remark {
|
||||
case "BlindBox":
|
||||
|
|
|
@ -4126,6 +4126,11 @@ func init() {
|
|||
}
|
||||
if info.PageId == ShopPagePermit {
|
||||
player.Permit = info.CreateTs.Local()
|
||||
LogChannelSingleton.WriteLog(&model.BackendPermitJoin{
|
||||
Platform: player.Platform,
|
||||
StartTs: PlatformMgrSingleton.GetConfig(player.Platform).PermitStartTs,
|
||||
SnId: player.SnId,
|
||||
})
|
||||
}
|
||||
switch info.Remark {
|
||||
case "BlindBox":
|
||||
|
|
Loading…
Reference in New Issue