修复非京喜退款数据页面固定空状态 #75

Merged
sumu merged 3 commits from fix/sumu-non-jingxi-refund-data into main 2026-08-21 18:26:04 +08:00
Collaborator

任务占用与边界

  • 任务名称:修复非京喜退款数据页面固定空状态
  • 实际开发者:苏木
  • 任务来源/团队分工:负责人要求继续修复当前页面
  • 目标结果:页面从共享业务镜像读取非京喜退款数据,支持真实分页、日期/订单/店铺/SKU 筛选,并区分同步未就绪、同步异常和真实空结果
  • 预计修改路径:app/Http/Controllers/Business/Pages.php、config/upstream_mirrors.php、modules/EcommerceFinance/Repositories/NonJingxiRefundMirrorRepository.php、resources/views/business/pages/refunds/non-jingxi-refund-data.blade.php、3 个聚焦测试文件
  • 将写入的公共契约:NonJingxiRefundMirrorRepository、contentForNonJingxiRefundData、non-jingxi-refund-data.filters;4 个既有退款/订单数据集的读取索引声明
  • 仅复用、明确不修改的公共契约:business.pages.show、GenericBusinessMirrorRepository、BusinessMirrorDatasetRegistry、既有退款权限/菜单、jst_sku、fys_shopInfo 和共享上游表格样式
  • 数据源、表/视图和字段:operations_replica/rpt.jst_returnAndRefundInfo、rpt.jst_returnAndRefundItem;页面补充字段只读复用 jst_Orders、jst_OrderItem、jst_sku、fys_shopInfo
  • 上游 source_key / scope:operations_replica;不新增生产快照 scope
  • 权限名、菜单键或共享组件:仅复用既有 refunds/non-jingxi-refund-data 权限与菜单,不修改
  • 明确不修改的范围:不修改上游配置、共享数据库数据、镜像业务行、同步状态、同步调度、权限、菜单或生产环境

开工碰撞检查

  • Codex 已执行 scripts/codex-task-preflight.ps1
  • 已检查最新 main 和所有远程任务分支
  • 已搜索主线既有页面、接口、Repository 和数据查询
  • 已把“将写入”和“仅复用、不修改”的公共契约分开;仅复用项不作为单独阻断条件
  • 未发现实际写入重叠

相关分支、重叠项与协调结论:2026-08-21 按实际 7 个路径和 11 个写入契约重新预检通过;未发现远程任务分支实际写入重叠。

实际改动

  • 完成内容:页面改读两张退款共享镜像;增加稳定排序分页、日期/订单/店铺/SKU 筛选、LIKE 通配符转义、当前页辅助字段补齐、同步状态和真实空状态;日期输入支持原生点击选择并严格校验非法日期
  • Codex 实际修改的文件:app/Http/Controllers/Business/Pages.php、config/upstream_mirrors.php、modules/EcommerceFinance/Repositories/NonJingxiRefundMirrorRepository.php、resources/views/business/pages/refunds/non-jingxi-refund-data.blade.php、tests/Feature/Business/PagesTest.php、tests/Feature/Business/NonJingxiRefundPageTest.php、tests/Unit/EcommerceFinance/NonJingxiRefundMirrorRepositoryTest.php
  • 新增或变更的公共契约:新增 NonJingxiRefundMirrorRepository 与 non-jingxi-refund-data.filters;为退款主表、退款明细、订单主表、订单明细声明页面读取所需复合索引
  • 与原计划的差异:为避免百万行镜像联表超时,实际补充了 4 张既有镜像表的读取索引声明;未新建数据集或修改同步器。PagesTest 同步校准了当前既有的未知退款页规范化重定向行为

验证证据

  • 正常流程:脱敏 SQLite 镜像验证第 2 页、日期/订单/店铺/SKU 筛选、稳定排序和当前页辅���字段补齐
  • 空数据/错误输入/无权限场景:已验证首次同步未完成不会伪装成“无数据”、真实空筛选显示 0 条、非法日期回退最近 7 天、无侧边栏权限返回 403、LIKE %/_/! 按字面值处理
  • 受影响旧功能:通用镜像同步器、数据集 Registry、Schema Manager 幂等索引测试通过;完整 PagesTest 另有 1 项既有预期仍要求商品价格读取失败,但共享镜像当前已经成功返回数据,属于与本分支无差异的基线失败
  • 自动测试及结果:聚焦页面/Repository 9 passed (77 assertions);镜像同步器与索引管理 16 passed (81 assertions);PHP lint 与 git diff --check 通过
  • 实际页面、接口或只读业务查询结果:两数据集当前均为 running、错误码为空、首次全量已完成;退款主表最近尝试 2026-08-21 18:02:08、最近成功 2026-08-17 10:05:07,退款明细最近尝试 2026-08-21 17:55:08、最近成功 2026-08-17 09:58:02;两张镜像表均确认非空。当前共享表尚未建立本 PR 声明的新读取索引;页面因此不执行高压力联表查询。浏览器已验证默认页、第二页、未来日期和订单筛选均快速显示索引准备状态,日期控件可点击,窄屏无重叠

