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 game;
|
||||
using GameCore;
|
||||
@@ -21,23 +21,25 @@ public class SurveyService
|
||||
const string SurveyData = "SurveyData";
|
||||
const string SurveyReadSidData = "SurveyReadSidData";
|
||||
|
||||
readonly game.PlayerDataStorage.IPlayerSaveStore saveStore;
|
||||
IUserService userService;
|
||||
cfg.Tables tables;
|
||||
List<string> receivedReward = new List<string>();
|
||||
List<string> readSid = new List<string>();
|
||||
string access_token;
|
||||
public SurveyData tableData;
|
||||
public SurveyService(IUserService userService, cfg.Tables tables)
|
||||
public SurveyService(IUserService userService, cfg.Tables tables, game.PlayerDataStorage.IPlayerSaveStore saveStore)
|
||||
{
|
||||
this.userService = userService;
|
||||
this.saveStore = saveStore;
|
||||
this.tables = tables;
|
||||
tableData = null;
|
||||
string surveyData = PlayFabMgr.Instance.GetLocalData(SurveyData);
|
||||
string surveyData = saveStore.Read(SurveyData).ValueOrThrow();
|
||||
if (!string.IsNullOrEmpty(surveyData))
|
||||
{
|
||||
receivedReward = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(surveyData);
|
||||
}
|
||||
string surveyReadSidData = PlayFabMgr.Instance.GetLocalData(SurveyReadSidData);
|
||||
string surveyReadSidData = saveStore.Read(SurveyReadSidData).ValueOrThrow();
|
||||
if (!string.IsNullOrEmpty(surveyReadSidData))
|
||||
{
|
||||
readSid = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(surveyReadSidData);
|
||||
@@ -53,7 +55,7 @@ public class SurveyService
|
||||
PlayerData playerData = GContext.container.Resolve<PlayerData>();
|
||||
|
||||
List<SurveyData> surveyDataTable = tables.TbSurveyData.DataList;
|
||||
ulong userId = Convert.ToUInt64(userService.UserId, 16);
|
||||
ulong userId = Convert.ToUInt64(userService.UserId, saveStore is game.PlayerDataStorage.KVPlayerSaveStore ? 10 : 16);
|
||||
tableData = null;
|
||||
if (surveyDataTable.Count > 0)
|
||||
{
|
||||
@@ -109,7 +111,7 @@ public class SurveyService
|
||||
string url = $"{SurveyUrl}s2/{tableData.ID}/{tableData.Hash}/?&uid={userService.CustomId}";
|
||||
//标记已读
|
||||
readSid.Add(tableData.ID.ToString());
|
||||
PlayFabMgr.Instance.UpdateUserDataValue(SurveyReadSidData, Newtonsoft.Json.JsonConvert.SerializeObject(readSid));
|
||||
saveStore.Write(SurveyReadSidData, Newtonsoft.Json.JsonConvert.SerializeObject(readSid)).RequireAccepted();
|
||||
GetSurveyMatchlist();
|
||||
return url;
|
||||
}
|
||||
@@ -133,7 +135,7 @@ public class SurveyService
|
||||
GContext.container.Resolve<PlayerItemData>().AddItemByDrop(tableData.Reward, null);
|
||||
GContext.Publish(new ShowData());
|
||||
receivedReward.Add(sid);
|
||||
PlayFabMgr.Instance.UpdateUserDataValue(SurveyData, Newtonsoft.Json.JsonConvert.SerializeObject(receivedReward));
|
||||
saveStore.Write(SurveyData, Newtonsoft.Json.JsonConvert.SerializeObject(receivedReward)).RequireAccepted();
|
||||
GetSurveyMatchlist();
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
Reference in New Issue
Block a user