Files
ft/CodexOutput/upserver/B3BatchMigration/M2/M2-C3c当前待设计与接线清单-2026-09-30.md
Liubing\LB 6813da149a feat(upserver): 保存M2客户端KV迁移至本人统计写检查点
保存独立KV用户服务、固定会话存档与原业务接线,以及C3d资料缓存和C3e本人统计写。
保留原PF/AGG路线、业务公式和时序;榜单读取、好友资料、公告、匹配及首场景闸仍待完成。

验证:ServiceHost两条件各33组646断言;Unity CLI Loop编译0错误269警告。
包含相关方案、评审裁决、测试及状态文档。未操作服务器、正式账号或打包。
2026-09-30 19:19:05 +08:00

7.5 KiB
Raw Blame History

C3c 当前待设计与接线清单

2026-09-30,按用户最新纠正整理。迁移原有功能,只补KV替代接口及必要数据映射,不重新设计LevelB或榜单业务。 本文是当前待设计事项的统一清单;旧方案、事实确认单和审核材料保留历史字节,涉及“重新设计统计键”“一律新增接口”“只能等待他方给协议”的旧表述以本文为准。独立审核结论不由本文件改写,C3c仍须完整审核通过后编码。

1. 已确定,只做接线,不再列为新设计

内容 执行边界
LevelB计算和统计名称 沿原SetLvData公式、上限、LevelB及ContinentCode+LevelB名称、原更新时机;不改成服务器查询时重算
本人统计保存 原SetLeadboardData上传PF的动作,平移为KV管理器保存本人数据;KV值的字符串转换只是存储适配,不另建统计体系或临时副本
本人登录时间 沿已有LastLoginTimeUtc及原每日初始化顺序,不新增同义键、不重新选择时间来源
客户端等级榜入口 保留GetLeadboardData及GetLevelLeadboardData;只替换内部GetLeaderboardAsync提供方,保留默认前50、结果映射、缓存、事件和UI流程
玩家身份 使用认证返回PlayerId/UserID;旧playFabId字段名可暂时保留,值换新ID;不另建身份映射
原好友、公开资料、公告、匹配业务 原数据含义、过滤/排序、同步与异步方式、返回与异常、UI和轮询时序保留

“原来有接口”已确认:原等级榜由PlayFab.GetLeaderboardAsync提供。它不等于已确认自建服务器部署了同名HTTP接口,也不等于旧PF统计已迁入KV。此前101/102读KV未取得LevelB,只代表当时这两个账号的样例;不据此推断全服无数据或必须重建榜单。

2. 真正需要补齐的替代接口内容

原则:先复用已有等价接口;字段不足则最小补字段;确无等价入口才补接口。 线上存在性、拟议合同、已完成代码分别记录,不能混为已实现。以下四类是原功能迁移的接口工作,不是四项新产品设计。

项目 已有能力/证据 剩余需补齐的内容 当前处理方式
等级榜读取 客户端GetLeadboardData → PF GetLeaderboardAsync;原统计名、起始位置、数量和结果消费已明确 KV服务对应读取入口及请求/响应映射:统计名、起始位置、数量 → UserID、位置、分数、公开资料;空榜/失败沿原语义 先复用线上已有等价入口。此前拟POST leaderboard/GetLeaderboard仅为缺入口时的替代合同草案,不是必须另造URL;LevelB计算与存储规则不重做
好友及他人公开资料 friend/GetFriendsList、friend/SearchFriend已正式成功;好友关系/目标新ID可复用。当前样例未返回LevelB/LastLogin,普通level与本人档不同 原好友列表一次返回所需KV公开资料;SearchFriend等原资料入口需对齐真实普通等级、昵称/头像及不存在/失败映射 好友已有扩展Profile草案,保留原路由与四兼容字段;公开资料优先复用SearchFriend,补数据来源/必要字段,不另起一套查询系统
公告读取 原TileNewsManager.ReadTitleNews → PF GetTitleNewsAsync,已有标题、正文、Timestamp及原消费流程 对应全局公告读取入口、同义字段、列表顺序、成功/空/失败映射 KV替代侧已有等价能力就直接接;尚未取得对应合同,不宣称服务不存在,不先设计新公告系统或用本人私有KV代替全局内容
匹配调用 原PF多人匹配已有创建票据、查询票据、取消票据和取结果四步 新UserID下四步的等价调用、原队列/属性/状态及结果字段映射 先核现有服务可复用范围,只补缺少的调用合同;不重做匹配规则、轮询或UI,不以临时结束路径替代功能

