🔄 Recurring 定期账单

定期记账规则管理,支持每日/每周/每月/每年自动生成交易记录,也可手动触发立即执行或批量推进逾期规则。

接口列表

1. 查询定期记账列表

GET /api/admin/recurring

认证:需要 Bearer Token(Admin 权限)

响应:数组

[{
  "id": 1,
  "name": "房租",
  "tx_type": "支出",
  "amount": 3000,
  "bill_id": 1,
  "category_id": 5,
  "frequency": "monthly",
  "next_due_at": "2026-05-01 00:00:00",
  "is_active": 1,
  "created_at": "2026-04-01T10:00:00.000Z",
  "bill_name": "家庭账单",
  "category_name": "房租"
}]

2. 立即执行(推进日期)

POST /api/admin/recurring/:id/trigger

手动触发,立即推进 next_due_at 到下一个周期(不生成实际交易记录)。

路径参数id — 规则 ID

响应

{"message": "已立即执行,下次执行时间已更新", "next_due_at": "2026-06-01 00:00:00"}

3. 批量触发逾期规则

POST /api/admin/recurring/advance-all

批量推进所有 is_active=1 且 next_due_at 已到期的规则。一次性推进,每条规则按 frequency 推进到下一周期。

响应

{"message": "已处理 N 条规则", "items": [{"id": 1, "name": "房租", "next_due_at": "2026-06-01"}]}

4. 删除规则

DELETE /api/admin/recurring/:id

响应{"success": true}

5. 更新规则

PUT /api/admin/recurring/:id

请求体

参数类型必填说明
namestring必填规则名称
tx_typestring必填交易类型:收入 / 支出
amountnumber必填金额
frequencystring必填频率:daily / weekly / monthly / yearly
next_due_atstring必填下次执行时间(YYYY-MM-DD HH:mm:ss)
is_activeinteger必填是否启用(1/0)
bill_idinteger必填关联账单 ID
category_idinteger必填关联类目 ID

响应{"message": "定期规则已更新"}