feat(交易记录): 新增交易记录管理页面与API接口 feat(上传): 添加统一上传接口支持自动识别文件类型 feat(用户管理): 为用户模型添加备注字段并更新相关接口 feat(邮件): 实现SMTP邮件发送功能并添加测试脚本 feat(短信): 增强短信服务配置灵活性与日志记录 fix(发票): 修复发票列表时间筛选功能 fix(nginx): 调整上传大小限制与超时配置 docs: 添加多个功能模块的说明文档 docs(估值): 补充估值计算流程与API提交数据说明 chore: 更新依赖与Docker镜像版本
4.0 KiB
4.0 KiB
目标
- 创建若干“交易记录”(对公转账付款凭证)测试数据,并确保后台管理可以正常查看、筛选与分页。
- 全流程可回滚,严格隔离开发与生产数据。
关键假设
- 交易记录以
PaymentReceipt(关联Invoice)为核心:后端模型位于app/models/invoice.py。 - 后端已提供发票与凭证相关 API:
- 发票:
GET/POST /api/v1/invoice/*(app/api/v1/invoice/invoice.py) - 凭证:
POST /api/v1/invoice/{id}/receipt、列表GET /api/v1/transactions/receipts(app/api/v1/transactions/transactions.py)。
- 发票:
- 现有后台页已覆盖发票列表
web/src/views/transaction/invoice/index.vue,尚无“凭证专属列表”页面。
数据建模与来源
Invoice:发票记录(开票状态、类型、抬头信息、公司税号、银行账户等)。PaymentReceipt:对公转账付款凭证(字段含invoice_id、url、note、verified、created_at)。- 为保证后台可见,需同时插入可查询的
Invoice与其关联的PaymentReceipt。
实施路径
方案 A:通过现有 API 批量生成(零代码改动,首选)
- 步骤:
- 调用
POST /api/v1/invoice/create批量创建 5–10 条覆盖不同类型/状态的发票(含公司名、税号、银行账户等)。 - 对每条发票调用
POST /api/v1/invoice/{id}/receipt上传/登记 1–2 条付款凭证(file_url或url、note、verified)。 - 可选:通过
POST /api/v1/transactions/send-email生成邮件日志,验证通知链路。
- 调用
- 优势:不改动代码,快速、低风险;与现有权限和审计链路一致。
方案 B:后端种子脚本(仅开发环境,便于重复初始化)
- 在
app/core/init_app.py新增init_demo_transactions():- 仅在开发环境执行(如
ENV=dev);避免污染生产。 - 批量创建
Invoice测试数据,再为每条Invoice创建若干PaymentReceipt。 - 为可识别性,在
note中加入DEMO标签或新增布尔字段(若允许)。
- 仅在开发环境执行(如
- 将该方法纳入现有
init_data()的“开发模式”分支;保留一键清理逻辑(删除DEMO标记数据)。
前端后台展示
- 新增后台页“交易记录”:
web/src/views/transaction/receipts/index.vue(Naive UI):- 数据源:
GET /api/v1/transactions/receipts;支持分页与筛选(手机号、公司名、税号、状态、类型等)。 - 列:凭证时间、公司名称、税号、转账备注(
note)、审核状态(verified)、关联发票 ID/类型,查看详情。 - 行为:查看详情(
GET /api/v1/transactions/receipts/{id}),跳转到发票详情。
- 数据源:
- 菜单与权限:
- 在后端
init_menus()增加“交易记录”菜单,并为管理员角色在init_roles()授权;在init_apis()注册receipts相关 API。
- 在后端
- 备选轻改:在
invoice/index.vue增加“凭证数/链接”列与详情入口,先实现可见性,后续再拆分独立列表页。
验证步骤
- 数据验证:
- 通过 API 查询:
GET /api/v1/invoice/list与GET /api/v1/transactions/receipts,确认条数、筛选与分页正确。 - 随机抽样验证
PaymentReceipt与对应Invoice关联完整、字段齐备。
- 通过 API 查询:
- 前端验证:
- 后台页加载正常、列渲染与筛选可用;详情跳转与状态标签正确。
- 安全验证:
- 在生产环境禁用种子逻辑;标记测试数据,提供清理。
回滚与清理
- 提供清理脚本/接口:按
DEMO标记或 ID 范围批量删除测试发票与凭证。 - 菜单与权限变更可回退至原状态(移除菜单、撤销授权)。
交付物
- (A)一组 API 请求示例(可直接运行)生成测试交易与凭证。
- (B)可选:开发环境种子函数与清理脚本。
- (C)前端“交易记录”后台页(或在发票页增加凭证列的最小改动)。
备注
- 编码时为新增函数与接口补充函数级注释(功能、参数、返回值说明),遵循现有代码风格与安全规范。