补充基线现状:扩大执行发布调度测试时,BusinessMirrorScheduleTest 发现 deploy/activate-release.sh 缺少其既有预期命令;该脚本和测试均不在本分支 diff 中,本任务不修改。

风险检查

  • 不涉及金额、权限、审批、数据库迁移、生产配置或数据修复
  • 如涉及上述高风险内容,已在下方写明影响、回滚和所需授权
  • 未提交 .env、密码、Token、私钥、真实财务数据、生产日志或构建产物
  • 前端改动符合 DESIGN.md;无经批准偏差

高风险影响、回滚和授权状态:页面只读展示镜像金额字段,并仅按“单位成本 × 退款数量”计算展示值,不修改金额或业务数据。索引由既有生产镜像 Schema Manager 在后续发布/同步流程中建立,本机未执行建索引、同步、迁移、生产写入或部署。代码回滚可恢复原页面;生产发布与索引建立需另行按发布授权执行。

合并前复查

  • 已重新拉取远程引用并用实际修改范围再次运行碰撞检查
  • PR 不再是 WIP:,所有测试结果已经补齐
  • Codex 已重新读取原始需求和验收标准,并逐文件审核 origin/main...任务分支 的完整 diff
  • Codex 自审确认无越界修改、重复实现、敏感内容、未处理冲突和未验证结果
  • 合并顺序不会覆盖其他未合并任务
  • 已授权当前任务的 Codex 执行 Squash merge、验证 main 并清理任务分支
  • 不涉及生产迁移、数据修复、删除、覆盖配置或部署

最终补充:索引未就绪时新增 Repository 门槛,缺任一退款/订单必需复合索引即拒绝查询;page=2 占位固定显示第 1 / 1 页;状态提示使用 DESIGN.md 警告色。镜像框架回归 16 passed (81 assertions),退款路由回归 1 passed (25 assertions),app:ready 通过;本机 snapshot_worker 保持停止,未执行同步、刷新、建索引、迁移、生产写入或部署。

