feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。 保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。 验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。 包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using asap.core;
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using CodeStage.AntiCheat.ObscuredTypes;
|
||||
using game;
|
||||
@@ -73,6 +73,13 @@ namespace GameCore
|
||||
}
|
||||
public partial class PlayerShopData : IDisposable
|
||||
{
|
||||
game.PlayerDataStorage.IPlayerSaveStore boundSaveStore;
|
||||
[asap.core.Inject] public game.PlayerDataStorage.IPlayerSaveStore SaveStore
|
||||
{
|
||||
get => boundSaveStore;
|
||||
set { CouponData.BindSaveStore(value); boundSaveStore = value; }
|
||||
}
|
||||
|
||||
[Inject]
|
||||
public cfg.Tables _tables { get; set; }
|
||||
[Inject]
|
||||
@@ -250,7 +257,7 @@ namespace GameCore
|
||||
public void AddVoucher(int value)
|
||||
{
|
||||
Voucher = Voucher + value;
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("Voucher", Voucher.ToString());
|
||||
SaveStore.Write("Voucher", Voucher.ToString()).RequireAccepted();
|
||||
}
|
||||
public void Init()
|
||||
{
|
||||
@@ -369,10 +376,10 @@ namespace GameCore
|
||||
if (Voucher >= iAPItemList.CostToken)
|
||||
{
|
||||
Voucher = Voucher - iAPItemList.CostToken;
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("Voucher", Voucher.ToString());
|
||||
SaveStore.Write("Voucher", Voucher.ToString()).RequireAccepted();
|
||||
//二次弹窗
|
||||
//回调
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("LastPaymentTime", $"{ZZTimeHelper.UtcNow()}__{0}");
|
||||
SaveStore.Write("LastPaymentTime", $"{ZZTimeHelper.UtcNow()}__{0}").RequireAccepted();
|
||||
BuySuccess(buyType, iAPItemList, itemDataGift, rewardShowType, true);
|
||||
OrderManager.OrderManager.OnOrderSuccess(buyType, iAPItemList, itemDataGift, rewardShowType, true);
|
||||
if (!buyType.NoShow)
|
||||
@@ -429,7 +436,7 @@ namespace GameCore
|
||||
|
||||
if (result.isSuccess)
|
||||
{
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("LastPaymentTime", $"{ZZTimeHelper.UtcNow()}__{sku.price}");
|
||||
SaveStore.Write("LastPaymentTime", $"{ZZTimeHelper.UtcNow()}__{sku.price}").RequireAccepted();
|
||||
BuySuccess(buyType, iAPItemList, itemDataGift, rewardShowType);
|
||||
OrderManager.OrderManager.OnOrderSuccess(buyType, iAPItemList, itemDataGift, rewardShowType);
|
||||
if (!buyType.NoShow)
|
||||
@@ -604,7 +611,7 @@ namespace GameCore
|
||||
}
|
||||
}
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("LastPaymentTime", $"{ZZTimeHelper.UtcNow()}__{data.ProdPrice}");
|
||||
SaveStore.Write("LastPaymentTime", $"{ZZTimeHelper.UtcNow()}__{data.ProdPrice}").RequireAccepted();
|
||||
BuySuccess(data.BuyType, iAPItemList, itemDataGift, data.ShowType);
|
||||
if (data.BuyType.extraPurcheData != null)
|
||||
{
|
||||
@@ -628,7 +635,7 @@ namespace GameCore
|
||||
buyData[0] += iAPItemList.PaymentAmount;
|
||||
}
|
||||
buyData.Add(iAPItemList.ID);
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("BuyData", JsonMapper.ToJson(buyData));
|
||||
SaveStore.Write("BuyData", JsonMapper.ToJson(buyData)).RequireAccepted();
|
||||
#if AGG
|
||||
GEvent.SetUserProp("Total_consumption", buyData[0]);
|
||||
#endif
|
||||
@@ -699,7 +706,7 @@ namespace GameCore
|
||||
}
|
||||
TurntableAdData = null;
|
||||
shopPackDailyBuyCount["0"] = ZZTimeHelper.UtcNow().UtcNowOffset().DayOfYear;
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("ShopPackBuyCount", JsonMapper.ToJson(shopPackDailyBuyCount));
|
||||
SaveStore.Write("ShopPackBuyCount", JsonMapper.ToJson(shopPackDailyBuyCount)).RequireAccepted();
|
||||
}
|
||||
//}
|
||||
}
|
||||
@@ -729,7 +736,7 @@ namespace GameCore
|
||||
{
|
||||
shopPackDailyBuyCount["0"] = ZZTimeHelper.UtcNow().UtcNowOffset().DayOfYear;
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("ShopPackBuyCount", JsonMapper.ToJson(shopPackDailyBuyCount));
|
||||
SaveStore.Write("ShopPackBuyCount", JsonMapper.ToJson(shopPackDailyBuyCount)).RequireAccepted();
|
||||
}
|
||||
public int GetShopPackBuyCount(int id)
|
||||
{
|
||||
@@ -786,7 +793,7 @@ namespace GameCore
|
||||
{
|
||||
shopGiftBuyCount.Add(id, count);
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("ShopGiftBuyCount", JsonMapper.ToJson(shopGiftBuyCount));
|
||||
SaveStore.Write("ShopGiftBuyCount", JsonMapper.ToJson(shopGiftBuyCount)).RequireAccepted();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -855,7 +862,7 @@ namespace GameCore
|
||||
index = 0,
|
||||
time = time.ToString()
|
||||
};
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("ChainPackDataNew", JsonMapper.ToJson(ChainPackData));
|
||||
SaveStore.Write("ChainPackDataNew", JsonMapper.ToJson(ChainPackData)).RequireAccepted();
|
||||
chainPackM = null;
|
||||
}
|
||||
if (chainPackM == null)
|
||||
@@ -897,7 +904,7 @@ namespace GameCore
|
||||
{
|
||||
AddAllPackCount(chainPackM.ID, 1);
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("ChainPackDataNew", JsonMapper.ToJson(ChainPackData));
|
||||
SaveStore.Write("ChainPackDataNew", JsonMapper.ToJson(ChainPackData)).RequireAccepted();
|
||||
//链式礼包 特殊处理
|
||||
GContext.Publish(new TargetEvent(chainPackM.ID, 3, 10));
|
||||
}
|
||||
@@ -927,7 +934,7 @@ namespace GameCore
|
||||
shopAllPackBuyCount.Add(id, count);
|
||||
}
|
||||
GContext.Publish(new ConditionTypeEvent(ConditionType.BuyPack, count));
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("ShopAllPackBuyCount", JsonMapper.ToJson(shopAllPackBuyCount));
|
||||
SaveStore.Write("ShopAllPackBuyCount", JsonMapper.ToJson(shopAllPackBuyCount)).RequireAccepted();
|
||||
}
|
||||
#endregion
|
||||
//========================================礼包========================================
|
||||
@@ -965,7 +972,7 @@ namespace GameCore
|
||||
}
|
||||
}
|
||||
#endif
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("AdvertAllCount", JsonMapper.ToJson(advertCount));
|
||||
SaveStore.Write("AdvertAllCount", JsonMapper.ToJson(advertCount)).RequireAccepted();
|
||||
GContext.Publish(new ResAddEvent(1006));
|
||||
}
|
||||
public int GetAdticketCount()
|
||||
@@ -991,7 +998,7 @@ namespace GameCore
|
||||
{
|
||||
advertCount.Add(id, 1);
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("AdvertAllCount", JsonMapper.ToJson(advertCount));
|
||||
SaveStore.Write("AdvertAllCount", JsonMapper.ToJson(advertCount)).RequireAccepted();
|
||||
return advertCount[id];
|
||||
}
|
||||
public void ClearAdvertCount()
|
||||
@@ -1006,7 +1013,7 @@ namespace GameCore
|
||||
advertCount[-1] = ZZTimeHelper.UtcNow().UtcNowOffset().DayOfYear;
|
||||
advertCount[0] = allCount;
|
||||
advertCount[-2] = ticket;
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("AdvertAllCount", JsonMapper.ToJson(advertCount));
|
||||
SaveStore.Write("AdvertAllCount", JsonMapper.ToJson(advertCount)).RequireAccepted();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1050,7 +1057,7 @@ namespace GameCore
|
||||
AdConfig adConfig1 = adConfigs[VIPAdPackData.index - 1];
|
||||
VIPAdPackData.cdTime = ZZTimeHelper.UtcNow().UtcNowOffset().AddSeconds(adConfig1.Interval).ToString();
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("VIPAdPackData", JsonMapper.ToJson(VIPAdPackData));
|
||||
SaveStore.Write("VIPAdPackData", JsonMapper.ToJson(VIPAdPackData)).RequireAccepted();
|
||||
//GContext.Publish(new VIPAdPackDataEvent());
|
||||
}
|
||||
public DateTime GetVIPAdPackTime()
|
||||
@@ -1082,7 +1089,7 @@ namespace GameCore
|
||||
VIPAdPackData = new AdvertData();
|
||||
VIPAdPackData.day = ZZTimeHelper.UtcNow().UtcNowOffset().DayOfYear;
|
||||
VIPAdPackData.isOpen = true;
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("VIPAdPackData", JsonMapper.ToJson(VIPAdPackData));
|
||||
SaveStore.Write("VIPAdPackData", JsonMapper.ToJson(VIPAdPackData)).RequireAccepted();
|
||||
}
|
||||
public bool IsOpenAdPack()
|
||||
{
|
||||
@@ -1139,7 +1146,7 @@ namespace GameCore
|
||||
// {
|
||||
// isOverForToday = true;
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("TurntableAdData", Newtonsoft.Json.JsonConvert.SerializeObject(TurntableAdData));
|
||||
SaveStore.Write("TurntableAdData", Newtonsoft.Json.JsonConvert.SerializeObject(TurntableAdData)).RequireAccepted();
|
||||
// GContext.Publish(new VIPAdPackDataEvent());
|
||||
}
|
||||
public bool IsTurntableAdMaxOut()
|
||||
@@ -1233,7 +1240,7 @@ namespace GameCore
|
||||
{
|
||||
_diamondShopItemRecords[itemShopId].hasBought = 1;
|
||||
SetItemShopRedPoint();
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("DiamondShopItemRecords", JsonConvert.SerializeObject(_diamondShopItemRecords));
|
||||
SaveStore.Write("DiamondShopItemRecords", JsonConvert.SerializeObject(_diamondShopItemRecords)).RequireAccepted();
|
||||
}
|
||||
|
||||
|
||||
@@ -1248,7 +1255,7 @@ namespace GameCore
|
||||
{
|
||||
RefreshItemShop();
|
||||
_diamondShopRefreshCount++;
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("DiamondShopRefreshCount", _diamondShopRefreshCount.ToString());
|
||||
SaveStore.Write("DiamondShopRefreshCount", _diamondShopRefreshCount.ToString()).RequireAccepted();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1288,8 +1295,8 @@ namespace GameCore
|
||||
_diamondShopRefreshTime = new DateTime(now.Year, now.Month, now.Day).AddDays(1) + timeSpan;
|
||||
|
||||
_diamondShopRefreshCount = 0;
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("DiamondShopRefreshCount", _diamondShopRefreshCount.ToString());
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("DiamondShopRefreshTime", _diamondShopRefreshTime.ToString());
|
||||
SaveStore.Write("DiamondShopRefreshCount", _diamondShopRefreshCount.ToString()).RequireAccepted();
|
||||
SaveStore.Write("DiamondShopRefreshTime", _diamondShopRefreshTime.ToString()).RequireAccepted();
|
||||
RefreshItemShop();
|
||||
}
|
||||
private void RefreshItemShop()
|
||||
@@ -1364,7 +1371,7 @@ namespace GameCore
|
||||
}
|
||||
|
||||
}
|
||||
PlayFabMgr.Instance.UpdateUserDataValue("DiamondShopItemRecords", JsonConvert.SerializeObject(_diamondShopItemRecords));
|
||||
SaveStore.Write("DiamondShopItemRecords", JsonConvert.SerializeObject(_diamondShopItemRecords)).RequireAccepted();
|
||||
SetItemShopRedPoint();
|
||||
}
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user