187 Commits

Author SHA1 Message Date
35f6050ef7 fix: sanitize legacy mirror text encoding 2026-08-14 20:44:10 +08:00
3885802877 修复业务镜像增量同步与营销账单导出 (#56) 2026-08-14 20:15:34 +08:00
43445fde4b feat: read marketing bills from business mirror
首次全量完成后,营销账户账单、余额、汇总、选项及分页优先读取 caiwu_business_mirror;未就绪时保留旧快照链路。
2026-08-14 17:48:23 +08:00
bb9a18eddb 公司店铺商标页面切换共享业务镜像 (#54) 2026-08-14 16:50:34 +08:00
6b2b486ce1 建立全项目上游业务镜像框架 (#53)
## 任务占用与边界

- 任务名称:全项目上游业务镜像目录与通用同步框架
- 实际开发者:WuYongJie
- 目标结果:登记当前代码实际使用的上游原表,提供低压、可断点的首次全量、增量重叠和全量校准框架。
- 实际修改:13 个文件;新增通用数据集目录、动态镜像建表、同步状态、同步命令、生产低压轮询、测试和团队清单。
- 将写入的公共契约:`business_mirror_table_states`、`business-mirror:sync-tables`、`BusinessMirrorDatasetRegistry`、`BusinessMirrorSchemaManager`。
- 仅复用、明确不修改:`UpstreamReadOnlyQueryFactory`、`upstream_schema_columns`、既有 `product_price_mirror_rows`。
- 明确不包含:本 PR 不切换其余业务页面 Repository,不执行生产迁移或首次全量,不提交真实业务数据或凭据。

## 合并前自审

- [x] 已重新拉取最新 `origin/main`,分支仅领先 1 个提交
- [x] `git merge-tree --write-tree origin/main HEAD` 无冲突
- [x] 完整 diff 共 13 个文件,未发现越界文件或敏感内容
- [x] 生产共享数据字典核对 38 个数据集,缺失对象/字段为 0
- [x] 临时 MariaDB 空库迁移实测成功,验证库已删除
- [x] 上游异常空结果不会清空已有镜像
- [x] 定时任务只轮转已完成首次全量的数据集,不会自动扫描未初始化大表

## 测试

- `BusinessMirrorSynchronizerTest` 等相关测试:14 tests / 65 assertions 全通过
- 新同步器专项:5 tests / 25 assertions 全通过
- 新增 PHP 文件语法检查全部通过
- 两份生产激活脚本 `bash -n` 通过
- `git diff --check` 通过

## 风险与回滚

- 包含新增迁移,但发布脚本遇到迁移仍会要求独立高风险授权;合并本身不会执行生产迁移。
- 首次全量必须逐数据集显式执行并做数量/翻页/筛选验收,特别是约 280 万行的大表不得随发布自动全扫。
- 回滚代码可回退本合并提交;生产迁移执行前必须备份 `caiwu_system_config` 与 `caiwu_business_mirror`。

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/53
2026-08-14 16:38:33 +08:00
e08cfca1e9 feat: add shared product price business mirror 2026-08-14 15:21:49 +08:00
8d49b979c2 修复经营分析副本库 ANSI 会话设置 (#50) 2026-08-14 13:51:17 +08:00
63b278e149 修复:商品价格切换经营分析副本库
商品价格读取经营分析副本库固定只读视图,并迁移生产快照刷新映射。
2026-08-14 13:33:53 +08:00
7a3857e10f 修复商品价格读取实时价格日志
商品价格改为读取当前价格调整日志表,并补充查询映射与回归测试。
2026-08-14 10:10:34 +08:00
730a0ad1b5 报价管理私有工作簿导入与查看 (#38) 2026-08-13 18:49:36 +08:00
a454367845 修复共享快照处理中状态反馈 (#46) 2026-08-13 15:41:56 +08:00
ba5df6eaa4 调整敏感信息记录与对话规则 (#45) 2026-08-13 14:45:02 +08:00
359b4b7391 切换团队系统数据库公网端口到 8444 (#44) 2026-08-13 14:18:33 +08:00
15ba9d3838 修正新生产服务器 8442 默认入口 (#43) 2026-08-13 12:49:38 +08:00
da9c3cbf88 fix: 容忍七牛对象删除传播延迟 (#42)
对象删除后进行有限重试确认,持续存在仍失败回滚,并覆盖最终一致性边界测试。
2026-08-13 12:35:06 +08:00
cf66c30162 fix: 处理营销账户余额导出冷启动 (#41)
首次导出未生成共享快照时回到当前页面并显示脱敏中文提示,同时覆盖冷快照和未知异常回归测试。
2026-08-13 12:21:38 +08:00
5511dfb221 恢复店铺营销账户余额页面 (#40)
恢复淘系与拼多多营销账户月度余额汇总、筛选、分页和导出。
2026-08-13 11:41:42 +08:00
15ed1f8afd fix: 切换团队系统数据库到新服务器 2026-08-13 11:15:08 +08:00
31ce9abd33 店铺收款账户账单淘系支付宝附件数据 (#36) 2026-08-13 00:42:08 +08:00
3222bd91ee 修正非京喜退款两行对照表头 (#35) 2026-08-12 17:00:27 +08:00
33dd71ced1 退款非京喜子功能页面表头设计 (#34) 2026-08-12 16:20:20 +08:00
82ce1e52da 隐藏退款子菜单三角标识 (#33)
退款模块二级菜单不再显示活动三角标识,保留活动背景和一级展开箭头。
2026-08-12 10:58:17 +08:00
e6b245099c 增加退款二级目录 (#32) 2026-08-11 18:39:08 +08:00
b3594e7563 修正退款为独立一级目录 (#31) 2026-08-11 16:28:41 +08:00
0f39eb83a0 订单数据新增退款二级目录 (#30)
- 在“订单数据”下新增“退款”二级目录,菜单键为 order-data/refunds
- 复用现有 business.pages.show 通用页面与标准空状态
- 增加导航顺序、标题和页面路由测试

测试:容器内 www-data 执行 NavigationTest 与 PagesTest,11 个测试、166 个断言通过。
不涉及金额、权限、数据库、迁移、上游查询或生产部署。

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/30
2026-08-11 15:23:15 +08:00
09d593dd2d 订单数据接入聚水潭上游只读数据 (#27)
## 任务背景
订单数据页面已完成附件表头,本任务由 renshen 接入聚水潭上游真实只读数据。

## 任务目标
- 订单售后费用明细:按附件字段展示订单、商品、SKU 成本及售后关联数据。
- 商品推广费用明细:按商品/款式汇总推广费用。
- 不硬编码附件演示值;缺失字段保持空值或零。

## 预计修改路径
- modules/EcommerceFinance/Repositories/OrderDataRepository.php
- modules/EcommerceFinance/View/Composers/OrderDataPageComposer.php
- modules/EcommerceFinance/Providers/Main.php
- resources/views/business/pages/order-data/*.blade.php
- tests/Unit/EcommerceFinance/OrderDataRepositoryTest.php
- tests/Feature/Business/OrderDataPagesUpstreamTest.php

## 页面和路由
复用 order-data/after-sales-expenses、order-data/promotion-expenses 和 business.pages.show;不新增或修改 routes。

## Controller / Repository
新增 OrderDataRepository 和专用 View Composer;不修改 app/Http/Controllers/Business/Pages.php。

## 数据源、表和字段
source_key=operations_replica,数据库 JSReportReplica,schema=rpt。固定参数化只读查询使用 jst_Orders、jst_OrderItem、jst_sku、jst_skumap、jst_returnAndRefundInfo、jst_returnAndRefundItem、jst_warehouseInfo、ads_itemid_sales_cost_ratio_v2_di。字段限于订单/商品标识、时间、店铺、SKU 元数据、金额、售后数量金额及 push_fee。

## scope
- order-data.after-sales.list
- order-data.promotion.list

## 权限、菜单和公共组件
复用现有页面权限、菜单、UpstreamReadOnlyQueryFactory 和 UpstreamQueryCacheFactory;不修改权限和导航。

## 明确不修改
不修改 routes、Pages Controller、数据库迁移、上游连接配置、权限、菜单、京东钱包功能、共享数据库结构或任何上游数据。

## 范围补充:后台快照刷新
- modules/EcommerceFinance/Services/OperationsReplicaSnapshotRefresher.php
- tests/Unit/EcommerceFinance/OperationsReplicaSnapshotRefresherTest.php

刷新器仅为 order-data.after-sales.list 和 order-data.promotion.list 分派同一 OrderDataRepository 固定查询;其他 scope 继续复用现有 UpstreamBusinessInformation。

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/27
2026-08-11 14:50:56 +08:00
9f06dc43cc 增强发布 SSH 连接重试 (#29) 2026-08-11 12:53:13 +08:00
476d33b24a 修复增量发布隧道中断 (#28) 2026-08-11 12:46:32 +08:00
28a62434d2 整合并修正京东钱包账单 (#26)
接入京东充值与消耗账单,修复快照冷启动、刷新依赖、日期边界与标签局部切换。
2026-08-11 12:22:41 +08:00
873c59d774 订单数据子功能表头页面 (#25) 2026-08-10 18:03:05 +08:00
1cc6b76b68 修复工作站增量发布隧道误判 (#24) 2026-08-10 11:41:29 +08:00
efc797e95e 修复新服务器配置数据库初始化权限 (#23) 2026-08-10 11:25:13 +08:00
e048660e88 切换并初始化新的生产服务器 (#22) 2026-08-10 10:57:14 +08:00
f3ed0a1086 ?????????????? (#21) 2026-08-07 17:17:58 +08:00
4ea2c03beb 修正订单数据二级菜单同级视觉 (#20) 2026-08-07 14:37:38 +08:00
f3f55bbc11 订单数据增加两个二级目录 (#18) 2026-08-06 19:35:19 +08:00
481b5d2e49 fix: distinguish reused contracts in task preflight (#19) 2026-08-06 19:21:01 +08:00
ba6be3f3fd ?????????? (#16) 2026-08-06 18:33:49 +08:00
d6d3b9f331 新增订单数据一级导航 (#15)
新增订单数据一级导航,并覆盖工作区路由和导航顺序。
Co-authored-by: renshen <1005457301@qq.com>
Co-committed-by: renshen <1005457301@qq.com>
2026-08-06 17:16:07 +08:00
15a9e3f475 Alibaba汇总金额改为万元 (#14)
仅在展示层将三项金额汇总从元换算为万元,其余功能保持不变。
2026-08-06 16:47:39 +08:00
e7ad693418 修复 Alibaba 分页横向布局 (#13)
使 Alibaba 分页与拼多多账户保持相同的横向布局,其余功能不变。
2026-08-06 16:35:54 +08:00
433c8ab762 修复供应商赔偿明细数据来源 (#11)
接手 sumu 本地任务,复用既有只读 Repository 契约,将赔偿明细切换到 dbo.fys_supplierPaymentSummary,并按附件保留五列表头。
2026-08-06 16:26:51 +08:00
a9fd2cfb37 接入 1688 营销账户账单 (#12)
根据 Alibaba.xlsx 字段接入 JianSun.dbo.alibaba_bill,提供筛选、汇总、分页、快照刷新和错误状态。
2026-08-06 16:07:31 +08:00
87c1ea80bf 修复本地经营信息直读分页参数丢失 (#10)
## 任务占用与边界

- 任务名称:修复本地经营信息直读分页参数丢失
- 实际开发者:WuYongJie
- 目标结果:公司、店铺、商标信息页面在本地直读模式下不再因分页参数丢失返回 500。
- 实际修改路径:\`app/Business/UpstreamBusinessInformation.php\`;\`tests/Unit/EcommerceFinance/UpstreamBusinessInformationTest.php\`
- 上游 \`source_key\` / \`scope\`:\`operations_replica\`;\`company-information.read\`、\`store-information.read\`、\`trademark-information.read\`
- 明确不修改:上游连接资料、查询范围、共享快照刷新器、数据库迁移、生产配置、页面视觉和部署。

## 开工与合并前碰撞检查

- [x] 已在开工和合并前分别执行 \`scripts/codex-task-preflight.ps1\`
- [x] 已检查最新 \`origin/main\` 与全部远程任务分支
- [x] 无目标路径或公共契约重叠;历史共享库验证分支仅涉及其他测试文件

## 实际改动

- 将三个本地页面 resolver 中只写在 \`compact()\` 字符串里的分页变量,改为显式数组参数,使 PHP 箭头函数正确捕获 \`$page\`、\`$perPage\`。
- 新增回归测试:实际执行三个页面的 resolver,并断言固定快照收到正确分页参数。
- 无新增 scope、接口、权限、表结构、查询字段或缓存策略。

## 验证证据

- [x] PHP 语法检查:两个改动文件通过。
- [x] 相关单元测试:19 passed,57 assertions。
- [x] 受影响管理页面功能测试:4 passed,270 assertions。
- [x] 对比 \`origin/main...任务分支\` 已逐文件复查:仅 2 个目标文件,+88 / -3;无敏感文件或无关改动。
- [x] 同类扫描:三个错误 resolver 已全部改为显式参数;保留的 \`compact('page', 'perPage')\` 位于普通闭包中,变量已通过 \`use\` 正确捕获。

## 风险与回滚

- [x] 不涉及金额、权限、审批、数据库迁移、生产配置、数据修复或部署。
- [x] 未提交 \`.env\`、密码、Token、私钥、真实财务数据、生产日志或构建产物。
- [x] 无前端改动,\`DESIGN.md\` 不适用。
- 回滚方式:回退本次 Squash 合并提交即可;不会影响生产共享快照路径,因为生产不启用本地直读模式。

## 合并前复查

- [x] PR 已移除 \`WIP:\`,测试与自审已补齐。
- [x] 当前任务 Codex 已按完整 diff 自审,通过后执行 Squash merge、核验远程 \`main\` 并清理任务分支。

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/10
2026-08-04 19:22:48 +08:00
3fd41dfb69 修复 operations_replica 生产驱动崩溃 (#9)
## 任务占用与边界

- 任务名称:修复 operations_replica 生产驱动崩溃
- 实际开发者:WuYongJie
- 任务来源/团队分工:生产快照恢复
- 目标结果:生产 Linux 容器不再通过会崩溃的 PDO_ODBC 访问 FreeTDS;保留固定只读查询、共享系统数据库凭据来源和私有隧道。
- 预计修改路径:deploy/Dockerfile;modules/EcommerceFinance/Services/UpstreamOdbcConnection.php;tests/Unit/EcommerceFinance/UpstreamOdbcConnectionTest.php
- 预计页面或路由:公司、店铺、商标信息页的共享快照读取
- 预计 Controller / Repository:UpstreamOdbcConnection;UpstreamReadOnlyQuery
- 数据源、表/视图和字段:operations_replica 固定只读查询;不新增上游写入、全表同步或业务字段。
- 上游 source_key / scope:operations_replica;company-information.read、store-information.read、trademark-information.read
- 权限名、菜单键或共享组件:不变
- 明确不修改的范围:上游账号、密码、权限、表结构、业务数据、Windows/本地 ODBC 行为

## 开工碰撞检查

- [x] Codex 已执行 scripts/codex-task-preflight.ps1
- [x] 已检查最新 main 和所有远程任务分支
- [x] 已搜索主线既有页面、接口、Repository 和数据查询
- [x] 未发现重叠

## 实际改动

- 完成内容:开发中
- Codex 实际修改的文件:待补充
- 新增或变更的公共契约:仅 Linux 容器内的 FreeTDS PDO 传输选择;不新增外部配置项
- 与原计划的差异:无

## 验证证据

- 正常流程:同一共享配置和私有隧道下,FreeTDS 命令行 SELECT 1 已成功;PDO_ODBC 独立进程退出码 139。
- 空数据/错误输入/无权限场景:待补充自动测试。
- 受影响旧功能:Windows/本地仍使用既有 ODBC。
- 自动测试及结果:待补充。
- 实际页面、接口或只读业务查询结果:待合并和获准发布后生成三份首份快照。

## 风险检查

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

高风险影响、回滚和授权状态:需要构建新的应用镜像并经生产最小只读查询验证;不迁移、不改上游数据。若验证失败,发布脚本自动保留上一个可回滚镜像。

## 合并前复查

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

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/9
2026-08-04 17:09:14 +08:00
7608f99b9e 生产经营分析副本库隧道端点 (#8)
## 任务占用与边界
- 任务名称:生产经营分析副本库隧道端点
- 实际开发者:WuYongJie
- 任务来源/团队分工:生产快照恢复
- 目标结果:生产环境经受限隧道读取 operations_replica;账号、密码和业务库信息仍仅来自共享系统数据库。
- 预计修改路径:config/upstreams.php;modules/EcommerceFinance/Services/UpstreamSourceRegistry.php;tests/Feature/SystemSettings/UpstreamDatabasesTest.php
- 预计页面或路由:公司、店铺、商标信息页的共享快照读取
- 预计 Controller / Repository:UpstreamSourceRegistry
- 数据源、表/视图和字段:operations_replica 固定只读查询;不新增上游写入或全表同步。
- 上游 source_key / scope:operations_replica;company-information.read、store-information.read、trademark-information.read
- 权限名、菜单键或共享组件:不变
- 明确不修改的范围:上游账号、密码、表结构、业务数据、开发机直连行为

## 开工碰撞检查
- [x] Codex 已执行 scripts/codex-task-preflight.ps1
- [x] 已检查最新 main 和所有远程任务分支
- [x] 已搜索主线既有页面、接口、Repository 和数据查询
- [x] 未发现重叠

## 实际改动
- 完成内容:为生产共享配置增加可选私有隧道端点;仅替换连接主机和端口。
- Codex 实际修改的文件:config/upstreams.php;modules/EcommerceFinance/Services/UpstreamSourceRegistry.php;tests/Feature/SystemSettings/UpstreamDatabasesTest.php
- 新增或变更的公共契约:UPSTREAM_TUNNEL_OPERATIONS_REPLICA_HOST;UPSTREAM_TUNNEL_OPERATIONS_REPLICA_PORT
- 与原计划的差异:无

## 验证证据
- 正常流程:生产 Docker 网络已验证可达既有受限隧道。
- 空数据/错误输入/无权限场景:端点缺失或无效时拒绝使用不完整隧道配置。
- 受影响旧功能:本地共享模式与显式本机覆盖模式保持原行为。
- 自动测试及结果:UpstreamDatabasesTest 18 passed,102 assertions。
- 实际页面、接口或只读业务查询结果:待合并和生产部署后执行首份快照验证。

## 风险检查
- [ ] 不涉及金额、权限、审批、数据库迁移、生产配置或数据修复
- [x] 如涉及上述高风险内容,已在下方写明影响、回滚和所需授权
- [x] 未提交 .env、密码、Token、私钥、真实财务数据、生产日志或构建产物
- [x] 前端改动符合 DESIGN.md;无前端改动则写“不适用”
高风险影响、回滚和授权状态:生产私有运行配置会新增两项仅端点变量;已存在运行配置备份与共享系统数据库备份。部署和生成快照需在合并后单独复核。

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

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/8
2026-08-04 16:15:33 +08:00
79e25e90fc fix: refresh operations replica snapshots (#7) 2026-08-04 15:41:49 +08:00
be96eccb96 fix: align business company ids with legacy schema (#6) 2026-08-04 14:47:27 +08:00
1a5336c04a 生产业务迁移兼容热修复 (#5)
任务占用与边界

目标:修复生产部署时新增业务迁移重复创建已存在表,保证迁移可安全续跑。
预计修改:两条业务迁移文件及一项迁移兼容测试。
公共契约:ak_biz_tax_data、create_business_finance_tables、create_business_basic_information_tables。
不修改:业务数据、上游配置、权限、页面、Controller、Repository。
生产现场:原镜像已恢复;本 PR 完成测试、自审后才重新发布。

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/5
2026-08-04 14:23:06 +08:00
50d417393c 营销账户账单黑金优化与京东分账视图 (#4)
## 任务占用与边界

- 任务名称:营销账户账单当前页黑金优化与京东分账视图
- 实际开发者:WuYongJie
- 任务来源/团队分工:页面批注;仅处理当前营销账户账单页
- 目标结果:将“淘系微信账户”显示为 Alibaba、“京东网银钱包账户”显示为 京东;京东页提供充值账单与消耗账单局部视图;替换当前页遗留绿色主按钮、紫色编辑链接和灰色表格样式。
- 预计修改路径:resources/views/business/pages/show.blade.php;resources/views/banking/marketing_account_bills/partials/embedded-table.blade.php;tests/Feature/Business/MarketingAccountBillsTabsTest.php
- 预计页面或路由:/1/workspace/billing-transactions/marketing-account-bills/{tab}
- 预计 Controller / Repository:不修改
- 数据源、表/视图和字段:不修改;京东两个视图均使用既有 marketing_account_bills 日汇总记录
- 上游 source_key / scope:不修改
- 权限名、菜单键或共享组件:不修改既有权限/菜单键;新增查询参数 jd_ledger(recharge | consumption)
- 明确不修改的范围:其他页面、全局主题、路由 slug、Controller、Repository、迁移、上游配置、生产环境

## 开工碰撞检查

- [x] Codex 已执行 scripts/codex-task-preflight.ps1
- [x] 已检查最新 main 和所有远程任务分支
- [x] 已搜索主线既有页面、接口、Repository 和数据查询
- [x] 未发现本任务实际修改路径重叠;初次宽范围检查命中两个历史本地共享库分支,收窄为当前三个文件后预检通过

相关分支、重叠项与协调结论:
- origin/fix/WuYongJie-local-shared-db-verification、origin/fix/WuYongJie-integrate-local-shared-db:涉及 config/Business Pages 等宽范围,但不与本 PR 三个实际修改路径重叠,未触碰其文件。

## 实际改动

- 完成内容:
  - 当前营销账户账单页中,淘系微信标签显示为 Alibaba,京东网银钱包标签显示为 京东。
  - 京东页增加“充值账单 / 消耗账单”局部切换;只改变显示字段,不改变记录来源或数据。
  - 当前页工具栏、表格、焦点态、错误态改用 VIP 黑金令牌;移除当前页的绿色主按钮和紫色编辑链接。
- Codex 实际修改的文件:
  - resources/views/business/pages/show.blade.php
  - resources/views/banking/marketing_account_bills/partials/embedded-table.blade.php
  - tests/Feature/Business/MarketingAccountBillsTabsTest.php
- 新增或变更的公共契约:jd-wallet 页支持 jd_ledger=recharge(默认)和 jd_ledger=consumption。
- 与原计划的差异:无。

## 验证证据

- 正常流程:两个目标路由均实际渲染 200;默认京东视图显示充值字段,消耗视图显示消耗字段。
- 空数据/错误输入/无权限场景:空记录表格保留既有空态;测试显式授予目标页面权限,确保验证的是实际业务页而非权限兜底页。
- 受影响旧功能:非京东平台仍按既有完整字段顺序渲染;未改数据来源。
- 自动测试及结果:docker compose -f docker-compose.local.yml exec -T -u www-data app php artisan test tests/Feature/Business/MarketingAccountBillsTabsTest.php --compact,2 passed(14 assertions)。
- 实际页面、接口或只读业务查询结果:本地容器路由渲染通过;未访问或修改生产数据。

## 风险检查

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

高风险影响、回滚和授权状态:
- 无高风险数据操作。回滚为撤销本提交即可;尚未部署生产。

## 合并前复查

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

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/4
2026-08-04 13:06:57 +08:00