## 任务占用与边界 - 任务名称:修复非京喜退款数据页面固定空状态 - 实际开发者:苏木 - 任务来源/团队分工:负责人要求继续修复当前页面 - 目标结果:页面从共享业务镜像读取非京喜退款数据,支持真实分页、日期/订单/店铺/SKU 筛选,并区分同步未就绪、同步异常和真实空结果 - 预计修改路径:`app/Http/Controllers/Business/Pages.php`、`config/upstream_mirrors.php`、`modules/EcommerceFinance/Repositories/NonJingxiRefundMirrorRepository.php`、`resources/views/business/pages/refunds/non-jingxi-refund-data.blade.php`、3 个聚焦测试文件 - 将写入的公共契约:`NonJingxiRefundMirrorRepository`、`contentForNonJingxiRefundData`、`non-jingxi-refund-data.filters`;4 个既有退款/订单数据集的读取索引声明 - 仅复用、明确不修改的公共契约:`business.pages.show`、`GenericBusinessMirrorRepository`、`BusinessMirrorDatasetRegistry`、既有退款权限/菜单、`jst_sku`、`fys_shopInfo` 和共享上游表格样式 - 数据源、表/视图和字段:`operations_replica/rpt.jst_returnAndRefundInfo`、`rpt.jst_returnAndRefundItem`;页面补充字段只读复用 `jst_Orders`、`jst_OrderItem`、`jst_sku`、`fys_shopInfo` - 上游 `source_key` / `scope`:`operations_replica`;不新增生产快照 scope - 权限名、菜单键或共享组件:仅复用既有 `refunds/non-jingxi-refund-data` 权限与菜单,不修改 - 明确不修改的范围:不修改上游配置、共享数据库数据、镜像业务行、同步状态、同步调度、权限、菜单或生产环境 ## 开工碰撞检查 - [x] Codex 已执行 `scripts/codex-task-preflight.ps1` - [x] 已检查最新 `main` 和所有远程任务分支 - [x] 已搜索主线既有页面、接口、Repository 和数据查询 - [x] 已把“将写入”和“仅复用、不修改”的公共契约分开;仅复用项不作为单独阻断条件 - [x] 未发现实际写入重叠 相关分支、重叠项与协调结论:2026-08-21 按实际 7 个路径和 11 个写入契约重新预检通过;未发现远程任务分支实际写入重叠。 ## 实际改动 - 完成内容:页面改读两张退款共享镜像;增加稳定排序分页、日期/订单/店铺/SKU 筛选、LIKE 通配符转义、当前页辅助字段补齐、同步状态和真实空状态;日期输入支持原生点击选择并严格校验非法日期 - Codex 实际修改的文件:`app/Http/Controllers/Business/Pages.php`、`config/upstream_mirrors.php`、`modules/EcommerceFinance/Repositories/NonJingxiRefundMirrorRepository.php`、`resources/views/business/pages/refunds/non-jingxi-refund-data.blade.php`、`tests/Feature/Business/PagesTest.php`、`tests/Feature/Business/NonJingxiRefundPageTest.php`、`tests/Unit/EcommerceFinance/NonJingxiRefundMirrorRepositoryTest.php` - 新增或变更的公共契约:新增 `NonJingxiRefundMirrorRepository` 与 `non-jingxi-refund-data.filters`;为退款主表、退款明细、订单主表、订单明细声明页面读取所需复合索引 - 与原计划的差异:为避免百万行镜像联表超时,实际补充了 4 张既有镜像表的读取索引声明;未新建数据集或修改同步器。`PagesTest` 同步校准了当前既有的未知退款页规范化重定向行为 ## 验证证据 - 正常流程:脱敏 SQLite 镜像验证第 2 页、日期/订单/店铺/SKU 筛选、稳定排序和当前页辅���字段补齐 - 空数据/错误输入/无权限场景:已验证首次同步未完成不会伪装成“无数据”、真实空筛选显示 0 条、非法日期回退最近 7 天、无侧边栏权限返回 403、LIKE `%`/`_`/`!` 按字面值处理 - 受影响旧功能:通用镜像同步器、数据集 Registry、Schema Manager 幂等索引测试通过;完整 `PagesTest` 另有 1 项既有预期仍要求商品价格读取失败,但共享镜像当前已经成功返回数据,属于与本分支无差异的基线失败 - 自动测试及结果:聚焦页面/Repository `9 passed (77 assertions)`;镜像同步器与索引管理 `16 passed (81 assertions)`;PHP lint 与 `git diff --check` 通过 - 实际页面、接口或只读业务查询结果:两数据集当前均为 `running`、错误码为空、首次全量已完成;退款主表最近尝试 `2026-08-21 18:02:08`、最近成功 `2026-08-17 10:05:07`,退款明细最近尝试 `2026-08-21 17:55:08`、最近成功 `2026-08-17 09:58:02`;两张镜像表均确认非空。当前共享表尚未建立本 PR 声明的新读取索引;页面因此不执行高压力联表查询。浏览器已验证默认页、第二页、未来日期和订单筛选均快速显示索引准备状态,日期控件可点击,窄屏无重叠 补充基线现状:扩大执行发布调度测试时,`BusinessMirrorScheduleTest` 发现 `deploy/activate-release.sh` 缺少其既有预期命令;该脚本和测试均不在本分支 diff 中,本任务不修改。 ## 风险检查 - [ ] 不涉及金额、权限、审批、数据库迁移、生产配置或数据修复 - [x] 如涉及上述高风险内容,已在下方写明影响、回滚和所需授权 - [x] 未提交 `.env`、密码、Token、私钥、真实财务数据、生产日志或构建产物 - [x] 前端改动符合 `DESIGN.md`;无经批准偏差 高风险影响、回滚和授权状态:页面只读展示镜像金额字段,并仅按“单位成本 × 退款数量”计算展示值,不修改金额或业务数据。索引由既有生产镜像 Schema Manager 在后续发布/同步流程中建立,本机未执行建索引、同步、迁移、生产写入或部署。代码回滚可恢复原页面;生产发布与索引建立需另行按发布授权执行。 ## 合并前复查 - [x] 已重新拉取远程引用并用实际修改范围再次运行碰撞检查 - [x] PR 不再是 `WIP:`,所有测试结果已经补齐 - [x] Codex 已重新读取原始需求和验收标准,并逐文件审核 `origin/main...任务分支` 的完整 diff - [x] Codex 自审确认无越界修改、重复实现、敏感内容、未处理冲突和未验证结果 - [x] 合并顺序不会覆盖其他未合并任务 - [x] 已授权当前任务的 Codex 执行 Squash merge、验证 `main` 并清理任务分支 - [x] 不涉及生产迁移、数据修复、删除、覆盖配置或部署 最终补充:索引未就绪时新增 Repository 门槛,缺任一退款/订单必需复合索引即拒绝查询;page=2 占位固定显示第 1 / 1 页;状态提示使用 DESIGN.md 警告色。镜像框架回归 16 passed (81 assertions),退款路由回归 1 passed (25 assertions),app:ready 通过;本机 snapshot_worker 保持停止,未执行同步、刷新、建索引、迁移、生产写入或部署。
sumu added 1 commit 2026-08-21 15:36:55 +08:00
sumu added 1 commit 2026-08-21 16:12:07 +08:00
sumu added 1 commit 2026-08-21 18:17:51 +08:00
sumu changed title from WIP: 修复非京喜退款数据页面固定空状态 to 修复非京喜退款数据页面固定空状态 2026-08-21 18:25:38 +08:00
sumu merged commit c941dd98f0 into main 2026-08-21 18:26:04 +08:00
sumu deleted branch fix/sumu-non-jingxi-refund-data 2026-08-21 18:26:05 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/CaiWuXiTong#75
No description provided.