diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index 8a642d9..a89e39f 100644 Binary files a/data/DB_PropExchange.dat and b/data/DB_PropExchange.dat differ diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 1271acc..a8e54c0 100644 Binary files a/data/DB_Task.dat and b/data/DB_Task.dat differ diff --git a/dbproxy/svc/u_gamedata.go b/dbproxy/svc/u_gamedata.go index c3fe78e..7d5e286 100644 --- a/dbproxy/svc/u_gamedata.go +++ b/dbproxy/svc/u_gamedata.go @@ -53,6 +53,16 @@ func (svc *GameKVDataSvc) UptGameKVData(args *model.GameKVData, ret *bool) error return nil } +func (svc *GameKVDataSvc) GetGameKVData(args *model.GameKVData, ret *model.GameKVData) error { + c := GameKVDatasCollection() + if c != nil { + err := c.Find(bson.M{"key": args.Key}).One(ret) + logger.Logger.Tracef("GetGameKVData: %#v %v", ret, err) + return err + } + return nil +} + var _GameKVDataSvc = &GameKVDataSvc{} func init() { diff --git a/model/gamedata.go b/model/gamedata.go index 020f8e7..09d626b 100644 --- a/model/gamedata.go +++ b/model/gamedata.go @@ -63,6 +63,23 @@ func GetStrKVGameData(key string) string { return "" } +func GetStrKVGameDataDB(key string) (string, error) { + if rpcCli == nil { + logger.Logger.Error("model.GetStrKVGameDataDB rpcCli == nil") + return "", ErrRPClientNoConn + } + req := &GameKVData{ + Key: key, + } + ret := &GameKVData{} + err := rpcCli.CallWithTimeout("GameKVDataSvc.GetGameKVData", req, ret, time.Second*30) + if err != nil { + logger.Logger.Error("model.GetStrKVGameDataDB err:", err, key) + return "", err + } + return ret.StrVal, err +} + func GetFloatKVGameData(key string) float64 { if val, exist := gameKVDatas.Load(key); exist { if data, ok := val.(*GameKVData); ok { diff --git a/ranksrv/rank/rankpermit.go b/ranksrv/rank/rankpermit.go index 121e4a7..aa4db47 100644 --- a/ranksrv/rank/rankpermit.go +++ b/ranksrv/rank/rankpermit.go @@ -16,7 +16,10 @@ var RankPermitMgrInstance = com.NewListMgr[*model.PermitScore]( func(platform string, index int32) ([]*model.PermitScore, error) { logger.Logger.Tracef("load rank permit platform:%s rankType:%d", platform, index) se := new(model.PermitStartTs) - b := model.GetStrKVGameData(common.PermitStartTsKey + platform) + b, err := model.GetStrKVGameDataDB(common.PermitStartTsKey + platform) + if err != nil { + return nil, err + } json.Unmarshal([]byte(b), se) seasonList, err := model.FindPlayerPermitList(&model.FindPlayerPermitListArgs{ Platform: platform, diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index 4490274..d1c267a 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -5,6 +5,7 @@ import ( "encoding/json" "strconv" "strings" + "time" "go.etcd.io/etcd/client/v3" "mongo.games.com/goserver/core/basic" @@ -230,30 +231,37 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e 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) + f := func() { + task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { + if st.StartTs <= 0 || st.EndTs <= 0 { + return nil } - } - return nil - }), 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") + 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 + }), 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") + } + if isInit { + time.AfterFunc(time.Second*5, f) //todo 优化 + } else { + f() + } default: logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) diff --git a/worldsrv/permitmgr.go b/worldsrv/permitmgr.go index ee6ebbb..e72db39 100644 --- a/worldsrv/permitmgr.go +++ b/worldsrv/permitmgr.go @@ -155,6 +155,9 @@ func (r *PermitMgr) OnDayTimer() { } PlatformMgrSingleton.GetConfig(platform).PermitStartTs = se.StartTs PlatformMgrSingleton.GetConfig(platform).PermitEndTs = se.EndTs + for _, v := range PlayerMgrSington.playerOfPlatform[platform] { + v.ResetPermit() + } b, err := json.Marshal(se) if err != nil { logger.Logger.Errorf("(this *PermitMgr) OnDayTimer json.Marshal err:%v", err) diff --git a/worldsrv/tournament.go b/worldsrv/tournament.go index 773633d..425a989 100644 --- a/worldsrv/tournament.go +++ b/worldsrv/tournament.go @@ -1548,8 +1548,10 @@ func (this *Tournament) MakeMatchLog(platform string, tmId int32, sortId int64) }) if rankId >= 1 && rankId <= 10 { TaskSubjectSingleton.Touch(common.TaskTypeMatchRank10, &TaskData{ - SnId: v.p.SnId, - Num: 1, + GameID: int(v.tm.dbGameFree.GetGameId()), + GameFreeID: v.tm.dbGameFree.GetId(), + SnId: v.p.SnId, + Num: 1, }) } }