84 Commits

Author SHA1 Message Date
00d1c8b90f feat: 推广费营销账户增加收入与余额统计 (#748)
推广费(营销账户)新增收入金额、余额列和三项汇总卡,余额按收入减支出计算。
2026-10-28 17:43:36 +08:00
4a4537612f feat: 将推广费页签迁移到营销账户账单 (#711)
> 开工时标题使用 `WIP: <任务名称>` 并先填写“任务占用与边界”。Codex 完成独立合并前自审后补齐其余内容并移除 `WIP:`。

## 任务占用与边界

- 任务名称:
- 实际开发者:
- 任务来源/团队分工:
- 目标结果:
- 预计修改路径:
- 将写入的公共契约(路由、Controller 方法、Repository、表/视图、`source_key`、`scope`、权限名、菜单键或共享组件):
- 仅复用、明确不修改的公共契约:
- 数据源、表/视图和字段:
- 上游 `source_key` / `scope`:
- 权限名、菜单键或共享组件:
- 明确不修改的范围:

## 开工碰撞检查

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

相关分支、重叠项与协调结论:

## 实际改动

- 完成内容:
- Codex 实际修改的文件:
- 新增或变更的公共契约:
- 与原计划的差异:

## 验证证据

- 正常流程:
- 空数据/错误输入/无权限场景:
- 受影响旧功能:
- 自动测试及结果:
- 实际页面、接口或只读业务查询结果:

## 风险检查

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

高风险影响、回滚和授权状态:

## 合并前复查

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

Reviewed-on: #711
2026-10-28 11:16:15 +08:00
3be1639fb2 feat: 推广费营销账户明细汇总
新增推广费(营销账户)页签、平台与原始店铺汇总、备注筛选和明细弹窗。
2026-10-27 19:27:41 +08:00
c65b17d979 fix: 统一系统化待办跨设备布局 (#695)
## 实际改动

- 全站中文改用仓库内置 Web 字体,消除 macOS PingFang 与 Windows 微软雅黑造成的字宽、换行和控件尺寸差异。
- 系统化待办筛选改为固定六列桌面网格,避免不同屏幕缩放导致控件错位或日期占位符被截断。
- 下拉框、复选框和搜索框统一关闭系统原生外观并使用同一套黑金样式。
- 表格列宽改为公司级共享配置:任意电脑调整后,其他电脑重新进入页面使用同一列宽;仍保留拖动调整和恢复默认功能。

## 验证证据

- SystemizationTodosTest 通过:22 tests,333 assertions。
- laravel-mix production 构建通过。
- 覆盖共享列宽保存、页面读取和路由返回。
- 不涉及数据库迁移、权限、金额口径或上游数据。

## 合并前复查

- 基于最新 origin/main(5f248672)开发。
- 已自审完整 diff,未包含敏感信息或无关修改。
- 提交:593a8019。

Reviewed-on: #695
2026-10-27 17:31:07 +08:00
d071a68452 fix: 营销账户账单启用日期范围筛选 (#674) 2026-10-27 11:11:38 +08:00
b4821ca933 唯品会MP/JX账户:订单结算时间改为「账单期间」,筛选项也按账单期间过滤
1) 两列改名:AccountBillColumns 里唯品会两个页签的「订单结算时间」→「账单期间」(金额式账期月份,如 2026-07),列类型从 date 改 text 避免被当日期格式化;
2) 筛选标签:DATE_FILTER_LABELS 里 vipshop / vipshop-jx 从「结算时间」改成「账单期间」;
3) 筛选真正生效:这两个页签的 start/end 不再过滤 occurred_at,改为按 payload.settle_period(YYYY-MM)与所选区间取月份交集,页面列表与导出同步生效。
同步更新 AccountBillsTableTest 的断言。
2026-10-09 09:35:16 +08:00
09077c3661 导出进度改为真实百分比(按发生时间流式取数),并修日期框在宽屏下被裁掉 2026-10-08 16:39:42 +08:00
68d4466810 导出进度弹窗:关闭按钮点击区域放大到 32x32,行数进度列自动换行避免挤掉操作列 2026-10-08 15:56:34 +08:00
e0e197a38b 导出进度:取数阶段显示已等待秒数与预计总行数 2026-10-08 15:48:32 +08:00
d95abebf9c 导出进度:行数列显示取数等待秒数与已写行数/总行数百分比(两个页签组件统一) 2026-10-08 15:38:05 +08:00
ad65f0cc75 导出任务:新增「取消」(后台检测取消标记后停止并删半成品文件) 2026-10-08 15:31:10 +08:00
4d5b9bf440 导出任务:按自增顺序取数提速、时间统一北京时间、运行中显示「取数中」 2026-10-08 15:22:06 +08:00
daf3fd64d8 店铺收款账户账单:导出进度改成科目映射表「操作记录」同款弹窗(撤掉独立页面) 2026-10-08 15:12:41 +08:00
e01b575e74 店铺收款账户账单:导出改成独立「导出进度」页面(任务列表+下载),修正任务页签标签 2026-10-08 15:08:05 +08:00
9710c3baa7 店铺收款账户账单:默认账期改本月、日期不再自动查询、导出按钮与文案各页签统一 2026-10-08 14:59:56 +08:00
30f69f2af9 店铺收款账户账单:导出改成后台任务 + 导出进度列表(状态/下载),不再依赖页面停留 2026-10-08 14:49:11 +08:00
18b4b9f0fb 修复导出进度:导出方法名与进度字段重名导致点击无反应,改用 exportedRows;去掉原生确认框 2026-10-08 14:38:55 +08:00
29defd2025 店铺收款账户账单导出:改成后台导出 + 页面进度条(带 token 轮询,页面可自由切换) 2026-10-08 14:31:32 +08:00
39f7797a35 店铺收款账户账单导出:大账期先发文件头并禁止代理缓冲(下载立刻开始),页面加导出中提示与大账期确认 2026-10-08 14:16:12 +08:00
c75c3b27a7 淘系支付宝账户:发生时间筛选移到账单项目后面
只调整展示位置,筛选字段、默认值、changeDate/applyFilters 逻辑都没动。新的顺序:原始店铺 / 总账备注 / 账单项目 / 发生时间 / 关键词 / 查询·重置,仍然排在一行。
2026-10-08 10:43:53 +08:00
c515da02d0 店铺收款账户账单筛选栏改回一行(去掉强制两行的栅格)
昨天 14:30 的「其余页签对齐淘系支付宝账户样式」把 .tw-filter 改成了 4 列栅格,并把「发生时间 + 查询按钮」显式放到第二行,所以淘系微信等页签的筛选栏又变成两行。

现在改回单行 flex:店铺 / 总账备注 / 账单项目 / 关键词 / 时间 / 查询按钮默认排一行,只有容器宽度不足(<=1024px)才折行。淘系支付宝页签同步改成同一套规则,两个组件保持一致。

已用无头 Edge 渲染同款结构的静态页校验:1912 宽下筛选栏就是一行。
2026-10-08 10:35:27 +08:00
chenxi
9f1f4d08a7 淘系支付宝账户筛选栏去掉数据源渠道与收支类型,关键词移到账单项目后
第 1 行:原始店铺/总账备注/账单项目/关键词;第 2 行:发生时间 + 查询/重置右对齐,
与其它账户页签布局一致。
2026-10-07 14:57:35 +08:00
chenxi
57c1ea7046 抖音账户关键词框与其它页签统一(去掉匹配方式下拉)
关键词改为单输入框;后端对 15~30 位纯数字按等值匹配(记录编码/订单号)快速返回,
其余仍为包含匹配,避免抖音账户全表扫描导致的长等待。
2026-10-07 14:50:07 +08:00
chenxi
74d3558bfa 店铺收款账户账单其余页签对齐淘系支付宝账户样式
统计卡片与筛选栏按淘系支付宝页压缩(金额改万元),筛选栏改 4 列等宽栅格
(发生时间跨 2 格、按钮右对齐),并修复窄屏工具区被撑高的问题。
2026-10-07 14:30:30 +08:00
chenxi
9160ca77a0 淘系支付宝账户筛选栏改为每行 4 个的等宽栅格
四列等宽栅格(发生时间跨 2 格、按钮右对齐),容器 ≤860px 两列、≤560px 单列;
日期控件改弹性宽度避免溢出;字段与功能不变,筛选区高度由 314px 降到 155px。
2026-10-07 14:22:23 +08:00
chenxi
4310a58104 淘系支付宝账户:压缩顶部区域、统计金额改万元、修复工具区异常高度
统计卡片与筛选栏整体收紧约 26%(金额改万元展示),修复窄屏下工具区
被 flex-basis 撑高 384px 导致明细表被推离首屏的问题;明细表样式不变。
2026-10-07 13:57:54 +08:00
chenxi
35ee115522 淘系支付宝账户筛选栏样式对齐淘系微信账户
改用与 AccountBills 相同的筛选栅格与容器查询(≤1200px 两列、≤600px 单列,
发生时间整行),替换原来 7 列一行排开的布局。
2026-10-07 13:20:30 +08:00
ac21fc4079 淘系支付宝账户账单:筛选项整理为一行
原 4 列网格会折成两行;改为单行 7 列(原始店铺/总账备注/账单项目/数据源渠道/收支类型/发生时间/关键词),与其它账户页签一致;窄屏 ≤1400px 回落 4 列、≤1100px 两列、≤600px 单列。
2026-10-07 09:19:00 +08:00
13a9697447 店铺收款账户账单新增「总账备注」筛选;每日账单脚本支持胜算异步分片导出
- 所有账户页签在「店铺」右侧新增「总账备注」下拉:按(平台+账单项目)翻译成账单项目集合过滤,页面/列设置/导出同口径;淘系支付宝、淘系微信同页签混多平台时按店铺名前缀细分
- 每日账单脚本:胜算超出同步导出上限(url=null+taskId)时自动从「异步导出下载管理」取回本次任务全部分片并合并成一份 CSV,导入前按页面笔数核对(不一致则跳过导入)
- 实测:京东 7 月异步导出两片 219158+235846=455004 笔 / 收入 17695094.84 / 支出 8035128.21,与已导入口径一致
2026-10-06 18:46:57 +08:00
e147c90a2c 店铺收款账户账单新增「总账备注」列(按平台+账单项目映射表取值)
- 新增 ec_account_ledger_remarks 映射表与 account-ledger-remarks:import 导入命令(平台/账单项目/总账备注)
- 新增 AccountLedgerRemarkMap:按店铺名前缀识别平台,无前缀时用页签默认平台;缺失匹配保持空白
- 全部账户页签(含淘系支付宝自有列定义)在「店铺/店铺名称」右侧新增「总账备注」列,页面/列设置/导出共用同一份列定义
- 控制器在分页与导出流读取时补齐 payload.ledger_remark,不改动上游账单与共享镜像数据
- 用例:新增 AccountLedgerRemarkMapTest;修正唯品会 JX/MP 列清单断言
2026-10-06 15:42:57 +08:00
047a527b3f 唯品会JX账户时间筛选标签改为结算时间
唯品会JX账户的时间筛选标签由「发生时间」改为「结算时间」;标签仍集中在 DATE_FILTER_LABELS 映射(京东账单/京喜账单/京东网银钱包=费用结算时间,抖音/唯品会MP/唯品会JX=结算时间,其余默认发生时间)。
2026-09-29 11:12:48 +08:00
21cb3dcbcf 唯品会MP账户时间筛选标签改为结算时间
唯品会MP账户的时间筛选标签由「发生时间」改为「结算时间」,与该页签的订单签收或退款时间口径一致;标签仍集中在 DATE_FILTER_LABELS 映射(抖音、唯品会MP=结算时间;京东账单/京喜账单/京东网银钱包=费用结算时间;其余默认发生时间)。
2026-09-29 11:03:53 +08:00
2d59e63861 抖音账户时间筛选标签改为结算时间
抖音账户的时间筛选标签由「发生时间」改为「结算时间」,与该页签的「结算时间」列名一致。标签集中成 DATE_FILTER_LABELS 映射(京东账单/京喜账单/京东网银钱包=费用结算时间,抖音=结算时间,其余沿用发生时间),不再散落 if-else。
2026-09-29 10:53:04 +08:00
a0c99c3e8d 新增店铺收款京喜账单页签并从京东账单切分
在京东账单右侧新增京喜账单页签,复用京东日账单的取数、列定义、筛选、排序、分页与导出,只增加平台维度过滤:京东账单排除京喜店铺,京喜账单只取京喜店铺。平台口径集中在 config/jd_bill_platform.php 与 JdBillPlatform(含口径切换起始日期参数,默认全量历史),仓库通过 forPlatform() 收窄,两个口径互补、总额守恒,底层镜像数据不修改不删除。真实镜像实测:京喜 488,464 笔 + 京东 210,983 笔 = 拆分前 699,447 笔,收入/支出/差额逐项误差为 0。
2026-09-28 19:25:53 +08:00
a08b28199d 新增店铺收款唯品会JX账户页签
店铺收款账户账单新增 vipshop-jx 页签:导航配置、列定义、控制器与前端路由;读取共享账单表 ec_account_bills 中的唯品会JX(JITX)原始账单(店铺/类型/二次备注/销售订单号/含税金额),按金额正负拆出收入与支出,订单日期由销售订单号前 6 位还原(原始账单无日期列)。DB 页签日期统一按 Y-m-d H:i:s 返回,JX 页签汇总口径为收支净额,并补齐单元与功能测试。
2026-09-28 17:51:41 +08:00
89ee272b9d 防止淘系账单筛选重复扫表 (#268)
筛选选项增加稳定缓存与单飞锁,精确行数场景移除多余 COUNT,并加入缓存预热。
2026-09-24 15:22:40 +08:00
88fcc7ab0e 统一淘系微信和支付宝账单筛选交互 (#267) 2026-09-24 15:15:09 +08:00
2b77118588 修复唯品会账户店铺及账单项目筛选 (#259) 2026-09-24 10:15:22 +08:00
fe2c56a9c2 修复店铺收款账户账单日期筛选 (#254) 2026-09-23 17:44:46 +08:00
chenxi
d36b46007f Merge remote-tracking branch 'origin/main' into fix/chenxi-login-redirect 2026-09-22 22:30:05 +08:00
chenxi
6ed9664028 修复登录表单重定向 2026-09-22 22:28:57 +08:00
af10f3c972 接入聚胜算得物完整账单 (#245)
保留得物、退货退款订单和扣减其他费用明细三类渠道;增加受控幂等导入、原子替换与页面权威表查询。
2026-09-22 19:07:11 +08:00
9289144565 修复拼多多完整账单导入和日期筛选 (#242) 2026-09-22 17:36:40 +08:00
836848f431 完善供应商应付五项操作 2026-09-22 14:49:09 +08:00
04b1fca4ae 新增店铺收款唯品会账户入口 (#237) 2026-09-22 14:09:35 +08:00
1751d8e062 接入淘系支付宝账单副本库全量数据 (#208)
使用经营分析副本库作为全量分页、筛选、汇总与导出主数据源;演示表仅按记录编码补充源表缺失字段。验证:47 项 PHP 测试、435 assertions;6 项账户账单脚本测试;真实页面全量及日期筛选验收通过。
2026-09-19 01:52:45 +08:00
760d6ec79a 修复账户账单日期选择器无法打开日历 (#206) 2026-09-18 17:54:51 +08:00
51c447c5f6 修复账户账单筛选栏在窄内容区的布局 (#205) 2026-09-18 17:04:20 +08:00
c0898b4914 修复账户账单筛选与导出范围一致性 (#204) 2026-09-18 16:56:09 +08:00
3db5605375 接入胜算京东钱包至京东网银钱包账户 (#203) 2026-09-18 15:07:43 +08:00