chore: update tasks.md
This commit is contained in:
@@ -29,25 +29,25 @@
|
||||
- 当某种卡类型无记录时,对应余额为 0
|
||||
- **Validates: Requirements 2.1, 2.2, 2.3, 10.1**
|
||||
|
||||
- [ ] 3. ETL 赠送卡新增充值拆分
|
||||
- [x] 3. ETL 赠送卡新增充值拆分
|
||||
- [x] 3.1 新增 `_extract_gift_recharge_breakdown()` 方法
|
||||
- 文件:`apps/etl/connectors/feiqiu/tasks/dws/finance_recharge_task.py`
|
||||
- SQL:`dwd_recharge_order JOIN dim_member_card_account`(`tenant_member_card_id` → `tenant_member_id`)按 card_type_id 分组
|
||||
- 新增 `GIFT_RECHARGE_FIELD_MAP` 常量映射
|
||||
- 返回 `{gift_liquor_recharge, gift_table_fee_recharge, gift_voucher_recharge}`,缺失卡类型默认 0
|
||||
- _Requirements: 3.1, 3.2, 3.3_
|
||||
- [-] 3.2 编写属性测试:ETL 新增提取 round-trip
|
||||
- [x] 3.2 编写属性测试:ETL 新增提取 round-trip
|
||||
- **Property 4: ETL 新增提取 round-trip**
|
||||
- 生成随机 `dwd_recharge_order` + `dim_member_card_account` 记录,mock DB,验证各类型新增等于对应 card_type_id 的 point_amount 之和
|
||||
- 当某种卡类型无充值记录时,对应新增为 0
|
||||
- **Validates: Requirements 3.1, 3.2, 3.3, 10.2**
|
||||
|
||||
- [ ] 4. ETL transform 合并细分字段
|
||||
- [~] 4.1 修改 `extract()` 调用新方法并传递结果
|
||||
- [-] 4.1 修改 `extract()` 调用新方法并传递结果
|
||||
- 文件:`apps/etl/connectors/feiqiu/tasks/dws/finance_recharge_task.py`
|
||||
- 在 extract 返回值中新增 `gift_recharge_breakdown` key
|
||||
- _Requirements: 4.1_
|
||||
- [~] 4.2 修改 `transform()` 将 6 个新字段写入 record dict
|
||||
- [-] 4.2 修改 `transform()` 将 6 个新字段写入 record dict
|
||||
- 使用 `self.safe_decimal()` 处理值,缺失 key 时填充 0
|
||||
- 沿用现有 delete-before-insert 幂等策略
|
||||
- _Requirements: 4.1, 4.2, 4.3_
|
||||
|
||||
@@ -1,68 +1,9 @@
|
||||
{
|
||||
"audit_required": true,
|
||||
"db_docs_required": true,
|
||||
"reasons": [
|
||||
"root-file",
|
||||
"dir:admin-web",
|
||||
"dir:backend",
|
||||
"dir:etl",
|
||||
"dir:miniprogram",
|
||||
"dir:db",
|
||||
"db-schema-change"
|
||||
],
|
||||
"changed_files": [
|
||||
"AI_CHANGELOG.md",
|
||||
"apps/DEMO-miniprogram/",
|
||||
"apps/XCX-TEST/",
|
||||
"apps/admin-web/src/api/client.ts",
|
||||
"apps/backend/README.md",
|
||||
"apps/backend/app/main.py",
|
||||
"apps/backend/app/middleware/response_wrapper.py",
|
||||
"apps/backend/app/routers/xcx_board.py",
|
||||
"apps/backend/app/routers/xcx_coaches.py",
|
||||
"apps/backend/app/routers/xcx_config.py",
|
||||
"apps/backend/app/routers/xcx_customers.py",
|
||||
"apps/backend/app/routers/xcx_performance.py",
|
||||
"apps/backend/app/routers/xcx_tasks.py",
|
||||
"apps/backend/app/schemas/base.py",
|
||||
"apps/backend/app/schemas/xcx_auth.py",
|
||||
"apps/backend/app/schemas/xcx_board.py",
|
||||
"apps/backend/app/schemas/xcx_coaches.py",
|
||||
"apps/backend/app/schemas/xcx_config.py",
|
||||
"apps/backend/app/schemas/xcx_customers.py",
|
||||
"apps/backend/app/schemas/xcx_notes.py",
|
||||
"apps/backend/app/schemas/xcx_performance.py",
|
||||
"apps/backend/app/schemas/xcx_tasks.py",
|
||||
"apps/backend/app/services/board_service.py",
|
||||
"apps/backend/app/services/coach_service.py",
|
||||
"apps/backend/app/services/customer_service.py",
|
||||
"apps/backend/app/services/fdw_queries.py",
|
||||
"apps/backend/app/services/performance_service.py",
|
||||
"apps/backend/app/services/task_manager.py",
|
||||
"apps/backend/docs/API-REFERENCE.md",
|
||||
"apps/etl/connectors/feiqiu/.env",
|
||||
"apps/etl/connectors/feiqiu/docs/api-reference/endpoints/member_balance_changes.md",
|
||||
"apps/etl/connectors/feiqiu/docs/api-reference/endpoints/member_stored_value_cards.md",
|
||||
"apps/etl/connectors/feiqiu/docs/api-reference/summary/member_balance_changes.md",
|
||||
"apps/etl/connectors/feiqiu/docs/database/DWS/main/BD_manual_dws_finance_recharge_summary.md",
|
||||
"apps/etl/connectors/feiqiu/docs/etl_tasks/dws_tasks.md",
|
||||
"apps/etl/connectors/feiqiu/tasks/dws/finance_recharge_task.py",
|
||||
"apps/miniprogram/doc/useless/",
|
||||
"apps/miniprogram/miniprogram/components/heart-icon/heart-icon.ts",
|
||||
"apps/miniprogram/miniprogram/components/note-modal/note-modal.ts",
|
||||
"apps/miniprogram/miniprogram/pages/board-coach/board-coach.ts",
|
||||
"apps/miniprogram/miniprogram/pages/board-customer/board-customer.ts",
|
||||
"apps/miniprogram/miniprogram/pages/chat-history/chat-history.ts",
|
||||
"apps/miniprogram/miniprogram/pages/chat/chat.ts",
|
||||
"apps/miniprogram/miniprogram/pages/coach-detail/coach-detail.ts",
|
||||
"apps/miniprogram/miniprogram/pages/coach-detail/coach-detail.wxml",
|
||||
"apps/miniprogram/miniprogram/pages/customer-detail/customer-detail.ts",
|
||||
"apps/miniprogram/miniprogram/pages/customer-service-records/customer-service-records.ts",
|
||||
"apps/miniprogram/miniprogram/pages/notes/notes.ts",
|
||||
"apps/miniprogram/miniprogram/pages/performance-records/performance-records.ts",
|
||||
"apps/miniprogram/miniprogram/pages/performance/performance.ts"
|
||||
],
|
||||
"change_fingerprint": "49c98831b2f62f14d40fd05f892a2963a578d02a",
|
||||
"marked_at": "2026-03-20T01:42:24.863510+08:00",
|
||||
"audit_required": false,
|
||||
"db_docs_required": false,
|
||||
"reasons": [],
|
||||
"changed_files": [],
|
||||
"change_fingerprint": "",
|
||||
"marked_at": "2026-03-20T01:48:07.860062+08:00",
|
||||
"last_reminded_at": null
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"prompt_id": "P20260320-014224",
|
||||
"at": "2026-03-20T01:42:24.863510+08:00"
|
||||
"prompt_id": "P20260320-014807",
|
||||
"at": "2026-03-20T01:48:07.860062+08:00"
|
||||
}
|
||||
@@ -62,10 +62,13 @@ class FinanceRechargeTask(FinanceBaseTask):
|
||||
|
||||
recharge_summary = self._extract_recharge_summary(site_id, start_date, end_date)
|
||||
card_balances = self._extract_card_balances(site_id, end_date)
|
||||
# CHANGE 2026-07-18 | task 4.1: 调用赠送卡新增充值拆分方法
|
||||
gift_recharge_breakdown = self._extract_gift_recharge_breakdown(site_id, start_date, end_date)
|
||||
|
||||
return {
|
||||
'recharge_summary': recharge_summary,
|
||||
'card_balances': card_balances,
|
||||
'gift_recharge_breakdown': gift_recharge_breakdown,
|
||||
'start_date': start_date,
|
||||
'end_date': end_date,
|
||||
'site_id': site_id
|
||||
|
||||
Reference in New Issue
Block a user