好友和等级榜已有用户授权的接口草案,继续完善即可,不再次请求“是否允许设计”。公告/匹配目前属于需核对替代合同的项,不在本轮凭空新增路由或规则。具体线上版本由服务端负责侧提供或核对;客户端侧负责旧消费者映射、实现与验证,不把整体迁移工作转交服务端。

3. 最小客户端接线位置

以下为候选实施位置,不是新增编码许可。复用已有KV用户服务、存档接口和CustomServerMgr,不新增Provider、管理器、运行开关或让底层KV依赖业务UI。

文件(相对Client/Assets/Scripts) 原入口及迁移内容
DataCenter/DataCenter.LeadboardData.cs:158、171 SetLeadboardData仅替换本人统计保存;GetLeadboardData仅替换榜单读取与结果映射;SetLvData算法和活动榜保持
Services/FriendService.cs:132 GetFriendList仅替换PF数据取得及映射;原过滤、排序、事件保持
Services/FriendModel.cs 已有DTO确实缺少获审字段时才补字段,保留现有wire兼容
Services/KVUserService.cs:282、288 GetPlayLv/GetPlayInfo接等价远端资料;原参考逻辑在UserService.cs:810、849、874,保留同一占位对象和异步更新事件
Services/TileNewsManager.cs:24 ReadTitleNews替换公告取得,保留首条选择、红点、阅读标记及原异步流程
Duel/UI/EventFishingDuelPanel.cs:608、685、740、811 原创建/查询/结果/取消调用接替代服务;保留原3秒轮询及原状态处理,不伪造EntityKey

服务器接口内部实现由服务器开发者负责;客户端Agent不改本地或远程服务器。若已有正式接口能直接满足合同,以实证收敛草案,避免新建重复路由。当前event/GetLeaderboards是活动榜,不是已确认的LevelB等级榜替代入口。

4. 当前资料与待办

  • 从待设计项移除LevelB公式、统计名称、本人保存方向及登录时间方向;已定规则只作接线验收依据。
  • 确认原等级榜客户端入口已存在;撤回必须另造等级榜URL的含义。
  • 完成好友资料扩展草案与等级榜等价读取草案。后者第2节只作为原存储映射说明,结合LevelB范围纠正阅读。
  • 一次核齐以上四类已有替代入口及确需补齐的字段/合同;不得重新询问已测好友路由是否存在、新ID或KV方向。
  • 将确需新增/补字段的合同与客户端最小实现、失败映射、准确文件/方法白名单并入同一C3c完整审核。本人统计写实现也须遵守完整审核门槛,但不另开LevelB业务设计或逐项送审。
  • 完整裁决后连续接线及测试:KV分支相关PF调用为0,原PF/AGG对照保持;离线协议测试与正式联调分别记录,不能把草案或夹具当线上通过。
  • 最终全链验证前恢复已登记开发冻结/忽略路径,仅清理迁移造成且无消费者的实现。命名调整及业务缺陷修正仍待整个迁移完成后另行授权。

5. 本检查点

只更新当前设计清单、接手入口、状态、TODO和日志;未修改客户端/测试/服务器代码,未发正式网络请求,未运行Unity或打包。正式地址仍http://s101.local:18080/,Unity验证仅CLI Loop。没有要求用户重复裁决,也没有向审核/服务端会话发送消息。