From 4fb1ec47b975a4b5e32f667a0bce8c8fcb6db9b7 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 18 Apr 2024 15:01:43 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E5=8D=A1=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/base/etcd.go | 24 +++- gamesrv/base/scene.go | 2 +- model/config.go | 78 ++++++++++++ worldsrv/action_phonelottery.go | 4 +- worldsrv/action_player.go | 2 +- worldsrv/player.go | 13 +- worldsrv/welfmgr.go | 211 +++++++++++++------------------- 7 files changed, 198 insertions(+), 136 deletions(-) create mode 100644 model/config.go diff --git a/gamesrv/base/etcd.go b/gamesrv/base/etcd.go index a27f38a..45b2c46 100644 --- a/gamesrv/base/etcd.go +++ b/gamesrv/base/etcd.go @@ -3,20 +3,36 @@ package base import ( "go.etcd.io/etcd/client/v3" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/game/etcd" + "mongo.games.com/game/model" "mongo.games.com/game/protocol/webapi" ) +var ConfigMgrInst = model.NewConfigMgr() + func init() { // 个人水池 - etcd.Register(etcd.ETCDKEY_PLAYERPOOL, webapi.PlayerPool{}, PlatformConfigEtcd) + etcd.Register(etcd.ETCDKEY_PLAYERPOOL, webapi.PlayerPool{}, platformConfigEtcd) // 游戏配置 - etcd.Register(etcd.ETCDKEY_GAME_CONFIG, webapi.GameConfig{}, PlatformConfigEtcd) + etcd.Register(etcd.ETCDKEY_GAME_CONFIG, webapi.GameConfig{}, platformConfigEtcd) + // 集卡活动 + etcd.Register(etcd.ETCDKEY_ACT_Collect, webapi.WelfareCollectConfig{}, platformConfigEtcd) } -func PlatformConfigEtcd(completeKey string, isInit bool, event *clientv3.Event, data interface{}) { +func platformConfigEtcd(completeKey string, isInit bool, event *clientv3.Event, data interface{}) { if event.Type == clientv3.EventTypeDelete { return } - PlatformConfigSingleton.Update(data) + switch d := data.(type) { + case *webapi.PlayerPool: + ConfigMgrInst.GetAllConfig(d.Platform).PlayerPool = d + case *webapi.GameConfig: + ConfigMgrInst.GetAllConfig(d.Platform).GameConfig = d + case *webapi.WelfareCollectConfig: + ConfigMgrInst.GetAllConfig(d.Platform).WelfareCollectConfig = d + default: + logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) + } } diff --git a/gamesrv/base/scene.go b/gamesrv/base/scene.go index f43f9ca..2b74d40 100644 --- a/gamesrv/base/scene.go +++ b/gamesrv/base/scene.go @@ -2376,7 +2376,7 @@ func (this *Scene) TryBillExGameDrop(p *Player) { // DropCollectBox 掉落集卡礼盒 func (this *Scene) DropCollectBox(p *Player) { - if p == nil || p.IsRob { + if p == nil || p.IsRob || ConfigMgrInst.GetAllConfig(p.Platform).WelfareCollectConfig.Switch != model.WelfareOpen { return } diff --git a/model/config.go b/model/config.go new file mode 100644 index 0000000..9a7b346 --- /dev/null +++ b/model/config.go @@ -0,0 +1,78 @@ +package model + +import webapiproto "mongo.games.com/game/protocol/webapi" + +/* + 通用模型定义在这里,如果需要自定义可以内嵌在新结构体中 +*/ + +const ( + OpAll = 0 + OpTurnplate = 1 + OpBlindBox = 2 + OpFirstPay = 3 + OpContinuousPay = 4 + OpPhoneLottery = 5 + OpCollect = 6 +) + +const ( + WelfareNil = 0 // 不处理 + WelfareOpen = 1 // 开启 + WelfareClose = 2 // 关闭 +) + +func NewConfigMgr() *ConfigMgr { + return &ConfigMgr{ + Platform: make(map[string]*AllConfig), + Global: new(GlobalConfig), + } +} + +type AllConfig struct { + // 七日签到 + *webapiproto.Welfare7SignDateList + // 转盘 + *webapiproto.WelfareTurnplateDateList + // 盲盒 + *webapiproto.WelfareBlindBoxDataList + BlindBoxCycle int32 + // 首充 + *webapiproto.WelfareFirstPayDataList + FirstPayCycle int32 + // 连续充值 + *webapiproto.WelfareContinuousPayDataList + ContinuousPayCycle int32 + // 积分换手机 + *webapiproto.WelfarePhoneLotteryStatus + // 集卡活动 + *webapiproto.WelfareCollectConfig + // 个人水池 + *webapiproto.PlayerPool + // 游戏调控全局配置 + *webapiproto.GameConfig +} + +type GlobalConfig struct { +} + +type ConfigMgr struct { + Platform map[string]*AllConfig + Global *GlobalConfig +} + +func (cm *ConfigMgr) GetAllConfig(platform string) *AllConfig { + c, ok := cm.Platform[platform] + if !ok { + c = &AllConfig{} + cm.Platform[platform] = c + } + return c +} + +func (cm *ConfigMgr) GetGlobalConfig() *GlobalConfig { + if cm.Global == nil { + cm.Global = new(GlobalConfig) + } + return cm.Global +} diff --git a/worldsrv/action_phonelottery.go b/worldsrv/action_phonelottery.go index bfeba67..6bdd7d5 100644 --- a/worldsrv/action_phonelottery.go +++ b/worldsrv/action_phonelottery.go @@ -32,7 +32,7 @@ func (this *CSPhoneLotteryInfoHandler) Process(s *netlib.Session, packetid int, logger.Logger.Warn("CSPhoneLotteryInfo p == nil") return nil } - if WelfareMgrSington.GetPhoneLotteryStatus(p.Platform) == WelfareClose { + if WelfareMgrSington.GetPhoneLotteryStatus(p.Platform) == model.WelfareClose { return nil } pack := &player_proto.SCPhoneLotteryInfo{} @@ -80,7 +80,7 @@ func (this *CSPhoneLotteryHandler) Process(s *netlib.Session, packetid int, data logger.Logger.Warn("CSPhoneLottery p == nil") return nil } - if WelfareMgrSington.GetPhoneLotteryStatus(p.Platform) == WelfareClose { + if WelfareMgrSington.GetPhoneLotteryStatus(p.Platform) == model.WelfareClose { return nil } countType := msg.GetLotteryType() diff --git a/worldsrv/action_player.go b/worldsrv/action_player.go index d322d49..8d76c8e 100644 --- a/worldsrv/action_player.go +++ b/worldsrv/action_player.go @@ -2341,7 +2341,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64) player.SendRawToClientIncOffLine(sid, s, int(gamehall_proto.GameHallPacketID_PACKET_SC_THRIDGAMEBALANCEUPDATESTATE), statePack) //抽奖次数兼容老玩家 - if !player.IsRob && !player.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(player.Platform) == WelfareOpen { + if !player.IsRob && !player.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(player.Platform) == model.WelfareOpen { player.addLotteryCount(20) player.InitLotteryStatus = true player.dirty = true diff --git a/worldsrv/player.go b/worldsrv/player.go index 6193f94..90e326a 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -346,7 +346,7 @@ func (this *Player) OnLogined() { this.ReportLoginEvent() //抽奖次数兼容老玩家 - if !this.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == WelfareOpen { + if !this.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == model.WelfareOpen { this.addLotteryCount(20) this.InitLotteryStatus = true this.dirty = true @@ -4388,7 +4388,7 @@ func (this *Player) UpdateShopID(shopId int32) { // 增加抽奖次数 func (this *Player) addLotteryCount(count int32) { - if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == WelfareClose { + if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == model.WelfareClose { return } this.LotteryCount += count @@ -4411,7 +4411,7 @@ func (this *Player) AddPhoneScore(num, add int64, gainWay int32, oper, remark st if num == 0 { return } - if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == WelfareClose { + if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == model.WelfareClose { return } logger.Logger.Tracef("snid(%v) AddPhoneScore(%v)", this.SnId, num) @@ -4435,7 +4435,7 @@ func (this *Player) AddPhoneScore(num, add int64, gainWay int32, oper, remark st // 抽奖任务 func (this *Player) PhoneLotteryTask(taskId int32, num int64) { - if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == WelfareClose { + if WelfareMgrSington.GetPhoneLotteryStatus(this.Platform) == model.WelfareClose { if this.WelfData != nil && this.WelfData.PhoneLotteryTask != nil { this.WelfData.PhoneLotteryTask = make(map[int32]*model.TaskData) } @@ -4610,6 +4610,11 @@ func (this *Player) ResetTask(tp int32) { } func (this *Player) CollectTask(taskId int32, num int64) { + state := WelfareMgrSington.GetCollectSwitch(this.Platform) + if state != model.WelfareOpen { + return + } + // 每日登录游戏赠送一个 // 每日转盘抽奖赠送一个 switch taskId { diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index 3f97c87..0c1b6ea 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -17,46 +17,17 @@ import ( "mongo.games.com/game/srvdata" ) -const ( - OpAll = 0 - OpTurnplate = 1 - OpBlindBox = 2 - OpFirstPay = 3 - OpContinuousPay = 4 - OpPhoneLottery = 5 - OpCollect = 6 -) - -const ( - WelfareNil = 0 // 不处理 - WelfareOpen = 1 // 开启 - WelfareClose = 2 // 关闭 -) - const ( GameSubsidyid = 1 //救济金id ) var WelfareMgrSington = &WelfareMgr{ - Activity: make(map[string]*ActivityInfos), -} - -type ActivityInfos struct { - *webapi_proto.Welfare7SignDateList - *webapi_proto.WelfareTurnplateDateList - *webapi_proto.WelfareBlindBoxDataList - *webapi_proto.WelfareFirstPayDataList - *webapi_proto.WelfareContinuousPayDataList - *webapi_proto.WelfarePhoneLotteryStatus - *webapi_proto.WelfareCollectConfig - BlindBoxCycle int32 - FirstPayCycle int32 - ContinuousPayCycle int32 + ConfigMgr: model.NewConfigMgr(), } type WelfareMgr struct { BaseClockSinker - Activity map[string]*ActivityInfos + *model.ConfigMgr } func (this *WelfareMgr) Init() { @@ -72,15 +43,6 @@ func (this *WelfareMgr) ModuleName() string { return "WelfareMgr" } -func (this *WelfareMgr) getConfig(plt string) *ActivityInfos { - info, ok := this.Activity[plt] - if !ok { - info = new(ActivityInfos) - this.Activity[plt] = info - } - return info -} - // SetWelfData 设置救济金领取次数 func (this *WelfareMgr) SetWelfData(p *Player, n int32) { if n > 0 { @@ -158,16 +120,17 @@ func (this *WelfareMgr) GetReliefFund(p *Player, isVideo bool) { func (this *WelfareMgr) UpdateSign7(cfg *webapi_proto.Welfare7SignDateList) { if model.GameParamData.TestActSwitch { - cfg.Switch = WelfareOpen + cfg.Switch = model.WelfareOpen } - this.getConfig(cfg.Platform).Welfare7SignDateList = cfg + this.GetAllConfig(cfg.Platform).Welfare7SignDateList = cfg } + func (this *WelfareMgr) UpdateTurnplate(cfg *webapi_proto.WelfareTurnplateDateList) { if model.GameParamData.TestActSwitch { - cfg.Switch = WelfareOpen + cfg.Switch = model.WelfareOpen } s := int32(0) - info := this.getConfig(cfg.Platform) + info := this.GetAllConfig(cfg.Platform) if info.WelfareTurnplateDateList != nil { s = info.WelfareTurnplateDateList.Switch } @@ -175,113 +138,113 @@ func (this *WelfareMgr) UpdateTurnplate(cfg *webapi_proto.WelfareTurnplateDateLi // 打开关闭要广播给客户端 if s != 0 && s != cfg.Switch { - this.WelfareSwitch(nil, cfg.Platform, OpTurnplate) + this.WelfareSwitch(nil, cfg.Platform, model.OpTurnplate) } } func (this *WelfareMgr) UpdateBlindBox(cfg *webapi_proto.WelfareBlindBoxDataList) { if model.GameParamData.TestActSwitch { - cfg.Switch = WelfareOpen + cfg.Switch = model.WelfareOpen } s := int32(0) - info := this.getConfig(cfg.Platform) + info := this.GetAllConfig(cfg.Platform) if info.WelfareBlindBoxDataList != nil { s = info.WelfareBlindBoxDataList.Switch } info.WelfareBlindBoxDataList = cfg - if cfg.Cycle == WelfareOpen { + if cfg.Cycle == model.WelfareOpen { info.BlindBoxCycle = 1 } // 打开关闭要广播给客户端 if s != 0 && s != cfg.Switch { - this.WelfareSwitch(nil, cfg.Platform, OpBlindBox) + this.WelfareSwitch(nil, cfg.Platform, model.OpBlindBox) } } func (this *WelfareMgr) UpdateFirstPay(cfg *webapi_proto.WelfareFirstPayDataList) { if model.GameParamData.TestActSwitch { - cfg.Switch = WelfareOpen + cfg.Switch = model.WelfareOpen } s := int32(0) - info := this.getConfig(cfg.Platform) + info := this.GetAllConfig(cfg.Platform) if info.WelfareFirstPayDataList != nil { s = info.WelfareFirstPayDataList.Switch } info.WelfareFirstPayDataList = cfg - if cfg.Cycle == WelfareOpen { + if cfg.Cycle == model.WelfareOpen { info.FirstPayCycle = 1 } // 打开关闭要广播给客户端 if s != 0 && s != cfg.Switch { - this.WelfareSwitch(nil, cfg.Platform, OpFirstPay) + this.WelfareSwitch(nil, cfg.Platform, model.OpFirstPay) } } func (this *WelfareMgr) UpdateContinuousPay(cfg *webapi_proto.WelfareContinuousPayDataList) { if model.GameParamData.TestActSwitch { - cfg.Switch = WelfareOpen + cfg.Switch = model.WelfareOpen } s := int32(0) - info := this.getConfig(cfg.Platform) + info := this.GetAllConfig(cfg.Platform) if info.WelfareContinuousPayDataList != nil { s = info.WelfareContinuousPayDataList.Switch } info.WelfareContinuousPayDataList = cfg - if cfg.Cycle == WelfareOpen { + if cfg.Cycle == model.WelfareOpen { info.ContinuousPayCycle = 1 } // 打开关闭要广播给客户端 if s != 0 && s != cfg.Switch { - this.WelfareSwitch(nil, cfg.Platform, OpContinuousPay) + this.WelfareSwitch(nil, cfg.Platform, model.OpContinuousPay) } } func (this *WelfareMgr) UpdatePhoneLotteryStatus(cfg *webapi_proto.WelfarePhoneLotteryStatus) { if model.GameParamData.TestActSwitch { - cfg.Switch = WelfareOpen + cfg.Switch = model.WelfareOpen } s := int32(0) - info := this.getConfig(cfg.Platform) + info := this.GetAllConfig(cfg.Platform) if info.WelfarePhoneLotteryStatus != nil { s = info.WelfarePhoneLotteryStatus.Switch } info.WelfarePhoneLotteryStatus = cfg // 打开关闭要广播给客户端 if s != 0 && s != cfg.Switch { - this.WelfareSwitch(nil, cfg.Platform, OpPhoneLottery) + this.WelfareSwitch(nil, cfg.Platform, model.OpPhoneLottery) } } func (this *WelfareMgr) GetPhoneLotteryStatus(platform string) int32 { - info := this.getConfig(platform) + info := this.GetAllConfig(platform) if info.WelfarePhoneLotteryStatus != nil { return info.WelfarePhoneLotteryStatus.Switch } - return WelfareClose + return model.WelfareClose } func (this *WelfareMgr) UpdateCollectConfig(cfg *webapi_proto.WelfareCollectConfig) { if model.GameParamData.TestActSwitch { - cfg.Switch = WelfareOpen + cfg.Switch = model.WelfareOpen } s := int32(0) - info := this.getConfig(cfg.Platform) + info := this.GetAllConfig(cfg.Platform) if info.WelfareCollectConfig != nil { s = info.WelfareCollectConfig.Switch } info.WelfareCollectConfig = cfg // 打开关闭要广播给客户端 if s != 0 && s != cfg.Switch { - this.WelfareSwitch(nil, cfg.Platform, OpCollect) + this.WelfareSwitch(nil, cfg.Platform, model.OpCollect) } } func (this *WelfareMgr) GetCollectSwitch(platform string) int32 { - info := this.getConfig(platform) + info := this.GetAllConfig(platform) if info.WelfareCollectConfig != nil { return info.WelfareCollectConfig.Switch } - return WelfareClose + return model.WelfareClose } func (this *WelfareMgr) OnDayChanged(player *Player) error { @@ -290,9 +253,9 @@ func (this *WelfareMgr) OnDayChanged(player *Player) error { } player.WelfData.ReliefFundTimes = 0 - blindBox := this.getConfig(player.Platform).WelfareBlindBoxDataList + blindBox := this.GetAllConfig(player.Platform).WelfareBlindBoxDataList if blindBox != nil { // 关闭循环重置为-1 - if blindBox.Cycle == WelfareClose && player.WelfData.BlindBoxId != 0 { + if blindBox.Cycle == model.WelfareClose && player.WelfData.BlindBoxId != 0 { player.WelfData.BlindBoxId = -1 } else { // 循环 player.WelfData.BlindBoxId = 0 @@ -330,11 +293,11 @@ func (this *WelfareMgr) GetTurnplate(p *Player) { pack := &welfare.SCGetTurnplate{ OpRetCode: welfare.OpResultCode_OPRC_Error, } - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) turnplate := info.WelfareTurnplateDateList sign7 := info.Welfare7SignDateList if turnplate != nil && sign7 != nil { - if turnplate.Switch != WelfareOpen { + if turnplate.Switch != model.WelfareOpen { logger.Logger.Tracef("GetTurnplate Switch err p.SnId = %v %v", p.SnId, turnplate.Switch) p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_GETTURNPLATE), pack) return @@ -436,7 +399,7 @@ func (this *WelfareMgr) GetTurnplteVideo(p *Player) { p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_GETTURNPLATE), pack) } - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) turn := info.WelfareTurnplateDateList // 转盘 sign7 := info.Welfare7SignDateList // 签到 if turn == nil || sign7 == nil { @@ -444,7 +407,7 @@ func (this *WelfareMgr) GetTurnplteVideo(p *Player) { return } - if turn.Switch != WelfareOpen { + if turn.Switch != model.WelfareOpen { logger.Logger.Tracef("GetTurnplate Switch err p.SnId = %v %v", p.SnId, turn.Switch) p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_GETTURNPLATE), pack) return @@ -615,11 +578,11 @@ func (this *WelfareMgr) GetAddupSign(p *Player, addupday int32) { pack := &welfare.SCGetAddupSign{ OpRetCode: welfare.OpResultCode_OPRC_Error, } - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) turnplate := info.WelfareTurnplateDateList sign7 := info.Welfare7SignDateList if turnplate != nil && sign7 != nil { - if turnplate.Switch != WelfareOpen { + if turnplate.Switch != model.WelfareOpen { logger.Logger.Tracef("Get7Sign Switch err p.SnId = %v %v", p.SnId, turnplate.Switch) p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_GETADDUPSIGN), pack) return @@ -681,12 +644,12 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { pack := &welfare.SCWelfaredInfo{} diff := 0 ts := time.Now().Unix() - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) turnplate := info.WelfareTurnplateDateList sign7 := info.Welfare7SignDateList if turnplate != nil && sign7 != nil { pack.Switch = turnplate.Switch - if turnplate.Switch != WelfareClose { + if turnplate.Switch != model.WelfareClose { pack.DrawTurnplate = 2 signIndex := p.WelfData.Sign7.SignIndex % int32(len(turnplate.RateList)) @@ -757,90 +720,90 @@ func (this *WelfareMgr) WelfaredInfo(p *Player) { func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { pack := &player_proto.SCEasyWelfaredInfo{} // 0转盘1盲盒2首冲3连续充值 - info := this.getConfig(platform) + info := this.GetAllConfig(platform) // 转盘 turnplate := info.WelfareTurnplateDateList if turnplate != nil { - if op == OpAll || op == OpTurnplate { - if turnplate.Switch == WelfareOpen && p != nil && this.Welfareturnplate(p, 1) { // 没有关闭且所有奖励已经领取 - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) //关闭 + if op == model.OpAll || op == model.OpTurnplate { + if turnplate.Switch == model.WelfareOpen && p != nil && this.Welfareturnplate(p, 1) { // 没有关闭且所有奖励已经领取 + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) //关闭 } else { pack.WelfareSwitch = append(pack.WelfareSwitch, turnplate.Switch) } } else { // 不更新 - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareNil) + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareNil) } } else { - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) // 配置nil就是关闭 + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) // 配置nil就是关闭 } // 盲盒 blindBox := info.WelfareBlindBoxDataList if blindBox != nil { - if op == OpAll || op == OpBlindBox { - if blindBox.Switch == WelfareOpen && blindBox.Cycle == WelfareClose && p != nil && p.WelfData.BlindBoxId != 0 { // 没有关闭且所有奖励已经领取 - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) //关闭 + if op == model.OpAll || op == model.OpBlindBox { + if blindBox.Switch == model.WelfareOpen && blindBox.Cycle == model.WelfareClose && p != nil && p.WelfData.BlindBoxId != 0 { // 没有关闭且所有奖励已经领取 + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) //关闭 } else { pack.WelfareSwitch = append(pack.WelfareSwitch, blindBox.Switch) } } else { // 不更新 - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareNil) + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareNil) } } else { - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) // 配置nil就是关闭 + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) // 配置nil就是关闭 } // 首充 firstPay := info.WelfareFirstPayDataList if firstPay != nil { - if op == OpAll || op == OpFirstPay { + if op == model.OpAll || op == model.OpFirstPay { ln := len(firstPay.List) - max := firstPay.List[ln-1].Day // 正序 - if firstPay.Switch == WelfareOpen && firstPay.Cycle == WelfareClose && p != nil && p.WelfData.FirstPayDay >= max { // 没有关闭且所有奖励已经领取 - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) //关闭 + max := firstPay.List[ln-1].Day // 正序 + if firstPay.Switch == model.WelfareOpen && firstPay.Cycle == model.WelfareClose && p != nil && p.WelfData.FirstPayDay >= max { // 没有关闭且所有奖励已经领取 + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) //关闭 } else { pack.WelfareSwitch = append(pack.WelfareSwitch, firstPay.Switch) } } else { // 不更新 - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareNil) + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareNil) } } else { - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) // 配置nil就是关闭 + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) // 配置nil就是关闭 } // 连充 continuousPay := info.WelfareContinuousPayDataList if continuousPay != nil { - if op == OpAll || op == OpContinuousPay { + if op == model.OpAll || op == model.OpContinuousPay { ln := len(continuousPay.List) - max := continuousPay.List[ln-1].Day // 正序 - if continuousPay.Switch == WelfareOpen && continuousPay.Cycle == WelfareClose && p != nil && p.WelfData.ContinuousPayDay >= max { // 没有关闭且所有奖励已经领取 - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) //关闭 + max := continuousPay.List[ln-1].Day // 正序 + if continuousPay.Switch == model.WelfareOpen && continuousPay.Cycle == model.WelfareClose && p != nil && p.WelfData.ContinuousPayDay >= max { // 没有关闭且所有奖励已经领取 + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) //关闭 } else { pack.WelfareSwitch = append(pack.WelfareSwitch, continuousPay.Switch) } } else { // 不更新 - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareNil) + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareNil) } } else { - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) // 配置nil就是关闭 + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) // 配置nil就是关闭 } // 抽手机活动开关 phoneConfig := info.WelfarePhoneLotteryStatus if phoneConfig != nil { pack.WelfareSwitch = append(pack.WelfareSwitch, phoneConfig.Switch) //抽手机活动开关 } else { - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) } // 集卡活动 collectConfig := info.WelfareCollectConfig if collectConfig != nil { pack.WelfareSwitch = append(pack.WelfareSwitch, collectConfig.Switch) //集卡活动开关 } else { - pack.WelfareSwitch = append(pack.WelfareSwitch, WelfareClose) + pack.WelfareSwitch = append(pack.WelfareSwitch, model.WelfareClose) } if model.GameParamData.TestActSwitch { for k := range pack.WelfareSwitch { - pack.WelfareSwitch[k] = WelfareOpen + pack.WelfareSwitch[k] = model.WelfareOpen } } @@ -856,11 +819,11 @@ func (this *WelfareMgr) WelfareSwitch(p *Player, platform string, op int) { // Welfareturnplate 转盘红点 func (this *WelfareMgr) Welfareturnplate(p *Player, op int32) bool { // 0 红点提示 1全部领取 var isShow bool - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) turnplate := info.WelfareTurnplateDateList sign7 := info.Welfare7SignDateList if turnplate != nil && sign7 != nil { - if turnplate.Switch == WelfareClose { + if turnplate.Switch == model.WelfareClose { return true } diff := 0 @@ -910,7 +873,7 @@ func (this *WelfareMgr) WelfareShowRed(p *Player) { return } this.MonitorWelfData(p) // 登录检测 - this.WelfareSwitch(p, p.Platform, OpAll) + this.WelfareSwitch(p, p.Platform, model.OpAll) if !this.Welfareturnplate(p, 0) { p.SendShowRed(hall_proto.ShowRedCode_Welfare, 0, 1) // 0 轮盘红点 @@ -921,10 +884,10 @@ func (this *WelfareMgr) BlindBoxInfo(p *Player, bid int32) { pack := &welfare.SCBlindBoxInfo{ OpRetCode: welfare.OpResultCode_OPRC_Error, } - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) blindBox := info.WelfareBlindBoxDataList if blindBox != nil { - if blindBox.Switch != WelfareOpen { + if blindBox.Switch != model.WelfareOpen { logger.Logger.Tracef("BlindBoxInfo Switch err p.SnId = %v %v", p.SnId, blindBox.Switch) p.SendToClient(int(welfare.SPacketID_PACKET_SC_WELF_BLINBOXINFO), pack) return @@ -940,7 +903,7 @@ func (this *WelfareMgr) BlindBoxInfo(p *Player, bid int32) { pack.Draw = 1 cyc := info.BlindBoxCycle if p.WelfData.BlindBoxId == -1 { - if cyc == 1 || blindBox.Cycle == WelfareOpen { + if cyc == 1 || blindBox.Cycle == model.WelfareOpen { p.WelfData.BlindBoxId = 0 } } // == 1代表当日循环 @@ -997,13 +960,13 @@ func (this *WelfareMgr) BuyBlindBox(p *Player, buyid, ConfigPayId int32) { pack := &shop.SCPayInfo{ RetCode: shop.OpResultCode_OPRC_Error, } - blindBox := this.getConfig(p.Platform).WelfareBlindBoxDataList + blindBox := this.GetAllConfig(p.Platform).WelfareBlindBoxDataList if blindBox == nil { logger.Logger.Tracef("BuyBlindBox blindBox==nil snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack) return } - if blindBox.Switch != WelfareOpen { + if blindBox.Switch != model.WelfareOpen { logger.Logger.Tracef("BuyBlindBox Switch err p.SnId = %v %v", p.SnId, blindBox.Switch) p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack) return @@ -1099,11 +1062,11 @@ func (this *WelfareMgr) FirstPayInfo(p *Player) { pack := &welfare.SCWelfareFirstPayData{ OpRetCode: welfare.OpResultCode_OPRC_Error, } - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) firstPay := info.WelfareFirstPayDataList if firstPay != nil { pack.Switch = firstPay.Switch - if firstPay.Switch != WelfareClose { + if firstPay.Switch != model.WelfareClose { ln := len(firstPay.List) if ln == 0 { // 不能为空 logger.Logger.Tracef("FirstPayInfo firstPay.List err p.SnId = %v %v", p.SnId, ln) @@ -1125,7 +1088,7 @@ func (this *WelfareMgr) FirstPayInfo(p *Player) { cyc := info.FirstPayCycle if pack.Draw == 2 { // 当天未领取判断 if day >= max { - if firstPay.Cycle != WelfareOpen && cyc != 1 { // 全部领取完就发最后一天 + if firstPay.Cycle != model.WelfareOpen && cyc != 1 { // 全部领取完就发最后一天 day = max pack.Draw = 1 // 不循环 且今日无开启循环操作 领完不能再领取了 } else { @@ -1183,7 +1146,7 @@ func (this *WelfareMgr) BuyFirstPay(p *Player, ConfigPayId int32) { pack := &shop.SCPayInfo{ RetCode: shop.OpResultCode_OPRC_Error, } - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) firstPay := info.WelfareFirstPayDataList if firstPay == nil { logger.Logger.Errorf("BuyFirstPay firstPay == nil snid: %v pack: %v", p.SnId, pack) @@ -1212,7 +1175,7 @@ func (this *WelfareMgr) BuyFirstPay(p *Player, ConfigPayId int32) { if p.WelfData.FirstPayDay >= max { cyc := info.FirstPayCycle - if firstPay.Cycle != WelfareOpen && cyc != 1 { // 全部领取完 + if firstPay.Cycle != model.WelfareOpen && cyc != 1 { // 全部领取完 //pack.OpRetCode = welfare.OpResultCode_OPRC_NoTimes logger.Logger.Tracef("BuyFirstPay Cycle p.WelfData.FirstPayDay max p.SnId = %v %v", p.SnId, firstPay.Cycle, p.WelfData.FirstPayDay, max) p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack) @@ -1308,11 +1271,11 @@ func (this *WelfareMgr) ContinuousPayInfo(p *Player) { pack := &welfare.SCWelfareContinuousPayData{ OpRetCode: welfare.OpResultCode_OPRC_Error, } - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) continuousPay := info.WelfareContinuousPayDataList if continuousPay != nil { pack.Switch = continuousPay.Switch - if continuousPay.Switch != WelfareClose { + if continuousPay.Switch != model.WelfareClose { ln := len(continuousPay.List) if ln == 0 { // 不能为空 logger.Logger.Tracef("ContinuousPayInfo continuousPay.List err p.SnId = %v %v", p.SnId, ln) @@ -1328,7 +1291,7 @@ func (this *WelfareMgr) ContinuousPayInfo(p *Player) { dif := common.DiffDaybyTs(ts, p.WelfData.ContinuousPayTickets) if dif == 0 { // 当天已经领取 pack.Draw = 1 - } else if continuousPay.Break == WelfareOpen && dif > 1 && p.WelfData.ContinuousPayDay < max { // 开启中断 + } else if continuousPay.Break == model.WelfareOpen && dif > 1 && p.WelfData.ContinuousPayDay < max { // 开启中断 day = 0 //continuousPay.List[0].Day // 从头开始 } } @@ -1346,7 +1309,7 @@ func (this *WelfareMgr) ContinuousPayInfo(p *Player) { if i < ln { day = continuousPay.List[i].Day } else { - if continuousPay.Cycle != WelfareOpen && cyc != 1 { // 全部领取完就发最后一天 + if continuousPay.Cycle != model.WelfareOpen && cyc != 1 { // 全部领取完就发最后一天 day = max pack.Draw = 1 // 不循环 领完不能再领取了 } else { @@ -1392,7 +1355,7 @@ func (this *WelfareMgr) BuyContinuousPay(p *Player, ConfigPayId int32) { pack := &shop.SCPayInfo{ RetCode: shop.OpResultCode_OPRC_Error, } - info := this.getConfig(p.Platform) + info := this.GetAllConfig(p.Platform) continuousPay := info.WelfareContinuousPayDataList if continuousPay == nil { logger.Logger.Tracef("BuyContinuousPay continuousPay == nil snid: %v pack: %v", p.SnId, pack) @@ -1416,14 +1379,14 @@ func (this *WelfareMgr) BuyContinuousPay(p *Player, ConfigPayId int32) { //pack.OpRetCode = welfare.OpResultCode_OPRC_NoTimes p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack) return - } else if continuousPay.Break == WelfareOpen && dif > 1 && p.WelfData.ContinuousPayDay < max { // 开启中断 且没有领取到最后一天 + } else if continuousPay.Break == model.WelfareOpen && dif > 1 && p.WelfData.ContinuousPayDay < max { // 开启中断 且没有领取到最后一天 p.WelfData.ContinuousPayDay = 0 // 从第一天开始 } } if p.WelfData.ContinuousPayDay >= max { cyc := info.ContinuousPayCycle - if continuousPay.Cycle != WelfareOpen && cyc != 1 { // 全部领取完 + if continuousPay.Cycle != model.WelfareOpen && cyc != 1 { // 全部领取完 //pack.OpRetCode = welfare.OpResultCode_OPRC_NoTimes logger.Logger.Tracef("BuyContinuousPay Cycle p.WelfData.FirstPayDay max p.SnId = %v %v", p.SnId, continuousPay.Cycle, p.WelfData.ContinuousPayDay, max) p.SendToClient(int(shop.SPacketID_PACKET_SCPAYINFO), pack) @@ -1520,7 +1483,7 @@ func (this *WelfareMgr) Shutdown() { } func (this *WelfareMgr) OnDayTimer() { - for _, v := range this.Activity { + for _, v := range this.ConfigMgr.Platform { v.BlindBoxCycle = 0 v.FirstPayCycle = 0 v.ContinuousPayCycle = 0