赛季通行证排行榜奖励发放

This commit is contained in:
sk 2024-07-02 20:30:35 +08:00
parent aaf15d2b3d
commit 83cfbe6381
3 changed files with 127 additions and 125 deletions

View File

@ -698,13 +698,12 @@ func CSPermitAward(s *netlib.Session, packetid int, data interface{}, sid int64)
} }
startTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs startTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs
endTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitEndTs endTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitEndTs
if startTs == 0 || endTs == 0 { now := time.Now()
if startTs == 0 || endTs == 0 || now.Unix() < startTs || now.Unix() >= endTs {
logger.Logger.Errorf("CSPermitAward not startTs %v", p.SnId) logger.Logger.Errorf("CSPermitAward not startTs %v", p.SnId)
return nil return nil
} }
now := time.Now()
pack := &welfare.SCPermitAward{ pack := &welfare.SCPermitAward{
OpRetCode: welfare.OpResultCode_OPRC_Sucess, OpRetCode: welfare.OpResultCode_OPRC_Sucess,
Tp: msg.GetTp(), Tp: msg.GetTp(),
@ -978,13 +977,12 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
} }
startTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs startTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs
endTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitEndTs endTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitEndTs
if startTs == 0 || endTs == 0 { now := time.Now()
if startTs == 0 || endTs == 0 || now.Unix() < startTs || now.Unix() >= endTs {
logger.Logger.Errorf("CSPermitExchange not startTs %v", p.SnId) logger.Logger.Errorf("CSPermitExchange not startTs %v", p.SnId)
return nil return nil
} }
now := time.Now()
isExchange, code := GetPermitCanExchange(p, msg.GetId()) isExchange, code := GetPermitCanExchange(p, msg.GetId())
pack := &welfare.SCPermitExchange{ pack := &welfare.SCPermitExchange{
OpRetCode: welfare.OpResultCode_OPRC_Sucess, OpRetCode: welfare.OpResultCode_OPRC_Sucess,

View File

@ -207,50 +207,6 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
case *webapi.ActInviteConfig: case *webapi.ActInviteConfig:
PlatformMgrSingleton.GetConfig(config.Platform).ActInviteConfig = config PlatformMgrSingleton.GetConfig(config.Platform).ActInviteConfig = config
case *webapi.ActPermitConfig: case *webapi.ActPermitConfig:
break
PlatformMgrSingleton.GetConfig(config.Platform).ActPermitConfig = config
st := new(model.PermitStartTs)
permit := model.GetStrKVGameData(common.PermitStartTsKey + config.Platform)
if permit != "" {
if err := json.Unmarshal([]byte(permit), st); err != nil {
logger.Logger.Errorf("permit startts error: %v", err)
return
}
// 修改循环周期
endTs := st.StartTs + int64(config.GetDays()*24*3600)
if st.StartTs > 0 && endTs != st.EndTs {
st.EndTs = endTs
}
PlatformMgrSingleton.GetConfig(config.Platform).PermitStartTs = st.StartTs
PlatformMgrSingleton.GetConfig(config.Platform).PermitEndTs = st.EndTs
} else {
startTs := common.GetDayStartTs(config.StartTs)
endTs := startTs + int64(config.Days*24*3600)
st.StartTs = startTs
st.EndTs = endTs
PlatformMgrSingleton.GetConfig(config.Platform).PermitStartTs = startTs
PlatformMgrSingleton.GetConfig(config.Platform).PermitEndTs = endTs
}
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
if st.StartTs <= 0 || st.EndTs <= 0 {
return nil
}
b, err := json.Marshal(st)
if err != nil {
logger.Logger.Errorf("permit startts save error: %v", err)
} else {
logger.Logger.Infof("update permit startts: %v %v", st.StartTs, st.EndTs)
err := model.UptStrKVGameData(common.PermitStartTsKey+config.Platform, string(b))
if err != nil {
logger.Logger.Errorf("permit startts update error:%v", err)
}
}
return nil
}), nil).StartByExecutor("permit_start_ts")
default:
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)
}
// test // test
actConfig := &webapi.ActPermitConfig{ actConfig := &webapi.ActPermitConfig{
Platform: "1", Platform: "1",
@ -357,6 +313,51 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e
}), nil).StartByExecutor("permit_start_ts") }), nil).StartByExecutor("permit_start_ts")
logger.Logger.Tracef("==> PermitConfig: %v ", actConfig) logger.Logger.Tracef("==> PermitConfig: %v ", actConfig)
// test // test
break
PlatformMgrSingleton.GetConfig(config.Platform).ActPermitConfig = config
st := new(model.PermitStartTs)
permit := model.GetStrKVGameData(common.PermitStartTsKey + config.Platform)
if permit != "" {
if err := json.Unmarshal([]byte(permit), st); err != nil {
logger.Logger.Errorf("permit startts error: %v", err)
return
}
// 修改循环周期
endTs := st.StartTs + int64(config.GetDays()*24*3600)
if st.StartTs > 0 && endTs != st.EndTs {
st.EndTs = endTs
}
PlatformMgrSingleton.GetConfig(config.Platform).PermitStartTs = st.StartTs
PlatformMgrSingleton.GetConfig(config.Platform).PermitEndTs = st.EndTs
} else {
startTs := common.GetDayStartTs(config.StartTs)
endTs := startTs + int64(config.Days*24*3600)
st.StartTs = startTs
st.EndTs = endTs
PlatformMgrSingleton.GetConfig(config.Platform).PermitStartTs = startTs
PlatformMgrSingleton.GetConfig(config.Platform).PermitEndTs = endTs
}
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
if st.StartTs <= 0 || st.EndTs <= 0 {
return nil
}
b, err := json.Marshal(st)
if err != nil {
logger.Logger.Errorf("permit startts save error: %v", err)
} else {
logger.Logger.Infof("update permit startts: %v %v", st.StartTs, st.EndTs)
err := model.UptStrKVGameData(common.PermitStartTsKey+config.Platform, string(b))
if err != nil {
logger.Logger.Errorf("permit startts update error:%v", err)
}
}
return nil
}), nil).StartByExecutor("permit_start_ts")
default:
logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey)
}
} }
func handlerEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) { func handlerEvent(ctx context.Context, completeKey string, isInit bool, event *clientv3.Event, data interface{}) {

View File

@ -27,11 +27,12 @@ func (r *PermitMgr) OnDayTimer() {
logger.Logger.Info("(this *PermitMgr) OnDayTimer") logger.Logger.Info("(this *PermitMgr) OnDayTimer")
now := time.Now() now := time.Now()
for _, v := range PlatformMgrSingleton.GetPlatforms() { for _, v := range PlatformMgrSingleton.GetPlatforms() {
pl := PlatformMgrSingleton.GetConfig(v.IdStr).ActPermitConfig platform := v.IdStr
pl := PlatformMgrSingleton.GetConfig(platform).ActPermitConfig
if pl == nil { if pl == nil {
continue continue
} }
b := model.GetStrKVGameData(common.PermitStartTsKey + v.IdStr) b := model.GetStrKVGameData(common.PermitStartTsKey + platform)
if b == "" { if b == "" {
logger.Logger.Errorf("(this *PermitMgr) OnDayTimer GetStrKVGameData not found") logger.Logger.Errorf("(this *PermitMgr) OnDayTimer GetStrKVGameData not found")
continue continue
@ -41,6 +42,7 @@ func (r *PermitMgr) OnDayTimer() {
logger.Logger.Errorf("(this *PermitMgr) OnDayTimer json.Unmarshal err:%v", err) logger.Logger.Errorf("(this *PermitMgr) OnDayTimer json.Unmarshal err:%v", err)
continue continue
} }
logger.Logger.Tracef("(this *PermitMgr) OnDayTimer se:%+v now:%v", *se, now)
if se.StartTs <= now.Unix() && now.Unix() < se.EndTs { if se.StartTs <= now.Unix() && now.Unix() < se.EndTs {
// 在活动内 // 在活动内
continue continue
@ -57,18 +59,18 @@ func (r *PermitMgr) OnDayTimer() {
var players []*model.PlayerBaseInfo var players []*model.PlayerBaseInfo
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
list, err = model.FindPlayerPermitList(&model.FindPlayerPermitListArgs{ list, err = model.FindPlayerPermitList(&model.FindPlayerPermitListArgs{
Platform: v.IdStr, Platform: platform,
StartTs: startTs, StartTs: startTs,
}) })
for _, vv := range list.List { for _, vv := range list.List {
player := PlayerMgrSington.GetPlayerBySnId(vv.SnId) player := PlayerMgrSington.GetPlayerBySnId(vv.SnId)
if player != nil { if player != nil {
players = append(players, &model.PlayerBaseInfo{ players = append(players, &model.PlayerBaseInfo{
SnId: 0, SnId: player.SnId,
LastChannel: player.LastChannel, LastChannel: player.LastChannel,
}) })
} else { } else {
baseInfo := model.GetPlayerBaseInfo(v.IdStr, vv.SnId) baseInfo := model.GetPlayerBaseInfo(platform, vv.SnId)
players = append(players, baseInfo) players = append(players, baseInfo)
} }
} }
@ -83,8 +85,9 @@ func (r *PermitMgr) OnDayTimer() {
logger.Logger.Errorf("PermitMgr OnDayTimer FindPlayerPermitList player is nil %v", list.List[k].SnId) logger.Logger.Errorf("PermitMgr OnDayTimer FindPlayerPermitList player is nil %v", list.List[k].SnId)
continue continue
} }
curPlayer := player
// 发送奖励 // 发送奖励
cfg := PlatformMgrSingleton.GetPermitConfig(v.IdStr, player.LastChannel).GetRankConfig() cfg := PlatformMgrSingleton.GetPermitConfig(platform, player.LastChannel).GetRankConfig()
rank := k + 1 rank := k + 1
for _, rankInfo := range cfg { for _, rankInfo := range cfg {
var has bool var has bool
@ -105,16 +108,16 @@ func (r *PermitMgr) OnDayTimer() {
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
title := i18n.Tr("languages", "PermitAwardTitle") title := i18n.Tr("languages", "PermitAwardTitle")
content := i18n.Tr("languages", "PermitAward", []int{rank, rank, rank, rank}) content := i18n.Tr("languages", "PermitAward", []int{rank, rank, rank, rank})
newMsg = model.NewMessage("", 0, "", player.SnId, model.MSGTYPE_RANK_REWARD, newMsg = model.NewMessage("", 0, "", curPlayer.SnId, model.MSGTYPE_RANK_REWARD,
title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, v.IdStr, model.HallTienlen, nil) title, content, 0, 0, model.MSGSTATE_UNREAD, time.Now().Unix(), 0, "", items, platform, model.HallTienlen, nil)
err := model.InsertMessage(v.IdStr, newMsg) err := model.InsertMessage(platform, newMsg)
if err != nil { if err != nil {
logger.Logger.Errorf("发送邮件失败 snid:%v err:%v", player.SnId, err) logger.Logger.Errorf("发送邮件失败 snid:%v err:%v", curPlayer.SnId, err)
return err return err
} }
return nil return nil
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
p := PlayerMgrSington.GetPlayerBySnId(player.SnId) p := PlayerMgrSington.GetPlayerBySnId(curPlayer.SnId)
if p != nil { if p != nil {
p.AddMessage(newMsg) p.AddMessage(newMsg)
} }
@ -136,15 +139,15 @@ func (r *PermitMgr) OnDayTimer() {
se.StartTs = common.GetDayStartTs(now.Unix()) se.StartTs = common.GetDayStartTs(now.Unix())
se.EndTs = se.StartTs + int64(pl.Days*24*3600) se.EndTs = se.StartTs + int64(pl.Days*24*3600)
} }
PlatformMgrSingleton.GetConfig(v.IdStr).PermitStartTs = se.StartTs PlatformMgrSingleton.GetConfig(platform).PermitStartTs = se.StartTs
PlatformMgrSingleton.GetConfig(v.IdStr).PermitEndTs = se.EndTs PlatformMgrSingleton.GetConfig(platform).PermitEndTs = se.EndTs
b, err := json.Marshal(se) b, err := json.Marshal(se)
if err != nil { if err != nil {
logger.Logger.Errorf("(this *PermitMgr) OnDayTimer json.Marshal err:%v", err) logger.Logger.Errorf("(this *PermitMgr) OnDayTimer json.Marshal err:%v", err)
continue continue
} }
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
model.UptStrKVGameData(common.PermitStartTsKey+v.IdStr, string(b)) model.UptStrKVGameData(common.PermitStartTsKey+platform, string(b))
return nil return nil
}), nil).StartByExecutor("permit_start_ts") }), nil).StartByExecutor("permit_start_ts")
} }