Files
platforms/docs/操作日志_用户端APP_钱包与账单_20260911.md
czl231 3ef33b531d 已完成用户APP首期功能开发
交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
2026-09-13 00:57:32 +08:00

4.6 KiB
Raw Permalink Blame History

钱包与账单开发记录

操作时间2026-09-11 操作类型:扩展、修复 影响模块:用户钱包主页、钱包账单、本人流水读取。

功能变化

个人中心的钱包原先直接打开通用流水列表。现新增/wallet按图28组织账户余额、资产、快捷服务、最近账单和资金安全入口可隐藏余额与最近账单金额支付密码接入已完成页面。/records/wallet地址保持兼容,改为专用账单页,支持全部、收入、支出筛选、游标续页、下拉刷新和账单详情。刷新失败保留原账单并允许重试,账户切换丢弃迟到响应。

资产数据没有已确认接口时显示“暂未提供”不写入原图的200元押金、两张券和100元待退款。充值、提现、银行卡等入口保留但尚未完成办理流程图28只能计部分实现不能宣称钱包全部可用或严格1:1通过。

核心变更

  • backend/api/internal/logic/common/wallet_bills.go:新增ListWalletBills本人钱包范围、每页50条、按序号倒序及显式下一页游标白名单输出不返回内部请求号和操作者信息。
  • backend/api/internal/routers/client.go:增加GET /wallet/bills,既有/wallet/records接口不删除。
  • apps/user_app/lib/domain/models/wallet_bill.dart:账单金额必须为整数分,收支及时间不完整时拒绝解析,不伪装成空账单或零金额。
  • apps/user_app/lib/data/repositories/client_repository.dart:新增walletBills,会话保护与严格响应检查;wallet拒绝小数、负数、缺失金额及可提现额超过余额。
  • apps/user_app/lib/ui/features/wallet/wallet_page.dart:钱包主页、隐私开关和独立账单重试;wallet_bills_page.dart:筛选、分页、详情。
  • apps/user_app/lib/app/router.dartui/features/profile/profile_page.dart:受保护钱包路由与个人中心入口。
  • 新增后端wallet_bills_test.go、前端wallet_bill_test.dartwallet_page_test.dart视觉夹具和并排脚本增加图28。

关键纠偏

远程只读检查发现旧种子充值流水使用direction=in,当前业务使用income。新接口在收入筛选和响应中兼容这一已确认旧值,不重写任何历史资金事实。首次测试还发现账单重试的setState箭头回调返回Future已改为同步块并保留回归测试。

没有数据库迁移没有充值、提现或余额改写。测试环境仍为原远程PostgreSQL及Redis本机仅运行API和Web预览。

验证记录

上次执行因会话中断未保留最终日志2026-09-11重新运行当前代码的Go全量测试、vet、Flutter全量测试、图28八组布局检查。以本轮最终工具结果更新结论旧执行意图不算通过证据。

本轮结果Go全量测试、vet和API构建通过Flutter全量123项测试通过。资产区压缩及金额右对齐修正后重新执行2项页面测试及8组320/360/390/430宽度、1.0/1.3文本布局检查10项均通过analyze无问题。已查看最终并排图仍有卡片高度、图标、资产数据和缺失办理流程差异严格视觉仍为failed。

Web与Android Debug APK构建成功。Android工具链仍提示既有插件Kotlin迁移及SDK XML版本差异未升级依赖或修改原生业务。浏览器在18571仍加载到旧路由新产物中确认存在钱包路由后使用独立端口18572验证新包登录回跳钱包真实余额500元、可提现余额300元、历史充值500元金额隐藏同步覆盖最近账单与详情。接口实测全部1条、收入1条、支出0条in读取兼容已生效。本轮未创建或改写资金流水。

运行入口:http://127.0.0.1:18572/#/walletAPI12426进程24552继续读取既有远程配置。所有截图夹具金额均与真实运行事实分开记录

浏览器追加验证收入筛选显示历史500元充值支出筛选显示“暂无账单”。控制台在登录输入期间捕获Null check operator used on a null value编译栈对应Flutter Web输入配置的DOM元素操作自动输入曾多次未生效切换显示模式并逐键输入后登录成功。根因尚未确认不能宣称运行时完全无错误需要继续排查登录输入与可访问模式的组合。该问题不由账单回归测试覆盖。

后续登录输入连接已单独修复并完成浏览器复核,遮蔽密码输入可直接登录,未新增同类错误;详见登录输入记录,保留上段作为发现过程,不代表当前最新状态。