# API → ODS → DWD 全链路数据流文档
> 自动生成于 `scripts/ops/gen_full_dataflow_doc.py`,基于真实 API 响应 + DDL + ETL 源码。
> 生成时间:2026-02-16 13:51:56
## 概览
- API 端点数量: 23
- 成功获取数据: 23/23
- ODS 表数量: 23
- DWD 表数量: 40
- TABLE_MAP 映射: 40 条
## 图例
- 🔗 跳转链接:点击可在 JSON / ODS / DWD 层之间跳转
- ✅ 已映射到下游
- ⚠️ 仅存于 payload,未入 ODS 列
- 🔄 大小写不敏感匹配
- 📦 嵌套对象
## 目录
1. [助教账号档案 (`assistant_accounts_master`)](#api-assistant-accounts-master)
2. [结账记录 (`settlement_records`)](#api-settlement-records)
3. [台费计费流水 (`table_fee_transactions`)](#api-table-fee-transactions)
4. [助教服务流水 (`assistant_service_records`)](#api-assistant-service-records)
5. [助教废除记录 (`assistant_cancellation_records`)](#api-assistant-cancellation-records)
6. [门店商品销售流水 (`store_goods_sales_records`)](#api-store-goods-sales-records)
7. [支付流水 (`payment_transactions`)](#api-payment-transactions)
8. [退款流水 (`refund_transactions`)](#api-refund-transactions)
9. [平台/团购券核销 (`platform_coupon_redemption_records`)](#api-platform-coupon-redemption-records)
10. [会员档案 (`member_profiles`)](#api-member-profiles)
11. [会员储值卡 (`member_stored_value_cards`)](#api-member-stored-value-cards)
12. [会员余额变动 (`member_balance_changes`)](#api-member-balance-changes)
13. [充值结算 (`recharge_settlements`)](#api-recharge-settlements)
14. [团购套餐定义 (`group_buy_packages`)](#api-group-buy-packages)
15. [团购套餐核销 (`group_buy_redemption_records`)](#api-group-buy-redemption-records)
16. [库存汇总 (`goods_stock_summary`)](#api-goods-stock-summary)
17. [库存变化记录 (`goods_stock_movements`)](#api-goods-stock-movements)
18. [台桌维表 (`site_tables_master`)](#api-site-tables-master)
19. [库存商品分类树 (`stock_goods_category_tree`)](#api-stock-goods-category-tree)
20. [门店商品档案 (`store_goods_master`)](#api-store-goods-master)
21. [台费折扣/调账 (`table_fee_discount_records`)](#api-table-fee-discount-records)
22. [租户商品档案 (`tenant_goods_master`)](#api-tenant-goods-master)
23. [结账小票详情(按 orderSettleId 逐条获取,不走常规分页) (`settlement_ticket_details`)](#api-settlement-ticket-details)
---
## 助教账号档案 (`assistant_accounts_master`)
- 任务编码: `ODS_ASSISTANT_ACCOUNT`
- API 端点: `/PersonnelManagement/SearchAssistantInfo`
- 获取记录数: 69
### API 源字段(62 个) [🔗 ODS](#ods-assistant-accounts-master)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `job_num` | string | | [`job_num`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 2 | `shop_name` | string | 朗朗桌球 | [`shop_name`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 3 | `group_id` | integer | 0 | [`group_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 4 | `group_name` | string | | [`group_name`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 5 | `staff_profile_id` | integer | 0 | [`staff_profile_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 6 | `ding_talk_synced` | integer | 1 | [`ding_talk_synced`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 7 | `entry_type` | integer | 1 | [`entry_type`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 8 | `team_name` | string | 2组 | [`team_name`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 9 | `entry_sign_status` | integer | 0 | [`entry_sign_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 10 | `resign_sign_status` | integer | 0 | [`resign_sign_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 11 | `system_role_id` | integer | 10 | [`system_role_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 12 | `criticism_status` | integer | 1 | [`criticism_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 13 | `salary_grant_enabled` | integer | 2 | [`salary_grant_enabled`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 14 | `leave_status` | integer | 0 | [`leave_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 15 | `id` | integer | 3067857612671685 | [`id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 16 | `allow_cx` | integer | 1 | [`allow_cx`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 17 | `assistant_no` | string | 13 | [`assistant_no`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 18 | `assistant_status` | integer | 1 | [`assistant_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 19 | `avatar` | string | https://oss.ficoo.vip/cbb/userAvatar/176... | [`avatar`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 20 | `birth_date` | string | 0001-01-01 00:00:00 | [`birth_date`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 21 | `charge_way` | integer | 2 | [`charge_way`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 22 | `create_time` | string | 2026-01-26 15:26:11 | [`create_time`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 23 | `cx_unit_price` | number | 0.0 | [`cx_unit_price`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 24 | `end_time` | string | 2026-02-01 08:00:00 | [`end_time`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 25 | `entry_time` | string | 2026-01-26 08:00:00 | [`entry_time`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 26 | `gender` | integer | 0 | [`gender`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 27 | `height` | number | 0.0 | [`height`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 28 | `introduce` | string | | [`introduce`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 29 | `is_delete` | integer | 0 | [`is_delete`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 30 | `is_guaranteed` | integer | 1 | [`is_guaranteed`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 31 | `is_team_leader` | integer | 0 | [`is_team_leader`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 32 | `last_table_id` | integer | 0 | [`last_table_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 33 | `last_table_name` | string | | [`last_table_name`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 34 | `last_update_name` | string | 教练:夏滋岸 | [`last_update_name`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 35 | `level` | integer | 10 | [`level`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 36 | `light_equipment_id` | string | | [`light_equipment_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 37 | `light_status` | integer | 2 | [`light_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 38 | `mobile` | string | 17606621482 | [`mobile`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 39 | `nickname` | string | 渔渔 | [`nickname`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 40 | `online_status` | integer | 1 | [`online_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 41 | `order_trade_no` | integer | 0 | [`order_trade_no`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 42 | `pd_unit_price` | number | 0.0 | [`pd_unit_price`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 43 | `person_org_id` | integer | 3067857612573381 | [`person_org_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 44 | `real_name` | string | 李思怡 | [`real_name`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 45 | `resign_time` | string | 2226-01-26 15:26:11 | [`resign_time`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 46 | `serial_number` | integer | 5130 | [`serial_number`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 47 | `show_sort` | integer | 13 | [`show_sort`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 48 | `show_status` | integer | 1 | [`show_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 49 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 50 | `site_light_cfg_id` | integer | 0 | [`site_light_cfg_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 51 | `staff_id` | integer | 0 | [`staff_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 52 | `start_time` | string | 2026-01-01 08:00:00 | [`start_time`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 53 | `team_id` | integer | 2959085810992645 | [`team_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 54 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 55 | `update_time` | string | 2026-01-28 21:32:15 | [`update_time`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 56 | `user_id` | integer | 3067857612163781 | [`user_id`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 57 | `video_introduction_url` | string | | [`video_introduction_url`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 58 | `weight` | number | 0.0 | [`weight`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 59 | `work_status` | integer | 1 | [`work_status`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 60 | `assistant_grade` | number | 0.0 | [`assistant_grade`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 61 | `sum_grade` | number | 0.0 | [`sum_grade`](#ods-assistant-accounts-master) | ✅ 同名映射 |
| 62 | `get_grade_times` | integer | 0 | [`get_grade_times`](#ods-assistant-accounts-master) | ✅ 同名映射 |
> 映射统计:62 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.assistant_accounts_master` (67 列) [🔗 API](#api-assistant-accounts-master)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-assistant-accounts-master) | [`assistant_id`](#dwd-dim-assistant), [`assistant_id`](#dwd-dim-assistant-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-assistant-accounts-master) | [`tenant_id`](#dwd-dim-assistant) |
| 3 | `site_id` | BIGINT | [`site_id`](#api-assistant-accounts-master) | [`site_id`](#dwd-dim-assistant) |
| 4 | `assistant_no` | TEXT | [`assistant_no`](#api-assistant-accounts-master) | [`assistant_no`](#dwd-dim-assistant) |
| 5 | `nickname` | TEXT | [`nickname`](#api-assistant-accounts-master) | [`nickname`](#dwd-dim-assistant) |
| 6 | `real_name` | TEXT | [`real_name`](#api-assistant-accounts-master) | [`real_name`](#dwd-dim-assistant) |
| 7 | `mobile` | TEXT | [`mobile`](#api-assistant-accounts-master) | [`mobile`](#dwd-dim-assistant) |
| 8 | `team_id` | BIGINT | [`team_id`](#api-assistant-accounts-master) | [`team_id`](#dwd-dim-assistant) |
| 9 | `team_name` | TEXT | [`team_name`](#api-assistant-accounts-master) | [`team_name`](#dwd-dim-assistant) |
| 10 | `user_id` | BIGINT | [`user_id`](#api-assistant-accounts-master) | [`user_id`](#dwd-dim-assistant) |
| 11 | `level` | TEXT | [`level`](#api-assistant-accounts-master) | [`level`](#dwd-dim-assistant) |
| 12 | `assistant_status` | INT | [`assistant_status`](#api-assistant-accounts-master) | [`assistant_status`](#dwd-dim-assistant) |
| 13 | `work_status` | INT | [`work_status`](#api-assistant-accounts-master) | [`work_status`](#dwd-dim-assistant-ex) |
| 14 | `leave_status` | INT | [`leave_status`](#api-assistant-accounts-master) | [`leave_status`](#dwd-dim-assistant) |
| 15 | `entry_time` | TIMESTAMP | [`entry_time`](#api-assistant-accounts-master) | [`entry_time`](#dwd-dim-assistant) |
| 16 | `resign_time` | TIMESTAMP | [`resign_time`](#api-assistant-accounts-master) | [`resign_time`](#dwd-dim-assistant) |
| 17 | `start_time` | TIMESTAMP | [`start_time`](#api-assistant-accounts-master) | [`start_time`](#dwd-dim-assistant-ex) |
| 18 | `end_time` | TIMESTAMP | [`end_time`](#api-assistant-accounts-master) | [`end_time`](#dwd-dim-assistant-ex) |
| 19 | `create_time` | TIMESTAMP | [`create_time`](#api-assistant-accounts-master) | [`create_time`](#dwd-dim-assistant-ex) |
| 20 | `update_time` | TIMESTAMP | [`update_time`](#api-assistant-accounts-master) | [`update_time`](#dwd-dim-assistant-ex) |
| 21 | `order_trade_no` | TEXT | [`order_trade_no`](#api-assistant-accounts-master) | [`order_trade_no`](#dwd-dim-assistant-ex) |
| 22 | `staff_id` | BIGINT | [`staff_id`](#api-assistant-accounts-master) | [`staff_id`](#dwd-dim-assistant-ex) |
| 23 | `staff_profile_id` | BIGINT | [`staff_profile_id`](#api-assistant-accounts-master) | [`staff_profile_id`](#dwd-dim-assistant-ex) |
| 24 | `system_role_id` | BIGINT | [`system_role_id`](#api-assistant-accounts-master) | — |
| 25 | `avatar` | TEXT | [`avatar`](#api-assistant-accounts-master) | [`avatar`](#dwd-dim-assistant-ex) |
| 26 | `birth_date` | TIMESTAMP | [`birth_date`](#api-assistant-accounts-master) | [`birth_date`](#dwd-dim-assistant-ex) |
| 27 | `gender` | INT | [`gender`](#api-assistant-accounts-master) | [`gender`](#dwd-dim-assistant-ex) |
| 28 | `height` | NUMERIC(18,2) | [`height`](#api-assistant-accounts-master) | [`height`](#dwd-dim-assistant-ex) |
| 29 | `weight` | NUMERIC(18,2) | [`weight`](#api-assistant-accounts-master) | [`weight`](#dwd-dim-assistant-ex) |
| 30 | `job_num` | TEXT | [`job_num`](#api-assistant-accounts-master) | — |
| 31 | `show_status` | INT | [`show_status`](#api-assistant-accounts-master) | [`show_status`](#dwd-dim-assistant-ex) |
| 32 | `show_sort` | INT | [`show_sort`](#api-assistant-accounts-master) | [`show_sort`](#dwd-dim-assistant-ex) |
| 33 | `sum_grade` | NUMERIC(18,2) | [`sum_grade`](#api-assistant-accounts-master) | [`sum_grade`](#dwd-dim-assistant-ex) |
| 34 | `assistant_grade` | NUMERIC(18,2) | [`assistant_grade`](#api-assistant-accounts-master) | [`assistant_grade`](#dwd-dim-assistant-ex) |
| 35 | `get_grade_times` | INT | [`get_grade_times`](#api-assistant-accounts-master) | [`get_grade_times`](#dwd-dim-assistant-ex) |
| 36 | `introduce` | TEXT | [`introduce`](#api-assistant-accounts-master) | [`introduce`](#dwd-dim-assistant-ex) |
| 37 | `video_introduction_url` | TEXT | [`video_introduction_url`](#api-assistant-accounts-master) | [`video_introduction_url`](#dwd-dim-assistant-ex) |
| 38 | `group_id` | BIGINT | [`group_id`](#api-assistant-accounts-master) | [`group_id`](#dwd-dim-assistant-ex) |
| 39 | `group_name` | TEXT | [`group_name`](#api-assistant-accounts-master) | [`group_name`](#dwd-dim-assistant-ex) |
| 40 | `shop_name` | TEXT | [`shop_name`](#api-assistant-accounts-master) | [`shop_name`](#dwd-dim-assistant-ex) |
| 41 | `charge_way` | INT | [`charge_way`](#api-assistant-accounts-master) | [`charge_way`](#dwd-dim-assistant-ex) |
| 42 | `entry_type` | INT | [`entry_type`](#api-assistant-accounts-master) | [`entry_type`](#dwd-dim-assistant-ex) |
| 43 | `allow_cx` | INT | [`allow_cx`](#api-assistant-accounts-master) | [`allow_cx`](#dwd-dim-assistant-ex) |
| 44 | `is_guaranteed` | INT | [`is_guaranteed`](#api-assistant-accounts-master) | [`is_guaranteed`](#dwd-dim-assistant-ex) |
| 45 | `salary_grant_enabled` | INT | [`salary_grant_enabled`](#api-assistant-accounts-master) | [`salary_grant_enabled`](#dwd-dim-assistant-ex) |
| 46 | `light_status` | INT | [`light_status`](#api-assistant-accounts-master) | [`light_status`](#dwd-dim-assistant-ex) |
| 47 | `online_status` | INT | [`online_status`](#api-assistant-accounts-master) | [`online_status`](#dwd-dim-assistant-ex) |
| 48 | `is_delete` | INT | [`is_delete`](#api-assistant-accounts-master) | [`is_delete`](#dwd-dim-assistant-ex) |
| 49 | `cx_unit_price` | NUMERIC(18,2) | [`cx_unit_price`](#api-assistant-accounts-master) | — |
| 50 | `pd_unit_price` | NUMERIC(18,2) | [`pd_unit_price`](#api-assistant-accounts-master) | — |
| 51 | `last_table_id` | BIGINT | [`last_table_id`](#api-assistant-accounts-master) | [`last_table_id`](#dwd-dim-assistant-ex) |
| 52 | `last_table_name` | TEXT | [`last_table_name`](#api-assistant-accounts-master) | [`last_table_name`](#dwd-dim-assistant-ex) |
| 53 | `person_org_id` | BIGINT | [`person_org_id`](#api-assistant-accounts-master) | [`person_org_id`](#dwd-dim-assistant-ex) |
| 54 | `serial_number` | BIGINT | [`serial_number`](#api-assistant-accounts-master) | [`serial_number`](#dwd-dim-assistant-ex) |
| 55 | `is_team_leader` | INT | [`is_team_leader`](#api-assistant-accounts-master) | [`is_team_leader`](#dwd-dim-assistant-ex) |
| 56 | `criticism_status` | INT | [`criticism_status`](#api-assistant-accounts-master) | [`criticism_status`](#dwd-dim-assistant-ex) |
| 57 | `last_update_name` | TEXT | [`last_update_name`](#api-assistant-accounts-master) | [`last_update_name`](#dwd-dim-assistant-ex) |
| 58 | `ding_talk_synced` | INT | [`ding_talk_synced`](#api-assistant-accounts-master) | [`ding_talk_synced`](#dwd-dim-assistant-ex) |
| 59 | `site_light_cfg_id` | BIGINT | [`site_light_cfg_id`](#api-assistant-accounts-master) | [`site_light_cfg_id`](#dwd-dim-assistant-ex) |
| 60 | `light_equipment_id` | TEXT | [`light_equipment_id`](#api-assistant-accounts-master) | [`light_equipment_id`](#dwd-dim-assistant-ex) |
| 61 | `entry_sign_status` | INT | [`entry_sign_status`](#api-assistant-accounts-master) | [`entry_sign_status`](#dwd-dim-assistant-ex) |
| 62 | `resign_sign_status` | INT | [`resign_sign_status`](#api-assistant-accounts-master) | [`resign_sign_status`](#dwd-dim-assistant-ex) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dim_assistant` — 维度 (19 列) [🔗 ODS](#ods-assistant-accounts-master)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `assistant_id` | BIGINT | [`id`](#ods-assistant-accounts-master) | 直接 | 字段重命名 |
| 2 | `user_id` | BIGINT | [`user_id`](#ods-assistant-accounts-master) | 直接 | |
| 3 | `assistant_no` | TEXT | [`assistant_no`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 4 | `real_name` | TEXT | [`real_name`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 5 | `nickname` | TEXT | [`nickname`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 6 | `mobile` | TEXT | [`mobile`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 7 | `tenant_id` | BIGINT | [`tenant_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 8 | `site_id` | BIGINT | [`site_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 9 | `team_id` | BIGINT | [`team_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 10 | `team_name` | TEXT | [`team_name`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 11 | `level` | INTEGER | [`level`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 12 | `entry_time` | TIMESTAMPTZ | [`entry_time`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 13 | `resign_time` | TIMESTAMPTZ | [`resign_time`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 14 | `leave_status` | INTEGER | [`leave_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 15 | `assistant_status` | INTEGER | [`assistant_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 16 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 17 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 18 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 19 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dim_assistant_ex` — 维度(扩展) (48 列) [🔗 ODS](#ods-assistant-accounts-master)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `assistant_id` | BIGINT | [`id`](#ods-assistant-accounts-master) | 直接 | 字段重命名 |
| 2 | `gender` | INTEGER | [`gender`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 3 | `birth_date` | TIMESTAMPTZ | [`birth_date`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 4 | `avatar` | TEXT | [`avatar`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 5 | `introduce` | TEXT | [`introduce`](#ods-assistant-accounts-master) | 直接 | |
| 6 | `video_introduction_url` | TEXT | [`video_introduction_url`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 7 | `height` | NUMERIC(5,2) | [`height`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 8 | `weight` | NUMERIC(5,2) | [`weight`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 9 | `shop_name` | TEXT | [`shop_name`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 10 | `group_id` | BIGINT | [`group_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 11 | `group_name` | TEXT | [`group_name`](#ods-assistant-accounts-master) | 直接 | |
| 12 | `person_org_id` | BIGINT | [`person_org_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 13 | `staff_id` | BIGINT | [`staff_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 14 | `staff_profile_id` | BIGINT | [`staff_profile_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 15 | `assistant_grade` | DOUBLE | [`assistant_grade`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 16 | `sum_grade` | DOUBLE | [`sum_grade`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 17 | `get_grade_times` | INTEGER | [`get_grade_times`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 18 | `charge_way` | INTEGER | [`charge_way`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 19 | `allow_cx` | INTEGER | [`allow_cx`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 20 | `is_guaranteed` | INTEGER | [`is_guaranteed`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 21 | `salary_grant_enabled` | INTEGER | [`salary_grant_enabled`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 22 | `entry_type` | INTEGER | [`entry_type`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 23 | `entry_sign_status` | INTEGER | [`entry_sign_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 24 | `resign_sign_status` | INTEGER | [`resign_sign_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 25 | `work_status` | INTEGER | [`work_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 26 | `show_status` | INTEGER | [`show_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 27 | `show_sort` | INTEGER | [`show_sort`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 28 | `online_status` | INTEGER | [`online_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 29 | `is_delete` | INTEGER | [`is_delete`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 30 | `criticism_status` | INTEGER | [`criticism_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 31 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 32 | `update_time` | TIMESTAMPTZ | [`update_time`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 33 | `start_time` | TIMESTAMPTZ | [`start_time`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 34 | `end_time` | TIMESTAMPTZ | [`end_time`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 35 | `last_table_id` | BIGINT | [`last_table_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 36 | `last_table_name` | TEXT | [`last_table_name`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 37 | `last_update_name` | TEXT | [`last_update_name`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 38 | `order_trade_no` | BIGINT | [`order_trade_no`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 39 | `ding_talk_synced` | INTEGER | [`ding_talk_synced`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 40 | `site_light_cfg_id` | BIGINT | [`site_light_cfg_id`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 41 | `light_equipment_id` | TEXT | [`light_equipment_id`](#ods-assistant-accounts-master) | 直接 | |
| 42 | `light_status` | INTEGER | [`light_status`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 43 | `is_team_leader` | INTEGER | [`is_team_leader`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 44 | `serial_number` | BIGINT | [`serial_number`](#ods-assistant-accounts-master) | 直接 | 同名直传 |
| 45 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 46 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 47 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 48 | `SCD2_version` | INT | — | — | SCD2 元数据 |
---
## 结账记录 (`settlement_records`)
- 任务编码: `ODS_SETTLEMENT_RECORDS`
- API 端点: `/Site/GetAllOrderSettleList`
- 时间字段: `rangeStartTime` / `rangeEndTime`
- 获取记录数: 200
### API 源字段(68 个) [🔗 ODS](#ods-settlement-records)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `id` | integer | 3093864077166789 | [`id`](#ods-settlement-records) | ✅ 同名映射 |
| 2 | `tenantId` | integer | 2790683160709957 | [`tenantid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 3 | `siteId` | integer | 2790685415443269 | [`siteid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 4 | `siteName` | string | 朗朗桌球 | [`sitename`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 5 | `balanceAmount` | number | 0.0 | [`balanceamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 6 | `cardAmount` | number | 0.0 | [`cardamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 7 | `cashAmount` | number | 0.0 | [`cashamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 8 | `couponAmount` | number | 0.0 | [`couponamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 9 | `createTime` | string | 2026-02-14 00:21:19 | [`createtime`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 10 | `memberId` | integer | 0 | [`memberid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 11 | `memberName` | string | | [`membername`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 12 | `tenantMemberCardId` | integer | 0 | [`tenantmembercardid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 13 | `memberCardTypeName` | string | | [`membercardtypename`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 14 | `memberPhone` | string | | [`memberphone`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 15 | `tableId` | integer | 0 | [`tableid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 16 | `consumeMoney` | number | 10.0 | [`consumemoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 17 | `onlineAmount` | number | 0.0 | [`onlineamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 18 | `operatorId` | integer | 2790687322443013 | [`operatorid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 19 | `operatorName` | string | 收银员:郑丽珊 | [`operatorname`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 20 | `revokeOrderId` | integer | 0 | [`revokeorderid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 21 | `revokeOrderName` | string | | [`revokeordername`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 22 | `revokeTime` | string | 0001-01-01 00:00:00 | [`revoketime`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 23 | `payAmount` | number | 7.0 | [`payamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 24 | `pointAmount` | number | 7.0 | [`pointamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 25 | `refundAmount` | number | 0.0 | [`refundamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 26 | `settleName` | string | 商城订单 | [`settlename`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 27 | `settleRelateId` | integer | 3093864074381509 | [`settlerelateid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 28 | `settleStatus` | integer | 2 | [`settlestatus`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 29 | `settleType` | integer | 3 | [`settletype`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 30 | `payTime` | string | 2026-02-14 00:21:21 | [`paytime`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 31 | `roundingAmount` | number | 0.0 | [`roundingamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 32 | `paymentMethod` | integer | 0 | [`paymentmethod`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 33 | `adjustAmount` | number | 0.0 | [`adjustamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 34 | `assistantCxMoney` | number | 0.0 | [`assistantcxmoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 35 | `assistantPdMoney` | number | 0.0 | [`assistantpdmoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 36 | `couponSaleAmount` | number | 0.0 | [`couponsaleamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 37 | `plCouponSaleAmount` | number | 0.0 | [`plcouponsaleamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 38 | `merVouSalesAmount` | number | 0.0 | [`mervousalesamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 39 | `memberDiscountAmount` | number | 0.0 | [`memberdiscountamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 40 | `tableChargeMoney` | number | 0.0 | [`tablechargemoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 41 | `goodsMoney` | number | 10.0 | [`goodsmoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 42 | `realGoodsMoney` | number | 7.0 | [`realgoodsmoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 43 | `serviceMoney` | number | 0.0 | [`servicemoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 44 | `prepayMoney` | number | 0.0 | [`prepaymoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 45 | `salesManName` | string | | [`salesmanname`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 46 | `orderRemark` | string | | [`orderremark`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 47 | `salesManUserId` | integer | 0 | [`salesmanuserid`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 48 | `canBeRevoked` | boolean | False | [`canberevoked`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 49 | `pointDiscountPrice` | number | 0.0 | [`pointdiscountprice`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 50 | `pointDiscountCost` | number | 0.0 | [`pointdiscountcost`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 51 | `activityDiscount` | number | 0.0 | [`activitydiscount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 52 | `serialNumber` | integer | 0 | [`serialnumber`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 53 | `assistantManualDiscount` | number | 0.0 | [`assistantmanualdiscount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 54 | `allCouponDiscount` | number | 0.0 | [`allcoupondiscount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 55 | `goodsPromotionMoney` | number | 0.0 | [`goodspromotionmoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 56 | `assistantPromotionMoney` | number | 0.0 | [`assistantpromotionmoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 57 | `isUseCoupon` | boolean | False | [`isusecoupon`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 58 | `isUseDiscount` | boolean | False | [`isusediscount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 59 | `isActivity` | boolean | False | [`isactivity`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 60 | `isBindMember` | boolean | False | [`isbindmember`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 61 | `isFirst` | integer | 0 | [`isfirst`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 62 | `rechargeCardAmount` | integer | 0 | [`rechargecardamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 63 | `giftCardAmount` | integer | 0 | [`giftcardamount`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 64 | `electricityMoney` | number | 0.0 | [`electricitymoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 65 | `realElectricityMoney` | number | 0.0 | [`realelectricitymoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 66 | `electricityAdjustMoney` | number | 0.0 | [`electricityadjustmoney`](#ods-settlement-records) | 🔄 大小写不敏感匹配 |
| 67 | `siteProfile` | object | {"id": 0, "org_id": 0, "shop_name": "", ... | — | 📦 嵌套对象,不直接映射 |
| 68 | `settleList` | object | {"id": 3093864077166789, "tenantId": 279... | — | 📦 嵌套对象,展平后各字段独立映射 |
> 映射统计:66 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.settlement_records` (71 列) [🔗 API](#api-settlement-records)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-settlement-records) | [`order_settle_id`](#dwd-dwd-settlement-head), [`order_settle_id`](#dwd-dwd-settlement-head-ex) |
| 2 | `tenantid` | BIGINT | [`tenantId`](#api-settlement-records) | [`tenant_id`](#dwd-dwd-settlement-head) |
| 3 | `siteid` | BIGINT | [`siteId`](#api-settlement-records) | [`site_id`](#dwd-dwd-settlement-head) |
| 4 | `sitename` | TEXT | [`siteName`](#api-settlement-records) | [`site_name`](#dwd-dwd-settlement-head) |
| 5 | `balanceamount` | NUMERIC(18,2) | [`balanceAmount`](#api-settlement-records) | [`balance_amount`](#dwd-dwd-settlement-head) |
| 6 | `cardamount` | NUMERIC(18,2) | [`cardAmount`](#api-settlement-records) | [`card_amount`](#dwd-dwd-settlement-head-ex) |
| 7 | `cashamount` | NUMERIC(18,2) | [`cashAmount`](#api-settlement-records) | [`cash_amount`](#dwd-dwd-settlement-head-ex) |
| 8 | `couponamount` | NUMERIC(18,2) | [`couponAmount`](#api-settlement-records) | [`coupon_amount`](#dwd-dwd-settlement-head) |
| 9 | `createtime` | TIMESTAMPTZ | [`createTime`](#api-settlement-records) | [`create_time`](#dwd-dwd-settlement-head) |
| 10 | `memberid` | BIGINT | [`memberId`](#api-settlement-records) | [`member_id`](#dwd-dwd-settlement-head) |
| 11 | `membername` | TEXT | [`memberName`](#api-settlement-records) | [`member_name`](#dwd-dwd-settlement-head) |
| 12 | `tenantmembercardid` | BIGINT | [`tenantMemberCardId`](#api-settlement-records) | [`member_card_account_id`](#dwd-dwd-settlement-head) |
| 13 | `membercardtypename` | TEXT | [`memberCardTypeName`](#api-settlement-records) | [`member_card_type_name`](#dwd-dwd-settlement-head) |
| 14 | `memberphone` | TEXT | [`memberPhone`](#api-settlement-records) | [`member_phone`](#dwd-dwd-settlement-head) |
| 15 | `tableid` | BIGINT | [`tableId`](#api-settlement-records) | [`table_id`](#dwd-dwd-settlement-head) |
| 16 | `consumemoney` | NUMERIC(18,2) | [`consumeMoney`](#api-settlement-records) | [`consume_money`](#dwd-dwd-settlement-head) |
| 17 | `onlineamount` | NUMERIC(18,2) | [`onlineAmount`](#api-settlement-records) | [`online_amount`](#dwd-dwd-settlement-head-ex) |
| 18 | `operatorid` | BIGINT | [`operatorId`](#api-settlement-records) | [`operator_id`](#dwd-dwd-settlement-head-ex) |
| 19 | `operatorname` | TEXT | [`operatorName`](#api-settlement-records) | [`operator_name`](#dwd-dwd-settlement-head-ex) |
| 20 | `revokeorderid` | BIGINT | [`revokeOrderId`](#api-settlement-records) | [`revoke_order_id`](#dwd-dwd-settlement-head) |
| 21 | `revokeordername` | TEXT | [`revokeOrderName`](#api-settlement-records) | [`revoke_order_name`](#dwd-dwd-settlement-head-ex) |
| 22 | `revoketime` | TIMESTAMPTZ | [`revokeTime`](#api-settlement-records) | [`revoke_time`](#dwd-dwd-settlement-head-ex) |
| 23 | `payamount` | NUMERIC(18,2) | [`payAmount`](#api-settlement-records) | [`pay_amount`](#dwd-dwd-settlement-head) |
| 24 | `pointamount` | NUMERIC(18,2) | [`pointAmount`](#api-settlement-records) | [`point_amount`](#dwd-dwd-settlement-head) |
| 25 | `refundamount` | NUMERIC(18,2) | [`refundAmount`](#api-settlement-records) | [`refund_amount`](#dwd-dwd-settlement-head-ex) |
| 26 | `settlename` | TEXT | [`settleName`](#api-settlement-records) | [`settle_name`](#dwd-dwd-settlement-head) |
| 27 | `settlerelateid` | BIGINT | [`settleRelateId`](#api-settlement-records) | [`order_trade_no`](#dwd-dwd-settlement-head) |
| 28 | `settlestatus` | INT | [`settleStatus`](#api-settlement-records) | [`settle_status`](#dwd-dwd-settlement-head-ex) |
| 29 | `settletype` | INT | [`settleType`](#api-settlement-records) | [`settle_type`](#dwd-dwd-settlement-head) |
| 30 | `paytime` | TIMESTAMPTZ | [`payTime`](#api-settlement-records) | [`pay_time`](#dwd-dwd-settlement-head) |
| 31 | `roundingamount` | NUMERIC(18,2) | [`roundingAmount`](#api-settlement-records) | [`rounding_amount`](#dwd-dwd-settlement-head) |
| 32 | `paymentmethod` | INT | [`paymentMethod`](#api-settlement-records) | [`payment_method`](#dwd-dwd-settlement-head-ex) |
| 33 | `adjustamount` | NUMERIC(18,2) | [`adjustAmount`](#api-settlement-records) | [`adjust_amount`](#dwd-dwd-settlement-head) |
| 34 | `assistantcxmoney` | NUMERIC(18,2) | [`assistantCxMoney`](#api-settlement-records) | [`assistant_cx_money`](#dwd-dwd-settlement-head) |
| 35 | `assistantpdmoney` | NUMERIC(18,2) | [`assistantPdMoney`](#api-settlement-records) | [`assistant_pd_money`](#dwd-dwd-settlement-head) |
| 36 | `couponsaleamount` | NUMERIC(18,2) | [`couponSaleAmount`](#api-settlement-records) | [`coupon_sale_amount`](#dwd-dwd-settlement-head-ex) |
| 37 | `memberdiscountamount` | NUMERIC(18,2) | [`memberDiscountAmount`](#api-settlement-records) | [`member_discount_amount`](#dwd-dwd-settlement-head) |
| 38 | `tablechargemoney` | NUMERIC(18,2) | [`tableChargeMoney`](#api-settlement-records) | [`table_charge_money`](#dwd-dwd-settlement-head) |
| 39 | `goodsmoney` | NUMERIC(18,2) | [`goodsMoney`](#api-settlement-records) | [`goods_money`](#dwd-dwd-settlement-head) |
| 40 | `realgoodsmoney` | NUMERIC(18,2) | [`realGoodsMoney`](#api-settlement-records) | [`real_goods_money`](#dwd-dwd-settlement-head) |
| 41 | `servicemoney` | NUMERIC(18,2) | [`serviceMoney`](#api-settlement-records) | [`service_money`](#dwd-dwd-settlement-head-ex) |
| 42 | `prepaymoney` | NUMERIC(18,2) | [`prepayMoney`](#api-settlement-records) | [`prepay_money`](#dwd-dwd-settlement-head-ex) |
| 43 | `salesmanname` | TEXT | [`salesManName`](#api-settlement-records) | [`salesman_name`](#dwd-dwd-settlement-head-ex) |
| 44 | `orderremark` | TEXT | [`orderRemark`](#api-settlement-records) | [`order_remark`](#dwd-dwd-settlement-head-ex) |
| 45 | `salesmanuserid` | BIGINT | [`salesManUserId`](#api-settlement-records) | [`salesman_user_id`](#dwd-dwd-settlement-head-ex) |
| 46 | `canberevoked` | BOOLEAN | [`canBeRevoked`](#api-settlement-records) | [`can_be_revoked`](#dwd-dwd-settlement-head-ex) |
| 47 | `pointdiscountprice` | NUMERIC(18,2) | [`pointDiscountPrice`](#api-settlement-records) | [`point_discount_price`](#dwd-dwd-settlement-head-ex) |
| 48 | `pointdiscountcost` | NUMERIC(18,2) | [`pointDiscountCost`](#api-settlement-records) | [`point_discount_cost`](#dwd-dwd-settlement-head-ex) |
| 49 | `activitydiscount` | NUMERIC(18,2) | [`activityDiscount`](#api-settlement-records) | [`activity_discount`](#dwd-dwd-settlement-head-ex) |
| 50 | `serialnumber` | BIGINT | [`serialNumber`](#api-settlement-records) | [`serial_number`](#dwd-dwd-settlement-head-ex) |
| 51 | `assistantmanualdiscount` | NUMERIC(18,2) | [`assistantManualDiscount`](#api-settlement-records) | [`assistant_manual_discount`](#dwd-dwd-settlement-head-ex) |
| 52 | `allcoupondiscount` | NUMERIC(18,2) | [`allCouponDiscount`](#api-settlement-records) | [`all_coupon_discount`](#dwd-dwd-settlement-head-ex) |
| 53 | `goodspromotionmoney` | NUMERIC(18,2) | [`goodsPromotionMoney`](#api-settlement-records) | [`goods_promotion_money`](#dwd-dwd-settlement-head-ex) |
| 54 | `assistantpromotionmoney` | NUMERIC(18,2) | [`assistantPromotionMoney`](#api-settlement-records) | [`assistant_promotion_money`](#dwd-dwd-settlement-head-ex) |
| 55 | `isusecoupon` | BOOLEAN | [`isUseCoupon`](#api-settlement-records) | [`is_use_coupon`](#dwd-dwd-settlement-head-ex) |
| 56 | `isusediscount` | BOOLEAN | [`isUseDiscount`](#api-settlement-records) | [`is_use_discount`](#dwd-dwd-settlement-head-ex) |
| 57 | `isactivity` | BOOLEAN | [`isActivity`](#api-settlement-records) | [`is_activity`](#dwd-dwd-settlement-head-ex) |
| 58 | `isbindmember` | BOOLEAN | [`isBindMember`](#api-settlement-records) | [`is_bind_member`](#dwd-dwd-settlement-head) |
| 59 | `isfirst` | INT | [`isFirst`](#api-settlement-records) | [`is_first_order`](#dwd-dwd-settlement-head-ex) |
| 60 | `rechargecardamount` | NUMERIC(18,2) | [`rechargeCardAmount`](#api-settlement-records) | [`recharge_card_amount`](#dwd-dwd-settlement-head) |
| 61 | `giftcardamount` | NUMERIC(18,2) | [`giftCardAmount`](#api-settlement-records) | [`gift_card_amount`](#dwd-dwd-settlement-head) |
| 62 | `electricityadjustmoney` | NUMERIC(18,2) | [`electricityAdjustMoney`](#api-settlement-records) | [`electricity_adjust_money`](#dwd-dwd-settlement-head) |
| 63 | `electricitymoney` | NUMERIC(18,2) | [`electricityMoney`](#api-settlement-records) | [`electricity_money`](#dwd-dwd-settlement-head) |
| 64 | `mervousalesamount` | NUMERIC(18,2) | [`merVouSalesAmount`](#api-settlement-records) | [`mervou_sales_amount`](#dwd-dwd-settlement-head) |
| 65 | `plcouponsaleamount` | NUMERIC(18,2) | [`plCouponSaleAmount`](#api-settlement-records) | [`pl_coupon_sale_amount`](#dwd-dwd-settlement-head) |
| 66 | `realelectricitymoney` | NUMERIC(18,2) | [`realElectricityMoney`](#api-settlement-records) | [`real_electricity_money`](#dwd-dwd-settlement-head) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dwd_settlement_head` — 事实 (37 列) [🔗 ODS](#ods-settlement-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `order_settle_id` | BIGINT | [`id`](#ods-settlement-records) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenantid`](#ods-settlement-records) | 直接 | 字段重命名 |
| 3 | `site_id` | BIGINT | [`siteid`](#ods-settlement-records) | 直接 | 字段重命名 |
| 4 | `site_name` | VARCHAR(100) | [`sitename`](#ods-settlement-records) | 直接 | 字段重命名 |
| 5 | `table_id` | BIGINT | [`tableid`](#ods-settlement-records) | 直接 | 字段重命名 |
| 6 | `settle_name` | VARCHAR(100) | [`settlename`](#ods-settlement-records) | 直接 | 字段重命名 |
| 7 | `order_trade_no` | BIGINT | [`settlerelateid`](#ods-settlement-records) | 直接 | 字段重命名 |
| 8 | `create_time` | TIMESTAMPTZ | [`createtime`](#ods-settlement-records) | 直接 | 字段重命名 |
| 9 | `pay_time` | TIMESTAMPTZ | [`paytime`](#ods-settlement-records) | 直接 | 字段重命名 |
| 10 | `settle_type` | INTEGER | [`settletype`](#ods-settlement-records) | 直接 | 字段重命名 |
| 11 | `revoke_order_id` | BIGINT | [`revokeorderid`](#ods-settlement-records) | 直接 | 字段重命名 |
| 12 | `member_id` | BIGINT | [`memberid`](#ods-settlement-records) | 直接 | 字段重命名 |
| 13 | `member_name` | VARCHAR(100) | [`membername`](#ods-settlement-records) | 直接 | 字段重命名 |
| 14 | `member_phone` | VARCHAR(50) | [`memberphone`](#ods-settlement-records) | 直接 | 字段重命名 |
| 15 | `member_card_account_id` | BIGINT | [`tenantmembercardid`](#ods-settlement-records) | 直接 | 字段重命名 |
| 16 | `member_card_type_name` | VARCHAR(100) | [`membercardtypename`](#ods-settlement-records) | 直接 | 字段重命名 |
| 17 | `is_bind_member` | BOOLEAN | [`isbindmember`](#ods-settlement-records) | 直接 | 字段重命名 |
| 18 | `member_discount_amount` | NUMERIC(18,2) | [`memberdiscountamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 19 | `consume_money` | NUMERIC(18,2) | [`consumemoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 20 | `table_charge_money` | NUMERIC(18,2) | [`tablechargemoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 21 | `goods_money` | NUMERIC(18,2) | [`goodsmoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 22 | `real_goods_money` | NUMERIC(18,2) | [`realgoodsmoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 23 | `assistant_pd_money` | NUMERIC(18,2) | [`assistantpdmoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 24 | `assistant_cx_money` | NUMERIC(18,2) | [`assistantcxmoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 25 | `adjust_amount` | NUMERIC(18,2) | [`adjustamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 26 | `pay_amount` | NUMERIC(18,2) | [`payamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 27 | `balance_amount` | NUMERIC(18,2) | [`balanceamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 28 | `recharge_card_amount` | NUMERIC(18,2) | [`rechargecardamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 29 | `gift_card_amount` | NUMERIC(18,2) | [`giftcardamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 30 | `coupon_amount` | NUMERIC(18,2) | [`couponamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 31 | `rounding_amount` | NUMERIC(18,2) | [`roundingamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 32 | `point_amount` | NUMERIC(18,2) | [`pointamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 33 | `electricity_money` | NUMERIC(18,2) | [`electricitymoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 34 | `real_electricity_money` | NUMERIC(18,2) | [`realelectricitymoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 35 | `electricity_adjust_money` | NUMERIC(18,2) | [`electricityadjustmoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 36 | `pl_coupon_sale_amount` | NUMERIC(18,2) | [`plcouponsaleamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 37 | `mervou_sales_amount` | NUMERIC(18,2) | [`mervousalesamount`](#ods-settlement-records) | 直接 | 字段重命名 |
### DWD: `dwd.dwd_settlement_head_ex` — 事实(扩展) (30 列) [🔗 ODS](#ods-settlement-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `order_settle_id` | BIGINT | [`id`](#ods-settlement-records) | 直接 | 字段重命名 |
| 2 | `serial_number` | INTEGER | [`serialnumber`](#ods-settlement-records) | 直接 | 字段重命名 |
| 3 | `settle_status` | INTEGER | [`settlestatus`](#ods-settlement-records) | 直接 | 字段重命名 |
| 4 | `can_be_revoked` | BOOLEAN | [`canberevoked`](#ods-settlement-records) | → boolean | 字段重命名 |
| 5 | `revoke_order_name` | VARCHAR(100) | [`revokeordername`](#ods-settlement-records) | 直接 | 字段重命名 |
| 6 | `revoke_time` | TIMESTAMPTZ | [`revoketime`](#ods-settlement-records) | 直接 | 字段重命名 |
| 7 | `is_first_order` | BOOLEAN | [`isfirst`](#ods-settlement-records) | → boolean | 字段重命名 |
| 8 | `service_money` | NUMERIC(18,2) | [`servicemoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 9 | `cash_amount` | NUMERIC(18,2) | [`cashamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 10 | `card_amount` | NUMERIC(18,2) | [`cardamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 11 | `online_amount` | NUMERIC(18,2) | [`onlineamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 12 | `refund_amount` | NUMERIC(18,2) | [`refundamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 13 | `prepay_money` | NUMERIC(18,2) | [`prepaymoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 14 | `payment_method` | INTEGER | [`paymentmethod`](#ods-settlement-records) | 直接 | 字段重命名 |
| 15 | `coupon_sale_amount` | NUMERIC(18,2) | [`couponsaleamount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 16 | `all_coupon_discount` | NUMERIC(18,2) | [`allcoupondiscount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 17 | `goods_promotion_money` | NUMERIC(18,2) | [`goodspromotionmoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 18 | `assistant_promotion_money` | NUMERIC(18,2) | [`assistantpromotionmoney`](#ods-settlement-records) | 直接 | 字段重命名 |
| 19 | `activity_discount` | NUMERIC(18,2) | [`activitydiscount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 20 | `assistant_manual_discount` | NUMERIC(18,2) | [`assistantmanualdiscount`](#ods-settlement-records) | 直接 | 字段重命名 |
| 21 | `point_discount_price` | NUMERIC(18,2) | [`pointdiscountprice`](#ods-settlement-records) | 直接 | 字段重命名 |
| 22 | `point_discount_cost` | NUMERIC(18,2) | [`pointdiscountcost`](#ods-settlement-records) | 直接 | 字段重命名 |
| 23 | `is_use_coupon` | BOOLEAN | [`isusecoupon`](#ods-settlement-records) | → boolean | 字段重命名 |
| 24 | `is_use_discount` | BOOLEAN | [`isusediscount`](#ods-settlement-records) | → boolean | 字段重命名 |
| 25 | `is_activity` | BOOLEAN | [`isactivity`](#ods-settlement-records) | → boolean | 字段重命名 |
| 26 | `operator_name` | VARCHAR(100) | [`operatorname`](#ods-settlement-records) | 直接 | 字段重命名 |
| 27 | `salesman_name` | VARCHAR(100) | [`salesmanname`](#ods-settlement-records) | 直接 | 字段重命名 |
| 28 | `order_remark` | VARCHAR(255) | [`orderremark`](#ods-settlement-records) | 直接 | 字段重命名 |
| 29 | `operator_id` | BIGINT | [`operatorid`](#ods-settlement-records) | 直接 | 字段重命名 |
| 30 | `salesman_user_id` | BIGINT | [`salesmanuserid`](#ods-settlement-records) | 直接 | 字段重命名 |
---
## 台费计费流水 (`table_fee_transactions`)
- 任务编码: `ODS_TABLE_USE`
- API 端点: `/Site/GetSiteTableOrderDetails`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 200
### API 源字段(42 个) [🔗 ODS](#ods-table-fee-transactions)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteProfile` | object | {"id": 2790685415443269, "org_id": 27906... | — | 📦 嵌套对象,不直接映射 |
| 2 | `id` | integer | 3093859291416901 | [`id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 3 | `add_clock_seconds` | integer | 0 | [`add_clock_seconds`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 4 | `activity_discount_amount` | number | 0.0 | [`activity_discount_amount`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 5 | `adjust_amount` | number | 0.0 | [`adjust_amount`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 6 | `coupon_promotion_amount` | number | 96.0 | [`coupon_promotion_amount`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 7 | `create_time` | string | 2026-02-14 00:16:27 | [`create_time`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 8 | `fee_total` | number | 0.0 | [`fee_total`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 9 | `is_delete` | integer | 0 | [`is_delete`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 10 | `is_single_order` | integer | 1 | [`is_single_order`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 11 | `last_use_time` | string | 2026-02-14 00:15:53 | [`last_use_time`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 12 | `ledger_amount` | number | 96.0 | [`ledger_amount`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 13 | `ledger_count` | integer | 7200 | [`ledger_count`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 14 | `ledger_end_time` | string | 2026-02-14 00:15:53 | [`ledger_end_time`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 15 | `ledger_name` | string | A15 | [`ledger_name`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 16 | `ledger_start_time` | string | 2026-02-13 22:15:53 | [`ledger_start_time`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 17 | `ledger_status` | integer | 1 | [`ledger_status`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 18 | `ledger_unit_price` | number | 48.0 | [`ledger_unit_price`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 19 | `member_discount_amount` | number | 0.0 | [`member_discount_amount`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 20 | `member_id` | integer | 0 | [`member_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 21 | `mgmt_fee` | number | 0.0 | [`mgmt_fee`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 22 | `operator_id` | integer | 2790687322443013 | [`operator_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 23 | `operator_name` | string | 收银员:郑丽珊 | [`operator_name`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 24 | `order_consumption_type` | integer | 3 | [`order_consumption_type`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 25 | `order_pay_id` | integer | 0 | [`order_pay_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 26 | `order_settle_id` | integer | 3093859276196037 | [`order_settle_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 27 | `order_trade_no` | integer | 3093740766775621 | [`order_trade_no`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 28 | `real_table_charge_money` | number | 0.0 | [`real_table_charge_money`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 29 | `real_table_use_seconds` | integer | 7200 | [`real_table_use_seconds`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 30 | `real_service_money` | number | 0.0 | [`real_service_money`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 31 | `salesman_name` | string | | [`salesman_name`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 32 | `salesman_org_id` | integer | 0 | [`salesman_org_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 33 | `salesman_user_id` | integer | 0 | [`salesman_user_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 34 | `service_money` | number | 0.0 | [`service_money`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 35 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 36 | `site_table_area_id` | integer | 2791963794329671 | [`site_table_area_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 37 | `site_table_area_name` | string | A区 | [`site_table_area_name`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 38 | `site_table_id` | integer | 2793003506815045 | [`site_table_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 39 | `start_use_time` | string | 2026-02-13 22:15:53 | [`start_use_time`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 40 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 41 | `tenant_table_area_id` | integer | 2791960001957765 | [`tenant_table_area_id`](#ods-table-fee-transactions) | ✅ 同名映射 |
| 42 | `used_card_amount` | number | 0.0 | [`used_card_amount`](#ods-table-fee-transactions) | ✅ 同名映射 |
> 映射统计:41 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.table_fee_transactions` (47 列) [🔗 API](#api-table-fee-transactions)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-table-fee-transactions) | [`table_fee_log_id`](#dwd-dwd-table-fee-log), [`table_fee_log_id`](#dwd-dwd-table-fee-log-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-table-fee-transactions) | [`tenant_id`](#dwd-dwd-table-fee-log) |
| 3 | `site_id` | BIGINT | [`site_id`](#api-table-fee-transactions) | [`site_id`](#dwd-dim-site), [`site_id`](#dwd-dim-site-ex), [`site_id`](#dwd-dwd-table-fee-log) |
| 4 | `siteProfile` | JSONB | [`siteProfile`](#api-table-fee-transactions) | [`org_id`](#dwd-dim-site), [`tenant_id`](#dwd-dim-site), [`shop_name`](#dwd-dim-site) +29 |
| 5 | `site_table_id` | BIGINT | [`site_table_id`](#api-table-fee-transactions) | [`site_table_id`](#dwd-dwd-table-fee-log) |
| 6 | `site_table_area_id` | BIGINT | [`site_table_area_id`](#api-table-fee-transactions) | [`site_table_area_id`](#dwd-dwd-table-fee-log) |
| 7 | `site_table_area_name` | TEXT | [`site_table_area_name`](#api-table-fee-transactions) | [`site_table_area_name`](#dwd-dwd-table-fee-log) |
| 8 | `tenant_table_area_id` | BIGINT | [`tenant_table_area_id`](#api-table-fee-transactions) | [`tenant_table_area_id`](#dwd-dwd-table-fee-log) |
| 9 | `order_trade_no` | TEXT | [`order_trade_no`](#api-table-fee-transactions) | [`order_trade_no`](#dwd-dwd-table-fee-log) |
| 10 | `order_pay_id` | BIGINT | [`order_pay_id`](#api-table-fee-transactions) | [`order_pay_id`](#dwd-dwd-table-fee-log) |
| 11 | `order_settle_id` | BIGINT | [`order_settle_id`](#api-table-fee-transactions) | [`order_settle_id`](#dwd-dwd-table-fee-log) |
| 12 | `ledger_name` | TEXT | [`ledger_name`](#api-table-fee-transactions) | [`ledger_name`](#dwd-dwd-table-fee-log) |
| 13 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#api-table-fee-transactions) | [`ledger_amount`](#dwd-dwd-table-fee-log) |
| 14 | `ledger_count` | NUMERIC(18,4) | [`ledger_count`](#api-table-fee-transactions) | [`ledger_count`](#dwd-dwd-table-fee-log) |
| 15 | `ledger_unit_price` | NUMERIC(18,4) | [`ledger_unit_price`](#api-table-fee-transactions) | [`ledger_unit_price`](#dwd-dwd-table-fee-log) |
| 16 | `ledger_status` | INT | [`ledger_status`](#api-table-fee-transactions) | [`ledger_status`](#dwd-dwd-table-fee-log) |
| 17 | `ledger_start_time` | TIMESTAMP | [`ledger_start_time`](#api-table-fee-transactions) | [`ledger_start_time`](#dwd-dwd-table-fee-log-ex) |
| 18 | `ledger_end_time` | TIMESTAMP | [`ledger_end_time`](#api-table-fee-transactions) | [`ledger_end_time`](#dwd-dwd-table-fee-log) |
| 19 | `start_use_time` | TIMESTAMP | [`start_use_time`](#api-table-fee-transactions) | [`start_use_time`](#dwd-dwd-table-fee-log) |
| 20 | `last_use_time` | TIMESTAMP | [`last_use_time`](#api-table-fee-transactions) | [`last_use_time`](#dwd-dwd-table-fee-log-ex) |
| 21 | `real_table_use_seconds` | INT | [`real_table_use_seconds`](#api-table-fee-transactions) | [`real_table_use_seconds`](#dwd-dwd-table-fee-log) |
| 22 | `real_table_charge_money` | NUMERIC(18,2) | [`real_table_charge_money`](#api-table-fee-transactions) | [`real_table_charge_money`](#dwd-dwd-table-fee-log) |
| 23 | `add_clock_seconds` | INT | [`add_clock_seconds`](#api-table-fee-transactions) | [`add_clock_seconds`](#dwd-dwd-table-fee-log) |
| 24 | `adjust_amount` | NUMERIC(18,2) | [`adjust_amount`](#api-table-fee-transactions) | [`adjust_amount`](#dwd-dwd-table-fee-log) |
| 25 | `coupon_promotion_amount` | NUMERIC(18,2) | [`coupon_promotion_amount`](#api-table-fee-transactions) | [`coupon_promotion_amount`](#dwd-dwd-table-fee-log) |
| 26 | `member_discount_amount` | NUMERIC(18,2) | [`member_discount_amount`](#api-table-fee-transactions) | [`member_discount_amount`](#dwd-dwd-table-fee-log) |
| 27 | `used_card_amount` | NUMERIC(18,2) | [`used_card_amount`](#api-table-fee-transactions) | [`used_card_amount`](#dwd-dwd-table-fee-log-ex) |
| 28 | `mgmt_fee` | NUMERIC(18,2) | [`mgmt_fee`](#api-table-fee-transactions) | [`mgmt_fee`](#dwd-dwd-table-fee-log-ex) |
| 29 | `service_money` | NUMERIC(18,2) | [`service_money`](#api-table-fee-transactions) | [`service_money`](#dwd-dwd-table-fee-log-ex) |
| 30 | `fee_total` | NUMERIC(18,2) | [`fee_total`](#api-table-fee-transactions) | [`fee_total`](#dwd-dwd-table-fee-log-ex) |
| 31 | `is_single_order` | INT | [`is_single_order`](#api-table-fee-transactions) | [`is_single_order`](#dwd-dwd-table-fee-log) |
| 32 | `is_delete` | INT | [`is_delete`](#api-table-fee-transactions) | [`is_delete`](#dwd-dwd-table-fee-log) |
| 33 | `member_id` | BIGINT | [`member_id`](#api-table-fee-transactions) | [`member_id`](#dwd-dwd-table-fee-log) |
| 34 | `operator_id` | BIGINT | [`operator_id`](#api-table-fee-transactions) | [`operator_id`](#dwd-dwd-table-fee-log-ex) |
| 35 | `operator_name` | TEXT | [`operator_name`](#api-table-fee-transactions) | [`operator_name`](#dwd-dwd-table-fee-log-ex) |
| 36 | `salesman_name` | TEXT | [`salesman_name`](#api-table-fee-transactions) | [`salesman_name`](#dwd-dwd-table-fee-log-ex) |
| 37 | `salesman_org_id` | BIGINT | [`salesman_org_id`](#api-table-fee-transactions) | [`salesman_org_id`](#dwd-dwd-table-fee-log-ex) |
| 38 | `salesman_user_id` | BIGINT | [`salesman_user_id`](#api-table-fee-transactions) | [`salesman_user_id`](#dwd-dwd-table-fee-log-ex) |
| 39 | `create_time` | TIMESTAMP | [`create_time`](#api-table-fee-transactions) | [`create_time`](#dwd-dwd-table-fee-log) |
| 40 | `activity_discount_amount` | NUMERIC(18,2) | [`activity_discount_amount`](#api-table-fee-transactions) | [`activity_discount_amount`](#dwd-dwd-table-fee-log) |
| 41 | `order_consumption_type` | INT | [`order_consumption_type`](#api-table-fee-transactions) | [`order_consumption_type`](#dwd-dwd-table-fee-log-ex) |
| 42 | `real_service_money` | NUMERIC(18,2) | [`real_service_money`](#api-table-fee-transactions) | [`real_service_money`](#dwd-dwd-table-fee-log) |
*ETL 元数据列(5 个):`payload`, `content_hash`, `source_file`, `source_endpoint`, `fetched_at`*
### DWD: `dwd.dim_site` — 维度 (17 列) [🔗 ODS](#ods-table-fee-transactions)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `site_id` | BIGINT | [`site_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 2 | `org_id` | BIGINT | [`siteprofile->>'org_id'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 3 | `tenant_id` | BIGINT | [`siteprofile->>'tenant_id'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 4 | `shop_name` | TEXT | [`siteprofile->>'shop_name'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 5 | `site_label` | TEXT | [`siteprofile->>'site_label'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 6 | `full_address` | TEXT | [`siteprofile->>'full_address'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 7 | `address` | TEXT | [`siteprofile->>'address'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 8 | `longitude` | NUMERIC(10,6) | [`siteprofile->>'longitude'`](#ods-table-fee-transactions) | → numeric | JSONB 提取 |
| 9 | `latitude` | NUMERIC(10,6) | [`siteprofile->>'latitude'`](#ods-table-fee-transactions) | → numeric | JSONB 提取 |
| 10 | `tenant_site_region_id` | BIGINT | [`siteprofile->>'tenant_site_region_id'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 11 | `business_tel` | TEXT | [`siteprofile->>'business_tel'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 12 | `site_type` | INTEGER | [`siteprofile->>'site_type'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 13 | `shop_status` | INTEGER | [`siteprofile->>'shop_status'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 14 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 15 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 16 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 17 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dim_site_ex` — 维度(扩展) (25 列) [🔗 ODS](#ods-table-fee-transactions)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `site_id` | BIGINT | [`site_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 2 | `avatar` | TEXT | [`siteprofile->>'avatar'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 3 | `address` | TEXT | [`siteprofile->>'address'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 4 | `longitude` | NUMERIC(9,6) | [`siteprofile->>'longitude'`](#ods-table-fee-transactions) | → numeric | JSONB 提取 |
| 5 | `latitude` | NUMERIC(9,6) | [`siteprofile->>'latitude'`](#ods-table-fee-transactions) | → numeric | JSONB 提取 |
| 6 | `tenant_site_region_id` | BIGINT | [`siteprofile->>'tenant_site_region_id'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 7 | `auto_light` | INTEGER | [`siteprofile->>'auto_light'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 8 | `light_status` | INTEGER | [`siteprofile->>'light_status'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 9 | `light_type` | INTEGER | [`siteprofile->>'light_type'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 10 | `light_token` | TEXT | [`siteprofile->>'light_token'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 11 | `site_type` | INTEGER | [`siteprofile->>'site_type'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 12 | `site_label` | TEXT | [`siteprofile->>'site_label'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 13 | `attendance_enabled` | INTEGER | [`siteprofile->>'attendance_enabled'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 14 | `attendance_distance` | INTEGER | [`siteprofile->>'attendance_distance'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 15 | `customer_service_qrcode` | TEXT | [`siteprofile->>'customer_service_qrcode'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 16 | `customer_service_wechat` | TEXT | [`siteprofile->>'customer_service_wechat'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 17 | `fixed_pay_qrCode` | TEXT | [`siteprofile->>'fixed_pay_qrCode'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 18 | `prod_env` | TEXT | [`siteprofile->>'prod_env'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 19 | `shop_status` | INTEGER | [`siteprofile->>'shop_status'`](#ods-table-fee-transactions) | 直接 | JSONB 提取 |
| 20 | `create_time` | TIMESTAMPTZ | [`siteprofile->>'create_time'`](#ods-table-fee-transactions) | → timestamptz | JSONB 提取 |
| 21 | `update_time` | TIMESTAMPTZ | [`siteprofile->>'update_time'`](#ods-table-fee-transactions) | → timestamptz | JSONB 提取 |
| 22 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 23 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 24 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 25 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dwd_table_fee_log` — 事实 (29 列) [🔗 ODS](#ods-table-fee-transactions)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `table_fee_log_id` | BIGINT | [`id`](#ods-table-fee-transactions) | 直接 | 字段重命名 |
| 2 | `order_trade_no` | BIGINT | [`order_trade_no`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 3 | `order_settle_id` | BIGINT | [`order_settle_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 4 | `order_pay_id` | BIGINT | [`order_pay_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 5 | `tenant_id` | BIGINT | [`tenant_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 6 | `site_id` | BIGINT | [`site_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 7 | `site_table_id` | BIGINT | [`site_table_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 8 | `site_table_area_id` | BIGINT | [`site_table_area_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 9 | `site_table_area_name` | VARCHAR(64) | [`site_table_area_name`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 10 | `tenant_table_area_id` | BIGINT | [`tenant_table_area_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 11 | `member_id` | BIGINT | [`member_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 12 | `ledger_name` | VARCHAR(64) | [`ledger_name`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 13 | `ledger_unit_price` | NUMERIC(18,2) | [`ledger_unit_price`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 14 | `ledger_count` | INTEGER | [`ledger_count`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 15 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 16 | `real_table_charge_money` | NUMERIC(18,2) | [`real_table_charge_money`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 17 | `coupon_promotion_amount` | NUMERIC(18,2) | [`coupon_promotion_amount`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 18 | `member_discount_amount` | NUMERIC(18,2) | [`member_discount_amount`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 19 | `adjust_amount` | NUMERIC(18,2) | [`adjust_amount`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 20 | `real_table_use_seconds` | INTEGER | [`real_table_use_seconds`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 21 | `add_clock_seconds` | INTEGER | [`add_clock_seconds`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 22 | `start_use_time` | TIMESTAMPTZ | [`start_use_time`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 23 | `ledger_end_time` | TIMESTAMPTZ | [`ledger_end_time`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 24 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 25 | `ledger_status` | INTEGER | [`ledger_status`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 26 | `is_single_order` | INTEGER | [`is_single_order`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 27 | `is_delete` | INTEGER | [`is_delete`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 28 | `activity_discount_amount` | NUMERIC(18,2) | [`activity_discount_amount`](#ods-table-fee-transactions) | 直接 | |
| 29 | `real_service_money` | NUMERIC(18,2) | [`real_service_money`](#ods-table-fee-transactions) | 直接 | |
### DWD: `dwd.dwd_table_fee_log_ex` — 事实(扩展) (13 列) [🔗 ODS](#ods-table-fee-transactions)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `table_fee_log_id` | BIGINT | [`id`](#ods-table-fee-transactions) | 直接 | 字段重命名 |
| 2 | `operator_name` | VARCHAR(64) | [`operator_name`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 3 | `salesman_name` | VARCHAR(64) | [`salesman_name`](#ods-table-fee-transactions) | 直接 | |
| 4 | `used_card_amount` | NUMERIC(18,2) | [`used_card_amount`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 5 | `service_money` | NUMERIC(18,2) | [`service_money`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 6 | `mgmt_fee` | NUMERIC(18,2) | [`mgmt_fee`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 7 | `fee_total` | NUMERIC(18,2) | [`fee_total`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 8 | `ledger_start_time` | TIMESTAMPTZ | [`ledger_start_time`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 9 | `last_use_time` | TIMESTAMPTZ | [`last_use_time`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 10 | `operator_id` | BIGINT | [`operator_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 11 | `salesman_user_id` | BIGINT | [`salesman_user_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 12 | `salesman_org_id` | BIGINT | [`salesman_org_id`](#ods-table-fee-transactions) | 直接 | 同名直传 |
| 13 | `order_consumption_type` | INTEGER | [`order_consumption_type`](#ods-table-fee-transactions) | 直接 | |
---
## 助教服务流水 (`assistant_service_records`)
- 任务编码: `ODS_ASSISTANT_LEDGER`
- API 端点: `/AssistantPerformance/GetOrderAssistantDetails`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 200
### API 源字段(66 个) [🔗 ODS](#ods-assistant-service-records)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `assistantNo` | string | 15 | [`assistantNo`](#ods-assistant-service-records) | ✅ 同名映射 |
| 2 | `nickname` | string | 七七 | [`nickname`](#ods-assistant-service-records) | ✅ 同名映射 |
| 3 | `levelName` | string | 中级 | [`levelname`](#ods-assistant-service-records) | 🔄 大小写不敏感匹配 |
| 4 | `assistantTeamName` | string | 1组 | [`assistantteamname`](#ods-assistant-service-records) | 🔄 大小写不敏感匹配 |
| 5 | `assistantName` | string | 邹绮 | [`assistantName`](#ods-assistant-service-records) | ✅ 同名映射 |
| 6 | `tableName` | string | 发财 | [`tablename`](#ods-assistant-service-records) | 🔄 大小写不敏感匹配 |
| 7 | `siteProfile` | object | {"id": 2790685415443269, "org_id": 27906... | — | 📦 嵌套对象,不直接映射 |
| 8 | `skillName` | string | 基础课 | [`skillname`](#ods-assistant-service-records) | 🔄 大小写不敏感匹配 |
| 9 | `id` | integer | 3092712427276485 | [`id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 10 | `order_trade_no` | integer | 3092230766020741 | [`order_trade_no`](#ods-assistant-service-records) | ✅ 同名映射 |
| 11 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 12 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 13 | `operator_id` | integer | 2790687322443013 | [`operator_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 14 | `operator_name` | string | 收银员:郑丽珊 | [`operator_name`](#ods-assistant-service-records) | ✅ 同名映射 |
| 15 | `order_settle_id` | integer | 3092711340902597 | [`order_settle_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 16 | `ledger_name` | string | 15-七七 | [`ledger_name`](#ods-assistant-service-records) | ✅ 同名映射 |
| 17 | `ledger_group_name` | string | | [`ledger_group_name`](#ods-assistant-service-records) | ✅ 同名映射 |
| 18 | `ledger_unit_price` | number | 108.0 | [`ledger_unit_price`](#ods-assistant-service-records) | ✅ 同名映射 |
| 19 | `ledger_count` | integer | 21544 | [`ledger_count`](#ods-assistant-service-records) | ✅ 同名映射 |
| 20 | `ledger_amount` | number | 646.32 | [`ledger_amount`](#ods-assistant-service-records) | ✅ 同名映射 |
| 21 | `order_pay_id` | integer | 0 | [`order_pay_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 22 | `create_time` | string | 2026-02-13 04:49:48 | [`create_time`](#ods-assistant-service-records) | ✅ 同名映射 |
| 23 | `is_delete` | integer | 0 | [`is_delete`](#ods-assistant-service-records) | ✅ 同名映射 |
| 24 | `assistant_team_id` | integer | 2792011585884037 | [`assistant_team_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 25 | `assistant_level` | integer | 20 | [`assistant_level`](#ods-assistant-service-records) | ✅ 同名映射 |
| 26 | `ledger_start_time` | string | 2026-02-12 21:15:08 | [`ledger_start_time`](#ods-assistant-service-records) | ✅ 同名映射 |
| 27 | `ledger_end_time` | string | 2026-02-13 03:14:14 | [`ledger_end_time`](#ods-assistant-service-records) | ✅ 同名映射 |
| 28 | `is_single_order` | integer | 1 | [`is_single_order`](#ods-assistant-service-records) | ✅ 同名映射 |
| 29 | `order_assistant_id` | integer | 3092265482209605 | [`order_assistant_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 30 | `site_assistant_id` | integer | 2793493699088517 | [`site_assistant_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 31 | `order_assistant_type` | integer | 1 | [`order_assistant_type`](#ods-assistant-service-records) | ✅ 同名映射 |
| 32 | `ledger_status` | integer | 1 | [`ledger_status`](#ods-assistant-service-records) | ✅ 同名映射 |
| 33 | `site_table_id` | integer | 2956248279567557 | [`site_table_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 34 | `projected_income` | number | 538.5 | [`projected_income`](#ods-assistant-service-records) | ✅ 同名映射 |
| 35 | `is_not_responding` | integer | 0 | [`is_not_responding`](#ods-assistant-service-records) | ✅ 同名映射 |
| 36 | `income_seconds` | integer | 21540 | [`income_seconds`](#ods-assistant-service-records) | ✅ 同名映射 |
| 37 | `user_id` | integer | 2793493698596997 | [`user_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 38 | `trash_applicant_id` | integer | 0 | [`trash_applicant_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 39 | `trash_applicant_name` | string | | [`trash_applicant_name`](#ods-assistant-service-records) | ✅ 同名映射 |
| 40 | `is_trash` | integer | 0 | [`is_trash`](#ods-assistant-service-records) | ✅ 同名映射 |
| 41 | `trash_reason` | string | | [`trash_reason`](#ods-assistant-service-records) | ✅ 同名映射 |
| 42 | `real_use_seconds` | integer | 21544 | [`real_use_seconds`](#ods-assistant-service-records) | ✅ 同名映射 |
| 43 | `real_service_money` | number | 0.0 | [`real_service_money`](#ods-assistant-service-records) | ✅ 同名映射 |
| 44 | `add_clock` | integer | 0 | [`add_clock`](#ods-assistant-service-records) | ✅ 同名映射 |
| 45 | `returns_clock` | integer | 0 | [`returns_clock`](#ods-assistant-service-records) | ✅ 同名映射 |
| 46 | `is_confirm` | integer | 2 | [`is_confirm`](#ods-assistant-service-records) | ✅ 同名映射 |
| 47 | `member_discount_amount` | number | 0.0 | [`member_discount_amount`](#ods-assistant-service-records) | ✅ 同名映射 |
| 48 | `manual_discount_amount` | number | 0.0 | [`manual_discount_amount`](#ods-assistant-service-records) | ✅ 同名映射 |
| 49 | `service_money` | number | 0.0 | [`service_money`](#ods-assistant-service-records) | ✅ 同名映射 |
| 50 | `person_org_id` | integer | 2793493698990213 | [`person_org_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 51 | `last_use_time` | string | 2026-02-13 03:14:14 | [`last_use_time`](#ods-assistant-service-records) | ✅ 同名映射 |
| 52 | `salesman_name` | string | | [`salesman_name`](#ods-assistant-service-records) | ✅ 同名映射 |
| 53 | `salesman_user_id` | integer | 0 | [`salesman_user_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 54 | `salesman_org_id` | integer | 0 | [`salesman_org_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 55 | `coupon_deduct_money` | number | 0.0 | [`coupon_deduct_money`](#ods-assistant-service-records) | ✅ 同名映射 |
| 56 | `skill_id` | integer | 2790683529513797 | [`skill_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 57 | `start_use_time` | string | 2026-02-12 21:15:08 | [`start_use_time`](#ods-assistant-service-records) | ✅ 同名映射 |
| 58 | `tenant_member_id` | integer | 2799207522600709 | [`tenant_member_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 59 | `system_member_id` | integer | 2799207521568517 | [`system_member_id`](#ods-assistant-service-records) | ✅ 同名映射 |
| 60 | `skill_grade` | integer | 0 | [`skill_grade`](#ods-assistant-service-records) | ✅ 同名映射 |
| 61 | `service_grade` | integer | 0 | [`service_grade`](#ods-assistant-service-records) | ✅ 同名映射 |
| 62 | `composite_grade` | number | 0.0 | [`composite_grade`](#ods-assistant-service-records) | ✅ 同名映射 |
| 63 | `sum_grade` | number | 0.0 | [`sum_grade`](#ods-assistant-service-records) | ✅ 同名映射 |
| 64 | `get_grade_times` | integer | 0 | [`get_grade_times`](#ods-assistant-service-records) | ✅ 同名映射 |
| 65 | `grade_status` | integer | 1 | [`grade_status`](#ods-assistant-service-records) | ✅ 同名映射 |
| 66 | `composite_grade_time` | string | 0001-01-01 00:00:00 | [`composite_grade_time`](#ods-assistant-service-records) | ✅ 同名映射 |
> 映射统计:65 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.assistant_service_records` (71 列) [🔗 API](#api-assistant-service-records)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-assistant-service-records) | [`assistant_service_id`](#dwd-dwd-assistant-service-log), [`assistant_service_id`](#dwd-dwd-assistant-service-log-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-assistant-service-records) | [`tenant_id`](#dwd-dwd-assistant-service-log) |
| 3 | `site_id` | BIGINT | [`site_id`](#api-assistant-service-records) | [`site_id`](#dwd-dwd-assistant-service-log) |
| 4 | `siteProfile` | JSONB | [`siteProfile`](#api-assistant-service-records) | — |
| 5 | `site_table_id` | BIGINT | [`site_table_id`](#api-assistant-service-records) | [`site_table_id`](#dwd-dwd-assistant-service-log) |
| 6 | `order_settle_id` | BIGINT | [`order_settle_id`](#api-assistant-service-records) | [`order_settle_id`](#dwd-dwd-assistant-service-log) |
| 7 | `order_trade_no` | TEXT | [`order_trade_no`](#api-assistant-service-records) | [`order_trade_no`](#dwd-dwd-assistant-service-log) |
| 8 | `order_pay_id` | BIGINT | [`order_pay_id`](#api-assistant-service-records) | [`order_pay_id`](#dwd-dwd-assistant-service-log) |
| 9 | `order_assistant_id` | BIGINT | [`order_assistant_id`](#api-assistant-service-records) | [`order_assistant_id`](#dwd-dwd-assistant-service-log), [`site_assistant_id`](#dwd-dwd-assistant-service-log) |
| 10 | `order_assistant_type` | INT | [`order_assistant_type`](#api-assistant-service-records) | [`order_assistant_type`](#dwd-dwd-assistant-service-log) |
| 11 | `assistantName` | TEXT | [`assistantName`](#api-assistant-service-records) | [`assistant_name`](#dwd-dwd-assistant-service-log-ex) |
| 12 | `assistantNo` | TEXT | [`assistantNo`](#api-assistant-service-records) | [`assistant_no`](#dwd-dwd-assistant-service-log) |
| 13 | `assistant_level` | TEXT | [`assistant_level`](#api-assistant-service-records) | [`assistant_level`](#dwd-dwd-assistant-service-log) |
| 14 | `levelname` | TEXT | [`levelName`](#api-assistant-service-records) | [`level_name`](#dwd-dwd-assistant-service-log) |
| 15 | `site_assistant_id` | BIGINT | [`site_assistant_id`](#api-assistant-service-records) | — |
| 16 | `skill_id` | BIGINT | [`skill_id`](#api-assistant-service-records) | [`skill_id`](#dwd-dwd-assistant-service-log) |
| 17 | `skillname` | TEXT | [`skillName`](#api-assistant-service-records) | [`skill_name`](#dwd-dwd-assistant-service-log) |
| 18 | `system_member_id` | BIGINT | [`system_member_id`](#api-assistant-service-records) | [`system_member_id`](#dwd-dwd-assistant-service-log) |
| 19 | `tablename` | TEXT | [`tableName`](#api-assistant-service-records) | [`table_name`](#dwd-dwd-assistant-service-log-ex) |
| 20 | `tenant_member_id` | BIGINT | [`tenant_member_id`](#api-assistant-service-records) | [`tenant_member_id`](#dwd-dwd-assistant-service-log) |
| 21 | `user_id` | BIGINT | [`user_id`](#api-assistant-service-records) | [`user_id`](#dwd-dwd-assistant-service-log) |
| 22 | `assistant_team_id` | BIGINT | [`assistant_team_id`](#api-assistant-service-records) | [`assistant_team_id`](#dwd-dwd-assistant-service-log) |
| 23 | `nickname` | TEXT | [`nickname`](#api-assistant-service-records) | [`nickname`](#dwd-dwd-assistant-service-log) |
| 24 | `ledger_name` | TEXT | [`ledger_name`](#api-assistant-service-records) | [`ledger_name`](#dwd-dwd-assistant-service-log-ex) |
| 25 | `ledger_group_name` | TEXT | [`ledger_group_name`](#api-assistant-service-records) | [`ledger_group_name`](#dwd-dwd-assistant-service-log-ex) |
| 26 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#api-assistant-service-records) | [`ledger_amount`](#dwd-dwd-assistant-service-log) |
| 27 | `ledger_count` | NUMERIC(18,4) | [`ledger_count`](#api-assistant-service-records) | [`ledger_count`](#dwd-dwd-assistant-service-log-ex) |
| 28 | `ledger_unit_price` | NUMERIC(18,4) | [`ledger_unit_price`](#api-assistant-service-records) | [`ledger_unit_price`](#dwd-dwd-assistant-service-log) |
| 29 | `ledger_status` | INT | [`ledger_status`](#api-assistant-service-records) | [`ledger_status`](#dwd-dwd-assistant-service-log-ex) |
| 30 | `ledger_start_time` | TIMESTAMP | [`ledger_start_time`](#api-assistant-service-records) | [`ledger_start_time`](#dwd-dwd-assistant-service-log-ex) |
| 31 | `ledger_end_time` | TIMESTAMP | [`ledger_end_time`](#api-assistant-service-records) | [`ledger_end_time`](#dwd-dwd-assistant-service-log-ex) |
| 32 | `manual_discount_amount` | NUMERIC(18,2) | [`manual_discount_amount`](#api-assistant-service-records) | [`manual_discount_amount`](#dwd-dwd-assistant-service-log-ex) |
| 33 | `member_discount_amount` | NUMERIC(18,2) | [`member_discount_amount`](#api-assistant-service-records) | [`member_discount_amount`](#dwd-dwd-assistant-service-log-ex) |
| 34 | `coupon_deduct_money` | NUMERIC(18,2) | [`coupon_deduct_money`](#api-assistant-service-records) | [`coupon_deduct_money`](#dwd-dwd-assistant-service-log) |
| 35 | `service_money` | NUMERIC(18,2) | [`service_money`](#api-assistant-service-records) | [`service_money`](#dwd-dwd-assistant-service-log-ex) |
| 36 | `projected_income` | NUMERIC(18,2) | [`projected_income`](#api-assistant-service-records) | [`projected_income`](#dwd-dwd-assistant-service-log) |
| 37 | `real_use_seconds` | INT | [`real_use_seconds`](#api-assistant-service-records) | [`real_use_seconds`](#dwd-dwd-assistant-service-log) |
| 38 | `income_seconds` | INT | [`income_seconds`](#api-assistant-service-records) | [`income_seconds`](#dwd-dwd-assistant-service-log) |
| 39 | `start_use_time` | TIMESTAMP | [`start_use_time`](#api-assistant-service-records) | [`start_use_time`](#dwd-dwd-assistant-service-log) |
| 40 | `last_use_time` | TIMESTAMP | [`last_use_time`](#api-assistant-service-records) | [`last_use_time`](#dwd-dwd-assistant-service-log) |
| 41 | `create_time` | TIMESTAMP | [`create_time`](#api-assistant-service-records) | [`create_time`](#dwd-dwd-assistant-service-log) |
| 42 | `is_single_order` | INT | [`is_single_order`](#api-assistant-service-records) | [`is_single_order`](#dwd-dwd-assistant-service-log-ex) |
| 43 | `is_delete` | INT | [`is_delete`](#api-assistant-service-records) | [`is_delete`](#dwd-dwd-assistant-service-log) |
| 44 | `is_trash` | INT | [`is_trash`](#api-assistant-service-records) | [`is_trash`](#dwd-dwd-assistant-service-log-ex) |
| 45 | `trash_reason` | TEXT | [`trash_reason`](#api-assistant-service-records) | [`trash_reason`](#dwd-dwd-assistant-service-log-ex) |
| 46 | `trash_applicant_id` | BIGINT | [`trash_applicant_id`](#api-assistant-service-records) | [`trash_applicant_id`](#dwd-dwd-assistant-service-log-ex) |
| 47 | `trash_applicant_name` | TEXT | [`trash_applicant_name`](#api-assistant-service-records) | [`trash_applicant_name`](#dwd-dwd-assistant-service-log-ex) |
| 48 | `operator_id` | BIGINT | [`operator_id`](#api-assistant-service-records) | — |
| 49 | `operator_name` | TEXT | [`operator_name`](#api-assistant-service-records) | — |
| 50 | `salesman_name` | TEXT | [`salesman_name`](#api-assistant-service-records) | [`salesman_name`](#dwd-dwd-assistant-service-log-ex) |
| 51 | `salesman_org_id` | BIGINT | [`salesman_org_id`](#api-assistant-service-records) | [`salesman_org_id`](#dwd-dwd-assistant-service-log-ex) |
| 52 | `salesman_user_id` | BIGINT | [`salesman_user_id`](#api-assistant-service-records) | [`salesman_user_id`](#dwd-dwd-assistant-service-log-ex) |
| 53 | `person_org_id` | BIGINT | [`person_org_id`](#api-assistant-service-records) | [`person_org_id`](#dwd-dwd-assistant-service-log) |
| 54 | `add_clock` | INT | [`add_clock`](#api-assistant-service-records) | [`add_clock`](#dwd-dwd-assistant-service-log) |
| 55 | `returns_clock` | INT | [`returns_clock`](#api-assistant-service-records) | [`returns_clock`](#dwd-dwd-assistant-service-log-ex) |
| 56 | `composite_grade` | NUMERIC(10,2) | [`composite_grade`](#api-assistant-service-records) | [`composite_grade`](#dwd-dwd-assistant-service-log-ex) |
| 57 | `composite_grade_time` | TIMESTAMP | [`composite_grade_time`](#api-assistant-service-records) | [`composite_grade_time`](#dwd-dwd-assistant-service-log-ex) |
| 58 | `skill_grade` | NUMERIC(10,2) | [`skill_grade`](#api-assistant-service-records) | [`skill_grade`](#dwd-dwd-assistant-service-log-ex) |
| 59 | `service_grade` | NUMERIC(10,2) | [`service_grade`](#api-assistant-service-records) | [`service_grade`](#dwd-dwd-assistant-service-log-ex) |
| 60 | `sum_grade` | NUMERIC(10,2) | [`sum_grade`](#api-assistant-service-records) | [`sum_grade`](#dwd-dwd-assistant-service-log-ex) |
| 61 | `grade_status` | INT | [`grade_status`](#api-assistant-service-records) | [`grade_status`](#dwd-dwd-assistant-service-log-ex) |
| 62 | `get_grade_times` | INT | [`get_grade_times`](#api-assistant-service-records) | [`get_grade_times`](#dwd-dwd-assistant-service-log-ex) |
| 63 | `is_not_responding` | INT | [`is_not_responding`](#api-assistant-service-records) | [`is_not_responding`](#dwd-dwd-assistant-service-log-ex) |
| 64 | `is_confirm` | INT | [`is_confirm`](#api-assistant-service-records) | [`is_confirm`](#dwd-dwd-assistant-service-log-ex) |
| 65 | `assistantteamname` | TEXT | [`assistantTeamName`](#api-assistant-service-records) | [`assistant_team_name`](#dwd-dwd-assistant-service-log-ex) |
| 66 | `real_service_money` | NUMERIC(18,2) | [`real_service_money`](#api-assistant-service-records) | [`real_service_money`](#dwd-dwd-assistant-service-log) |
*ETL 元数据列(5 个):`payload`, `content_hash`, `source_file`, `source_endpoint`, `fetched_at`*
### DWD: `dwd.dwd_assistant_service_log` — 事实 (33 列) [🔗 ODS](#ods-assistant-service-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `assistant_service_id` | BIGINT | [`id`](#ods-assistant-service-records) | 直接 | 字段重命名 |
| 2 | `order_trade_no` | BIGINT | [`order_trade_no`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 3 | `order_settle_id` | BIGINT | [`order_settle_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 4 | `order_pay_id` | BIGINT | [`order_pay_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 5 | `order_assistant_id` | BIGINT | [`order_assistant_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 6 | `order_assistant_type` | INTEGER | [`order_assistant_type`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 7 | `tenant_id` | BIGINT | [`tenant_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 8 | `site_id` | BIGINT | [`site_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 9 | `site_table_id` | BIGINT | [`site_table_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 10 | `tenant_member_id` | BIGINT | [`tenant_member_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 11 | `system_member_id` | BIGINT | [`system_member_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 12 | `assistant_no` | VARCHAR(64) | [`assistantno`](#ods-assistant-service-records) | 直接 | 字段重命名 |
| 13 | `nickname` | VARCHAR(64) | [`nickname`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 14 | `site_assistant_id` | BIGINT | [`order_assistant_id`](#ods-assistant-service-records) | 直接 | 字段重命名 |
| 15 | `user_id` | BIGINT | [`user_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 16 | `assistant_team_id` | BIGINT | [`assistant_team_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 17 | `person_org_id` | BIGINT | [`person_org_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 18 | `assistant_level` | INTEGER | [`assistant_level`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 19 | `level_name` | VARCHAR(64) | [`levelname`](#ods-assistant-service-records) | 直接 | 字段重命名 |
| 20 | `skill_id` | BIGINT | [`skill_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 21 | `skill_name` | VARCHAR(64) | [`skillname`](#ods-assistant-service-records) | 直接 | 字段重命名 |
| 22 | `ledger_unit_price` | NUMERIC(10,2) | [`ledger_unit_price`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 23 | `ledger_amount` | NUMERIC(10,2) | [`ledger_amount`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 24 | `projected_income` | NUMERIC(10,2) | [`projected_income`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 25 | `coupon_deduct_money` | NUMERIC(10,2) | [`coupon_deduct_money`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 26 | `income_seconds` | INTEGER | [`income_seconds`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 27 | `real_use_seconds` | INTEGER | [`real_use_seconds`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 28 | `add_clock` | INTEGER | [`add_clock`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 29 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 30 | `start_use_time` | TIMESTAMPTZ | [`start_use_time`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 31 | `last_use_time` | TIMESTAMPTZ | [`last_use_time`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 32 | `is_delete` | INTEGER | [`is_delete`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 33 | `real_service_money` | NUMERIC(18,2) | [`real_service_money`](#ods-assistant-service-records) | 直接 | |
### DWD: `dwd.dwd_assistant_service_log_ex` — 事实(扩展) (31 列) [🔗 ODS](#ods-assistant-service-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `assistant_service_id` | BIGINT | [`id`](#ods-assistant-service-records) | 直接 | 字段重命名 |
| 2 | `table_name` | VARCHAR(64) | [`tablename`](#ods-assistant-service-records) | 直接 | 字段重命名 |
| 3 | `assistant_name` | VARCHAR(64) | [`assistantname`](#ods-assistant-service-records) | 直接 | 字段重命名 |
| 4 | `ledger_name` | VARCHAR(128) | [`ledger_name`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 5 | `ledger_group_name` | VARCHAR(128) | [`ledger_group_name`](#ods-assistant-service-records) | 直接 | |
| 6 | `ledger_count` | INTEGER | [`ledger_count`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 7 | `member_discount_amount` | NUMERIC(10,2) | [`member_discount_amount`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 8 | `manual_discount_amount` | NUMERIC(10,2) | [`manual_discount_amount`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 9 | `service_money` | NUMERIC(10,2) | [`service_money`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 10 | `returns_clock` | INTEGER | [`returns_clock`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 11 | `ledger_start_time` | TIMESTAMPTZ | [`ledger_start_time`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 12 | `ledger_end_time` | TIMESTAMPTZ | [`ledger_end_time`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 13 | `ledger_status` | INTEGER | [`ledger_status`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 14 | `is_confirm` | INTEGER | [`is_confirm`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 15 | `is_single_order` | INTEGER | [`is_single_order`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 16 | `is_not_responding` | INTEGER | [`is_not_responding`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 17 | `is_trash` | INTEGER | [`is_trash`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 18 | `trash_applicant_id` | BIGINT | [`trash_applicant_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 19 | `trash_applicant_name` | VARCHAR(64) | [`trash_applicant_name`](#ods-assistant-service-records) | 直接 | |
| 20 | `trash_reason` | VARCHAR(255) | [`trash_reason`](#ods-assistant-service-records) | 直接 | |
| 21 | `salesman_user_id` | BIGINT | [`salesman_user_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 22 | `salesman_name` | VARCHAR(64) | [`salesman_name`](#ods-assistant-service-records) | 直接 | |
| 23 | `salesman_org_id` | BIGINT | [`salesman_org_id`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 24 | `skill_grade` | INTEGER | [`skill_grade`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 25 | `service_grade` | INTEGER | [`service_grade`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 26 | `composite_grade` | NUMERIC(5,2) | [`composite_grade`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 27 | `sum_grade` | NUMERIC(10,2) | [`sum_grade`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 28 | `get_grade_times` | INTEGER | [`get_grade_times`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 29 | `grade_status` | INTEGER | [`grade_status`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 30 | `composite_grade_time` | TIMESTAMPTZ | [`composite_grade_time`](#ods-assistant-service-records) | 直接 | 同名直传 |
| 31 | `assistant_team_name` | TEXT | [`assistantteamname`](#ods-assistant-service-records) | 直接 | 字段重命名 |
---
## 助教废除记录 (`assistant_cancellation_records`)
- 任务编码: `ODS_ASSISTANT_ABOLISH`
- API 端点: `/AssistantPerformance/GetAbolitionAssistant`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 79
### API 源字段(13 个) [🔗 ODS](#ods-assistant-cancellation-records)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteProfile` | object | {"id": 2790685415443269, "org_id": 27906... | — | 📦 嵌套对象,不直接映射 |
| 2 | `createTime` | string | 2026-01-29 02:47:00 | [`createTime`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 3 | `id` | integer | 3071358041819077 | [`id`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 4 | `siteId` | integer | 2790685415443269 | [`siteId`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 5 | `tableAreaId` | integer | 2791963887030341 | [`tableAreaId`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 6 | `tableId` | integer | 2793023960600645 | [`tableId`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 7 | `tableArea` | string | 麻将房 | [`tableArea`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 8 | `tableName` | string | M2 | [`tableName`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 9 | `assistantOn` | string | 6 | [`assistantOn`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 10 | `assistantName` | string | 乔西 | [`assistantName`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 11 | `pdChargeMinutes` | integer | 3600 | [`pdChargeMinutes`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 12 | `assistantAbolishAmount` | number | 190.0 | [`assistantAbolishAmount`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
| 13 | `trashReason` | string | | [`trashReason`](#ods-assistant-cancellation-records) | ✅ 同名映射 |
> 映射统计:12 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.assistant_cancellation_records` (19 列) [🔗 API](#api-assistant-cancellation-records)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-assistant-cancellation-records) | [`assistant_trash_event_id`](#dwd-dwd-assistant-trash-event), [`assistant_trash_event_id`](#dwd-dwd-assistant-trash-event-ex) |
| 2 | `siteId` | BIGINT | [`siteId`](#api-assistant-cancellation-records) | [`site_id`](#dwd-dwd-assistant-trash-event) |
| 3 | `siteProfile` | JSONB | [`siteProfile`](#api-assistant-cancellation-records) | — |
| 4 | `assistantName` | TEXT | [`assistantName`](#api-assistant-cancellation-records) | [`assistant_no`](#dwd-dwd-assistant-trash-event), [`assistant_name`](#dwd-dwd-assistant-trash-event) |
| 5 | `assistantAbolishAmount` | NUMERIC(18,2) | [`assistantAbolishAmount`](#api-assistant-cancellation-records) | [`abolish_amount`](#dwd-dwd-assistant-trash-event) |
| 6 | `assistantOn` | INT | [`assistantOn`](#api-assistant-cancellation-records) | — |
| 7 | `pdChargeMinutes` | INT | [`pdChargeMinutes`](#api-assistant-cancellation-records) | [`charge_minutes_raw`](#dwd-dwd-assistant-trash-event) |
| 8 | `tableAreaId` | BIGINT | [`tableAreaId`](#api-assistant-cancellation-records) | [`table_area_id`](#dwd-dwd-assistant-trash-event) |
| 9 | `tableArea` | TEXT | [`tableArea`](#api-assistant-cancellation-records) | [`table_area_name`](#dwd-dwd-assistant-trash-event-ex) |
| 10 | `tableId` | BIGINT | [`tableId`](#api-assistant-cancellation-records) | [`table_id`](#dwd-dwd-assistant-trash-event) |
| 11 | `tableName` | TEXT | [`tableName`](#api-assistant-cancellation-records) | [`table_name`](#dwd-dwd-assistant-trash-event-ex) |
| 12 | `trashReason` | TEXT | [`trashReason`](#api-assistant-cancellation-records) | [`trash_reason`](#dwd-dwd-assistant-trash-event) |
| 13 | `createTime` | TIMESTAMP | [`createTime`](#api-assistant-cancellation-records) | [`create_time`](#dwd-dwd-assistant-trash-event) |
| 14 | `tenant_id` | BIGINT | — | [`tenant_id`](#dwd-dwd-assistant-trash-event) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dwd_assistant_trash_event` — 事实 (11 列) [🔗 ODS](#ods-assistant-cancellation-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `assistant_trash_event_id` | BIGINT | [`id`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 2 | `site_id` | BIGINT | [`siteid`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 3 | `table_id` | BIGINT | [`tableid`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 4 | `table_area_id` | BIGINT | [`tableareaid`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 5 | `assistant_no` | VARCHAR(32) | [`assistantname`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 6 | `assistant_name` | VARCHAR(64) | [`assistantname`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 7 | `charge_minutes_raw` | INTEGER | [`pdchargeminutes`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 8 | `abolish_amount` | NUMERIC(18,2) | [`assistantabolishamount`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 9 | `trash_reason` | VARCHAR(255) | [`trashreason`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 10 | `create_time` | TIMESTAMPTZ | [`createtime`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 11 | `tenant_id` | BIGINT | [`tenant_id`](#ods-assistant-cancellation-records) | 直接 | |
### DWD: `dwd.dwd_assistant_trash_event_ex` — 事实(扩展) (3 列) [🔗 ODS](#ods-assistant-cancellation-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `assistant_trash_event_id` | BIGINT | [`id`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 2 | `table_name` | VARCHAR(64) | [`tablename`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
| 3 | `table_area_name` | VARCHAR(64) | [`tablearea`](#ods-assistant-cancellation-records) | 直接 | 字段重命名 |
---
## 门店商品销售流水 (`store_goods_sales_records`)
- 任务编码: `ODS_STORE_GOODS_SALES`
- API 端点: `/TenantGoods/GetGoodsSalesList`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 200
### API 源字段(51 个) [🔗 ODS](#ods-store-goods-sales-records)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteId` | integer | 0 | [`siteid`](#ods-store-goods-sales-records) | 🔄 大小写不敏感匹配 |
| 2 | `siteName` | string | 朗朗桌球 | [`sitename`](#ods-store-goods-sales-records) | 🔄 大小写不敏感匹配 |
| 3 | `orderGoodsId` | integer | 0 | [`ordergoodsid`](#ods-store-goods-sales-records) | 🔄 大小写不敏感匹配 |
| 4 | `openSalesman` | integer | 2 | [`openSalesman`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 5 | `id` | integer | 3093864106133701 | [`id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 6 | `cost_money` | number | 0.0 | [`cost_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 7 | `coupon_deduct_money` | number | 0.0 | [`coupon_deduct_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 8 | `coupon_share_money` | number | 0.0 | [`coupon_share_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 9 | `create_time` | string | 2026-02-14 00:21:21 | [`create_time`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 10 | `discount_money` | number | 3.0 | [`discount_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 11 | `discount_price` | number | 7.0 | [`discount_price`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 12 | `goods_remark` | string | | [`goods_remark`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 13 | `is_delete` | integer | 0 | [`is_delete`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 14 | `is_single_order` | integer | 1 | [`is_single_order`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 15 | `ledger_amount` | number | 10.0 | [`ledger_amount`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 16 | `ledger_count` | integer | 1 | [`ledger_count`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 17 | `ledger_group_name` | string | 酒水 | [`ledger_group_name`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 18 | `ledger_name` | string | 哇米诺豆奶 | [`ledger_name`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 19 | `ledger_status` | integer | 1 | [`ledger_status`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 20 | `ledger_unit_price` | number | 10.0 | [`ledger_unit_price`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 21 | `member_coupon_id` | integer | 0 | [`member_coupon_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 22 | `member_discount_amount` | number | 0.0 | [`member_discount_amount`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 23 | `operator_id` | integer | 2790687322443013 | [`operator_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 24 | `operator_name` | string | 收银员:郑丽珊 | [`operator_name`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 25 | `option_coupon_deduct_money` | number | 0.0 | [`option_coupon_deduct_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 26 | `option_member_discount_money` | number | 0.0 | [`option_member_discount_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 27 | `option_price` | number | 0.0 | [`option_price`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 28 | `option_value_name` | string | | [`option_value_name`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 29 | `order_coupon_id` | integer | 0 | [`order_coupon_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 30 | `order_goods_id` | integer | 3093864075495621 | [`order_goods_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 31 | `order_pay_id` | integer | 0 | [`order_pay_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 32 | `order_settle_id` | integer | 3093864077166789 | [`order_settle_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 33 | `order_trade_no` | integer | 3093864074381509 | [`order_trade_no`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 34 | `package_coupon_id` | integer | 0 | [`package_coupon_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 35 | `point_discount_money` | number | 0.0 | [`point_discount_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 36 | `point_discount_money_cost` | number | 0.0 | [`point_discount_money_cost`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 37 | `push_money` | number | 0.0 | [`push_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 38 | `real_goods_money` | number | 7.0 | [`real_goods_money`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 39 | `returns_number` | integer | 0 | [`returns_number`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 40 | `sales_man_org_id` | integer | 0 | [`sales_man_org_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 41 | `sales_type` | integer | 1 | [`sales_type`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 42 | `salesman_name` | string | | [`salesman_name`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 43 | `salesman_role_id` | integer | 0 | [`salesman_role_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 44 | `salesman_user_id` | integer | 0 | [`salesman_user_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 45 | `site_goods_id` | integer | 3004536125639493 | [`site_goods_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 46 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 47 | `site_table_id` | integer | 0 | [`site_table_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 48 | `tenant_goods_business_id` | integer | 2790683528317768 | [`tenant_goods_business_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 49 | `tenant_goods_category_id` | integer | 2790683528350540 | [`tenant_goods_category_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 50 | `tenant_goods_id` | integer | 3004531315313413 | [`tenant_goods_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
| 51 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-store-goods-sales-records) | ✅ 同名映射 |
> 映射统计:51 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.store_goods_sales_records` (56 列) [🔗 API](#api-store-goods-sales-records)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-store-goods-sales-records) | [`store_goods_sale_id`](#dwd-dwd-store-goods-sale), [`store_goods_sale_id`](#dwd-dwd-store-goods-sale-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-store-goods-sales-records) | [`tenant_id`](#dwd-dwd-store-goods-sale) |
| 3 | `site_id` | BIGINT | [`site_id`](#api-store-goods-sales-records) | [`site_id`](#dwd-dwd-store-goods-sale) |
| 4 | `siteid` | BIGINT | [`siteId`](#api-store-goods-sales-records) | [`legacy_site_id`](#dwd-dwd-store-goods-sale-ex) |
| 5 | `sitename` | TEXT | [`siteName`](#api-store-goods-sales-records) | [`site_name`](#dwd-dwd-store-goods-sale-ex) |
| 6 | `site_goods_id` | BIGINT | [`site_goods_id`](#api-store-goods-sales-records) | [`site_goods_id`](#dwd-dwd-store-goods-sale) |
| 7 | `tenant_goods_id` | BIGINT | [`tenant_goods_id`](#api-store-goods-sales-records) | [`tenant_goods_id`](#dwd-dwd-store-goods-sale) |
| 8 | `order_settle_id` | BIGINT | [`order_settle_id`](#api-store-goods-sales-records) | [`order_settle_id`](#dwd-dwd-store-goods-sale) |
| 9 | `order_trade_no` | TEXT | [`order_trade_no`](#api-store-goods-sales-records) | [`order_trade_no`](#dwd-dwd-store-goods-sale) |
| 10 | `order_goods_id` | BIGINT | [`order_goods_id`](#api-store-goods-sales-records) | [`order_goods_id`](#dwd-dwd-store-goods-sale) |
| 11 | `ordergoodsid` | BIGINT | [`orderGoodsId`](#api-store-goods-sales-records) | [`legacy_order_goods_id`](#dwd-dwd-store-goods-sale-ex) |
| 12 | `order_pay_id` | BIGINT | [`order_pay_id`](#api-store-goods-sales-records) | [`order_pay_id`](#dwd-dwd-store-goods-sale) |
| 13 | `order_coupon_id` | BIGINT | [`order_coupon_id`](#api-store-goods-sales-records) | [`order_coupon_id`](#dwd-dwd-store-goods-sale-ex) |
| 14 | `ledger_name` | TEXT | [`ledger_name`](#api-store-goods-sales-records) | [`ledger_name`](#dwd-dwd-store-goods-sale) |
| 15 | `ledger_group_name` | TEXT | [`ledger_group_name`](#api-store-goods-sales-records) | [`ledger_group_name`](#dwd-dwd-store-goods-sale) |
| 16 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#api-store-goods-sales-records) | [`ledger_amount`](#dwd-dwd-store-goods-sale) |
| 17 | `ledger_count` | NUMERIC(18,4) | [`ledger_count`](#api-store-goods-sales-records) | [`ledger_count`](#dwd-dwd-store-goods-sale) |
| 18 | `ledger_unit_price` | NUMERIC(18,4) | [`ledger_unit_price`](#api-store-goods-sales-records) | [`ledger_unit_price`](#dwd-dwd-store-goods-sale) |
| 19 | `ledger_status` | INT | [`ledger_status`](#api-store-goods-sales-records) | [`ledger_status`](#dwd-dwd-store-goods-sale) |
| 20 | `discount_money` | NUMERIC(18,2) | [`discount_money`](#api-store-goods-sales-records) | [`discount_price`](#dwd-dwd-store-goods-sale), [`discount_money`](#dwd-dwd-store-goods-sale-ex) |
| 21 | `discount_price` | NUMERIC(18,2) | [`discount_price`](#api-store-goods-sales-records) | — |
| 22 | `coupon_deduct_money` | NUMERIC(18,2) | [`coupon_deduct_money`](#api-store-goods-sales-records) | [`coupon_deduct_money`](#dwd-dwd-store-goods-sale-ex) |
| 23 | `member_discount_amount` | NUMERIC(18,2) | [`member_discount_amount`](#api-store-goods-sales-records) | [`member_discount_amount`](#dwd-dwd-store-goods-sale-ex) |
| 24 | `option_coupon_deduct_money` | NUMERIC(18,2) | [`option_coupon_deduct_money`](#api-store-goods-sales-records) | [`option_coupon_deduct_money`](#dwd-dwd-store-goods-sale-ex) |
| 25 | `option_member_discount_money` | NUMERIC(18,2) | [`option_member_discount_money`](#api-store-goods-sales-records) | [`option_member_discount_money`](#dwd-dwd-store-goods-sale-ex) |
| 26 | `point_discount_money` | NUMERIC(18,2) | [`point_discount_money`](#api-store-goods-sales-records) | [`point_discount_money`](#dwd-dwd-store-goods-sale-ex) |
| 27 | `point_discount_money_cost` | NUMERIC(18,2) | [`point_discount_money_cost`](#api-store-goods-sales-records) | [`point_discount_money_cost`](#dwd-dwd-store-goods-sale-ex) |
| 28 | `real_goods_money` | NUMERIC(18,2) | [`real_goods_money`](#api-store-goods-sales-records) | [`real_goods_money`](#dwd-dwd-store-goods-sale) |
| 29 | `cost_money` | NUMERIC(18,2) | [`cost_money`](#api-store-goods-sales-records) | [`cost_money`](#dwd-dwd-store-goods-sale) |
| 30 | `push_money` | NUMERIC(18,2) | [`push_money`](#api-store-goods-sales-records) | [`push_money`](#dwd-dwd-store-goods-sale-ex) |
| 31 | `sales_type` | INT | [`sales_type`](#api-store-goods-sales-records) | [`sales_type`](#dwd-dwd-store-goods-sale-ex) |
| 32 | `is_single_order` | INT | [`is_single_order`](#api-store-goods-sales-records) | [`is_single_order`](#dwd-dwd-store-goods-sale-ex) |
| 33 | `is_delete` | INT | [`is_delete`](#api-store-goods-sales-records) | [`is_delete`](#dwd-dwd-store-goods-sale) |
| 34 | `goods_remark` | TEXT | [`goods_remark`](#api-store-goods-sales-records) | [`goods_remark`](#dwd-dwd-store-goods-sale-ex) |
| 35 | `option_price` | NUMERIC(18,2) | [`option_price`](#api-store-goods-sales-records) | [`option_price`](#dwd-dwd-store-goods-sale-ex) |
| 36 | `option_value_name` | TEXT | [`option_value_name`](#api-store-goods-sales-records) | [`option_value_name`](#dwd-dwd-store-goods-sale-ex) |
| 37 | `member_coupon_id` | BIGINT | [`member_coupon_id`](#api-store-goods-sales-records) | [`member_coupon_id`](#dwd-dwd-store-goods-sale-ex) |
| 38 | `package_coupon_id` | BIGINT | [`package_coupon_id`](#api-store-goods-sales-records) | [`package_coupon_id`](#dwd-dwd-store-goods-sale-ex) |
| 39 | `sales_man_org_id` | BIGINT | [`sales_man_org_id`](#api-store-goods-sales-records) | [`salesman_org_id`](#dwd-dwd-store-goods-sale-ex) |
| 40 | `salesman_name` | TEXT | [`salesman_name`](#api-store-goods-sales-records) | [`salesman_name`](#dwd-dwd-store-goods-sale-ex) |
| 41 | `salesman_role_id` | BIGINT | [`salesman_role_id`](#api-store-goods-sales-records) | [`salesman_role_id`](#dwd-dwd-store-goods-sale-ex) |
| 42 | `salesman_user_id` | BIGINT | [`salesman_user_id`](#api-store-goods-sales-records) | [`salesman_user_id`](#dwd-dwd-store-goods-sale-ex) |
| 43 | `operator_id` | BIGINT | [`operator_id`](#api-store-goods-sales-records) | [`operator_id`](#dwd-dwd-store-goods-sale-ex) |
| 44 | `operator_name` | TEXT | [`operator_name`](#api-store-goods-sales-records) | [`operator_name`](#dwd-dwd-store-goods-sale-ex) |
| 45 | `openSalesman` | TEXT | [`openSalesman`](#api-store-goods-sales-records) | [`open_salesman_flag`](#dwd-dwd-store-goods-sale-ex) |
| 46 | `returns_number` | INT | [`returns_number`](#api-store-goods-sales-records) | [`returns_number`](#dwd-dwd-store-goods-sale-ex) |
| 47 | `site_table_id` | BIGINT | [`site_table_id`](#api-store-goods-sales-records) | [`site_table_id`](#dwd-dwd-store-goods-sale) |
| 48 | `tenant_goods_business_id` | BIGINT | [`tenant_goods_business_id`](#api-store-goods-sales-records) | [`tenant_goods_business_id`](#dwd-dwd-store-goods-sale) |
| 49 | `tenant_goods_category_id` | BIGINT | [`tenant_goods_category_id`](#api-store-goods-sales-records) | [`tenant_goods_category_id`](#dwd-dwd-store-goods-sale) |
| 50 | `create_time` | TIMESTAMP | [`create_time`](#api-store-goods-sales-records) | [`create_time`](#dwd-dwd-store-goods-sale) |
| 51 | `coupon_share_money` | NUMERIC(18,2) | [`coupon_share_money`](#api-store-goods-sales-records) | [`coupon_share_money`](#dwd-dwd-store-goods-sale) |
*ETL 元数据列(5 个):`payload`, `content_hash`, `source_file`, `source_endpoint`, `fetched_at`*
### DWD: `dwd.dwd_store_goods_sale` — 事实 (24 列) [🔗 ODS](#ods-store-goods-sales-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `store_goods_sale_id` | BIGINT | [`id`](#ods-store-goods-sales-records) | 直接 | 字段重命名 |
| 2 | `order_trade_no` | BIGINT | [`order_trade_no`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 3 | `order_settle_id` | BIGINT | [`order_settle_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 4 | `order_pay_id` | BIGINT | [`order_pay_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 5 | `order_goods_id` | BIGINT | [`order_goods_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 6 | `site_id` | BIGINT | [`site_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 7 | `tenant_id` | BIGINT | [`tenant_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 8 | `site_goods_id` | BIGINT | [`site_goods_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 9 | `tenant_goods_id` | BIGINT | [`tenant_goods_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 10 | `tenant_goods_category_id` | BIGINT | [`tenant_goods_category_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 11 | `tenant_goods_business_id` | BIGINT | [`tenant_goods_business_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 12 | `site_table_id` | BIGINT | [`site_table_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 13 | `ledger_name` | VARCHAR(200) | [`ledger_name`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 14 | `ledger_group_name` | VARCHAR(100) | [`ledger_group_name`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 15 | `ledger_unit_price` | NUMERIC(18,2) | [`ledger_unit_price`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 16 | `ledger_count` | INTEGER | [`ledger_count`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 17 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 18 | `discount_price` | NUMERIC(18,2) | [`discount_money`](#ods-store-goods-sales-records) | 直接 | 字段重命名 |
| 19 | `real_goods_money` | NUMERIC(18,2) | [`real_goods_money`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 20 | `cost_money` | NUMERIC(18,2) | [`cost_money`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 21 | `ledger_status` | INTEGER | [`ledger_status`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 22 | `is_delete` | INTEGER | [`is_delete`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 23 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 24 | `coupon_share_money` | NUMERIC(18,2) | [`coupon_share_money`](#ods-store-goods-sales-records) | 直接 | |
### DWD: `dwd.dwd_store_goods_sale_ex` — 事实(扩展) (28 列) [🔗 ODS](#ods-store-goods-sales-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `store_goods_sale_id` | BIGINT | [`id`](#ods-store-goods-sales-records) | 直接 | 字段重命名 |
| 2 | `legacy_order_goods_id` | BIGINT | [`ordergoodsid`](#ods-store-goods-sales-records) | 直接 | 字段重命名 |
| 3 | `site_name` | TEXT | [`sitename`](#ods-store-goods-sales-records) | 直接 | 字段重命名 |
| 4 | `legacy_site_id` | BIGINT | [`siteid`](#ods-store-goods-sales-records) | 直接 | 字段重命名 |
| 5 | `goods_remark` | TEXT | [`goods_remark`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 6 | `option_value_name` | TEXT | [`option_value_name`](#ods-store-goods-sales-records) | 直接 | |
| 7 | `operator_name` | TEXT | [`operator_name`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 8 | `open_salesman_flag` | INTEGER | [`opensalesman`](#ods-store-goods-sales-records) | → integer | 字段重命名 |
| 9 | `salesman_user_id` | BIGINT | [`salesman_user_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 10 | `salesman_name` | TEXT | [`salesman_name`](#ods-store-goods-sales-records) | 直接 | |
| 11 | `salesman_role_id` | BIGINT | [`salesman_role_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 12 | `salesman_org_id` | BIGINT | [`sales_man_org_id`](#ods-store-goods-sales-records) | 直接 | 字段重命名 |
| 13 | `discount_money` | NUMERIC(18,2) | [`discount_money`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 14 | `returns_number` | INTEGER | [`returns_number`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 15 | `coupon_deduct_money` | NUMERIC(18,2) | [`coupon_deduct_money`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 16 | `member_discount_amount` | NUMERIC(18,2) | [`member_discount_amount`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 17 | `point_discount_money` | NUMERIC(18,2) | [`point_discount_money`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 18 | `point_discount_money_cost` | NUMERIC(18,2) | [`point_discount_money_cost`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 19 | `package_coupon_id` | BIGINT | [`package_coupon_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 20 | `order_coupon_id` | BIGINT | [`order_coupon_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 21 | `member_coupon_id` | BIGINT | [`member_coupon_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 22 | `option_price` | NUMERIC(18,2) | [`option_price`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 23 | `option_member_discount_money` | NUMERIC(18,2) | [`option_member_discount_money`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 24 | `option_coupon_deduct_money` | NUMERIC(18,2) | [`option_coupon_deduct_money`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 25 | `push_money` | NUMERIC(18,2) | [`push_money`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 26 | `is_single_order` | INTEGER | [`is_single_order`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 27 | `sales_type` | INTEGER | [`sales_type`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
| 28 | `operator_id` | BIGINT | [`operator_id`](#ods-store-goods-sales-records) | 直接 | 同名直传 |
---
## 支付流水 (`payment_transactions`)
- 任务编码: `ODS_PAYMENT`
- API 端点: `/PayLog/GetPayLogListPage`
- 时间字段: `StartPayTime` / `EndPayTime`
- 获取记录数: 200
### API 源字段(11 个) [🔗 ODS](#ods-payment-transactions)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteProfile` | object | {"id": 2790685415443269, "org_id": 27906... | — | 📦 嵌套对象,不直接映射 |
| 2 | `create_time` | string | 2026-02-14 00:21:21 | [`create_time`](#ods-payment-transactions) | ✅ 同名映射 |
| 3 | `pay_amount` | number | 7.0 | [`pay_amount`](#ods-payment-transactions) | ✅ 同名映射 |
| 4 | `pay_status` | integer | 2 | [`pay_status`](#ods-payment-transactions) | ✅ 同名映射 |
| 5 | `pay_time` | string | 2026-02-14 00:21:21 | [`pay_time`](#ods-payment-transactions) | ✅ 同名映射 |
| 6 | `online_pay_channel` | integer | 0 | [`online_pay_channel`](#ods-payment-transactions) | ✅ 同名映射 |
| 7 | `relate_type` | integer | 2 | [`relate_type`](#ods-payment-transactions) | ✅ 同名映射 |
| 8 | `relate_id` | integer | 3093864077166789 | [`relate_id`](#ods-payment-transactions) | ✅ 同名映射 |
| 9 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-payment-transactions) | ✅ 同名映射 |
| 10 | `id` | integer | 3093864103463109 | [`id`](#ods-payment-transactions) | ✅ 同名映射 |
| 11 | `payment_method` | integer | 4 | [`payment_method`](#ods-payment-transactions) | ✅ 同名映射 |
> 映射统计:10 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.payment_transactions` (17 列) [🔗 API](#api-payment-transactions)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-payment-transactions) | [`payment_id`](#dwd-dwd-payment) |
| 2 | `site_id` | BIGINT | [`site_id`](#api-payment-transactions) | [`site_id`](#dwd-dwd-payment) |
| 3 | `siteProfile` | JSONB | [`siteProfile`](#api-payment-transactions) | — |
| 4 | `relate_type` | INT | [`relate_type`](#api-payment-transactions) | [`relate_type`](#dwd-dwd-payment) |
| 5 | `relate_id` | BIGINT | [`relate_id`](#api-payment-transactions) | [`relate_id`](#dwd-dwd-payment) |
| 6 | `pay_amount` | NUMERIC(18,2) | [`pay_amount`](#api-payment-transactions) | [`pay_amount`](#dwd-dwd-payment) |
| 7 | `pay_status` | INT | [`pay_status`](#api-payment-transactions) | [`pay_status`](#dwd-dwd-payment) |
| 8 | `pay_time` | TIMESTAMP | [`pay_time`](#api-payment-transactions) | [`pay_time`](#dwd-dwd-payment), [`pay_date`](#dwd-dwd-payment) |
| 9 | `create_time` | TIMESTAMP | [`create_time`](#api-payment-transactions) | [`create_time`](#dwd-dwd-payment) |
| 10 | `payment_method` | INT | [`payment_method`](#api-payment-transactions) | [`payment_method`](#dwd-dwd-payment) |
| 11 | `online_pay_channel` | INT | [`online_pay_channel`](#api-payment-transactions) | [`online_pay_channel`](#dwd-dwd-payment) |
| 12 | `tenant_id` | BIGINT | — | [`tenant_id`](#dwd-dwd-payment) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dwd_payment` — 事实 (12 列) [🔗 ODS](#ods-payment-transactions)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `payment_id` | BIGINT | [`id`](#ods-payment-transactions) | 直接 | 字段重命名 |
| 2 | `site_id` | BIGINT | [`site_id`](#ods-payment-transactions) | 直接 | 同名直传 |
| 3 | `relate_type` | INTEGER | [`relate_type`](#ods-payment-transactions) | 直接 | 同名直传 |
| 4 | `relate_id` | BIGINT | [`relate_id`](#ods-payment-transactions) | 直接 | 同名直传 |
| 5 | `pay_amount` | NUMERIC(18,2) | [`pay_amount`](#ods-payment-transactions) | 直接 | 同名直传 |
| 6 | `pay_status` | INTEGER | [`pay_status`](#ods-payment-transactions) | 直接 | 同名直传 |
| 7 | `payment_method` | INTEGER | [`payment_method`](#ods-payment-transactions) | 直接 | 同名直传 |
| 8 | `online_pay_channel` | INTEGER | [`online_pay_channel`](#ods-payment-transactions) | 直接 | 同名直传 |
| 9 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-payment-transactions) | 直接 | 同名直传 |
| 10 | `pay_time` | TIMESTAMPTZ | [`pay_time`](#ods-payment-transactions) | 直接 | 同名直传 |
| 11 | `pay_date` | DATE | [`pay_time`](#ods-payment-transactions) | → date | 字段重命名 |
| 12 | `tenant_id` | BIGINT | [`tenant_id`](#ods-payment-transactions) | 直接 | |
---
## 退款流水 (`refund_transactions`)
- 任务编码: `ODS_REFUND`
- API 端点: `/Order/GetRefundPayLogList`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 36
### API 源字段(32 个) [🔗 ODS](#ods-refund-transactions)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `tenantName` | string | 朗朗桌球 | [`tenantName`](#ods-refund-transactions) | ✅ 同名映射 |
| 2 | `siteProfile` | object | {"id": 2790685415443269, "org_id": 27906... | — | 📦 嵌套对象,不直接映射 |
| 3 | `id` | integer | 3089577798995141 | [`id`](#ods-refund-transactions) | ✅ 同名映射 |
| 4 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 5 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 6 | `pay_sn` | integer | 0 | [`pay_sn`](#ods-refund-transactions) | ✅ 同名映射 |
| 7 | `pay_amount` | number | -8.0 | [`pay_amount`](#ods-refund-transactions) | ✅ 同名映射 |
| 8 | `pay_status` | integer | 2 | [`pay_status`](#ods-refund-transactions) | ✅ 同名映射 |
| 9 | `pay_time` | string | 2026-02-10 23:41:06 | [`pay_time`](#ods-refund-transactions) | ✅ 同名映射 |
| 10 | `create_time` | string | 2026-02-10 23:41:06 | [`create_time`](#ods-refund-transactions) | ✅ 同名映射 |
| 11 | `relate_type` | integer | 1 | [`relate_type`](#ods-refund-transactions) | ✅ 同名映射 |
| 12 | `relate_id` | integer | 3089548319804869 | [`relate_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 13 | `is_revoke` | integer | 0 | [`is_revoke`](#ods-refund-transactions) | ✅ 同名映射 |
| 14 | `is_delete` | integer | 0 | [`is_delete`](#ods-refund-transactions) | ✅ 同名映射 |
| 15 | `online_pay_channel` | integer | 0 | [`online_pay_channel`](#ods-refund-transactions) | ✅ 同名映射 |
| 16 | `payment_method` | integer | 4 | [`payment_method`](#ods-refund-transactions) | ✅ 同名映射 |
| 17 | `balance_frozen_amount` | number | 0.0 | [`balance_frozen_amount`](#ods-refund-transactions) | ✅ 同名映射 |
| 18 | `card_frozen_amount` | number | 0.0 | [`card_frozen_amount`](#ods-refund-transactions) | ✅ 同名映射 |
| 19 | `member_id` | integer | 0 | [`member_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 20 | `member_card_id` | integer | 0 | [`member_card_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 21 | `round_amount` | number | 0.0 | [`round_amount`](#ods-refund-transactions) | ✅ 同名映射 |
| 22 | `online_pay_type` | integer | 0 | [`online_pay_type`](#ods-refund-transactions) | ✅ 同名映射 |
| 23 | `action_type` | integer | 2 | [`action_type`](#ods-refund-transactions) | ✅ 同名映射 |
| 24 | `refund_amount` | number | 0.0 | [`refund_amount`](#ods-refund-transactions) | ✅ 同名映射 |
| 25 | `cashier_point_id` | integer | 0 | [`cashier_point_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 26 | `operator_id` | integer | 0 | [`operator_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 27 | `pay_terminal` | integer | 1 | [`pay_terminal`](#ods-refund-transactions) | ✅ 同名映射 |
| 28 | `pay_config_id` | integer | 0 | [`pay_config_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 29 | `channel_payer_id` | string | | [`channel_payer_id`](#ods-refund-transactions) | ✅ 同名映射 |
| 30 | `channel_pay_no` | string | | [`channel_pay_no`](#ods-refund-transactions) | ✅ 同名映射 |
| 31 | `check_status` | integer | 1 | [`check_status`](#ods-refund-transactions) | ✅ 同名映射 |
| 32 | `channel_fee` | number | 0.0 | [`channel_fee`](#ods-refund-transactions) | ✅ 同名映射 |
> 映射统计:31 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.refund_transactions` (37 列) [🔗 API](#api-refund-transactions)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-refund-transactions) | [`refund_id`](#dwd-dwd-refund), [`refund_id`](#dwd-dwd-refund-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-refund-transactions) | [`tenant_id`](#dwd-dwd-refund) |
| 3 | `tenantName` | TEXT | [`tenantName`](#api-refund-transactions) | [`tenant_name`](#dwd-dwd-refund-ex) |
| 4 | `site_id` | BIGINT | [`site_id`](#api-refund-transactions) | [`site_id`](#dwd-dwd-refund) |
| 5 | `siteProfile` | JSONB | [`siteProfile`](#api-refund-transactions) | — |
| 6 | `relate_type` | INT | [`relate_type`](#api-refund-transactions) | [`relate_type`](#dwd-dwd-refund) |
| 7 | `relate_id` | BIGINT | [`relate_id`](#api-refund-transactions) | [`relate_id`](#dwd-dwd-refund) |
| 8 | `pay_sn` | TEXT | [`pay_sn`](#api-refund-transactions) | [`pay_sn`](#dwd-dwd-refund-ex) |
| 9 | `pay_amount` | NUMERIC(18,2) | [`pay_amount`](#api-refund-transactions) | [`pay_amount`](#dwd-dwd-refund) |
| 10 | `refund_amount` | NUMERIC(18,2) | [`refund_amount`](#api-refund-transactions) | [`refund_amount`](#dwd-dwd-refund-ex) |
| 11 | `round_amount` | NUMERIC(18,2) | [`round_amount`](#api-refund-transactions) | [`round_amount`](#dwd-dwd-refund-ex) |
| 12 | `pay_status` | INT | [`pay_status`](#api-refund-transactions) | [`pay_status`](#dwd-dwd-refund-ex) |
| 13 | `pay_time` | TIMESTAMP | [`pay_time`](#api-refund-transactions) | [`pay_time`](#dwd-dwd-refund) |
| 14 | `create_time` | TIMESTAMP | [`create_time`](#api-refund-transactions) | [`create_time`](#dwd-dwd-refund) |
| 15 | `payment_method` | INT | [`payment_method`](#api-refund-transactions) | [`payment_method`](#dwd-dwd-refund) |
| 16 | `pay_terminal` | INT | [`pay_terminal`](#api-refund-transactions) | [`pay_terminal`](#dwd-dwd-refund-ex) |
| 17 | `pay_config_id` | BIGINT | [`pay_config_id`](#api-refund-transactions) | [`pay_config_id`](#dwd-dwd-refund-ex) |
| 18 | `online_pay_channel` | INT | [`online_pay_channel`](#api-refund-transactions) | [`online_pay_channel`](#dwd-dwd-refund-ex) |
| 19 | `online_pay_type` | INT | [`online_pay_type`](#api-refund-transactions) | [`online_pay_type`](#dwd-dwd-refund-ex) |
| 20 | `channel_fee` | NUMERIC(18,2) | [`channel_fee`](#api-refund-transactions) | [`channel_fee`](#dwd-dwd-refund) |
| 21 | `channel_payer_id` | TEXT | [`channel_payer_id`](#api-refund-transactions) | [`channel_payer_id`](#dwd-dwd-refund-ex) |
| 22 | `channel_pay_no` | TEXT | [`channel_pay_no`](#api-refund-transactions) | [`channel_pay_no`](#dwd-dwd-refund-ex) |
| 23 | `member_id` | BIGINT | [`member_id`](#api-refund-transactions) | [`member_id`](#dwd-dwd-refund) |
| 24 | `member_card_id` | BIGINT | [`member_card_id`](#api-refund-transactions) | [`member_card_id`](#dwd-dwd-refund) |
| 25 | `cashier_point_id` | BIGINT | [`cashier_point_id`](#api-refund-transactions) | [`cashier_point_id`](#dwd-dwd-refund-ex) |
| 26 | `operator_id` | BIGINT | [`operator_id`](#api-refund-transactions) | [`operator_id`](#dwd-dwd-refund-ex) |
| 27 | `action_type` | INT | [`action_type`](#api-refund-transactions) | [`action_type`](#dwd-dwd-refund-ex) |
| 28 | `check_status` | INT | [`check_status`](#api-refund-transactions) | [`check_status`](#dwd-dwd-refund-ex) |
| 29 | `is_revoke` | INT | [`is_revoke`](#api-refund-transactions) | [`is_revoke`](#dwd-dwd-refund-ex) |
| 30 | `is_delete` | INT | [`is_delete`](#api-refund-transactions) | [`is_delete`](#dwd-dwd-refund-ex) |
| 31 | `balance_frozen_amount` | NUMERIC(18,2) | [`balance_frozen_amount`](#api-refund-transactions) | [`balance_frozen_amount`](#dwd-dwd-refund-ex) |
| 32 | `card_frozen_amount` | NUMERIC(18,2) | [`card_frozen_amount`](#api-refund-transactions) | [`card_frozen_amount`](#dwd-dwd-refund-ex) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dwd_refund` — 事实 (12 列) [🔗 ODS](#ods-refund-transactions)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `refund_id` | BIGINT | [`id`](#ods-refund-transactions) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-refund-transactions) | 直接 | 同名直传 |
| 3 | `site_id` | BIGINT | [`site_id`](#ods-refund-transactions) | 直接 | 同名直传 |
| 4 | `relate_type` | INTEGER | [`relate_type`](#ods-refund-transactions) | 直接 | 同名直传 |
| 5 | `relate_id` | BIGINT | [`relate_id`](#ods-refund-transactions) | 直接 | 同名直传 |
| 6 | `pay_amount` | NUMERIC(18,2) | [`pay_amount`](#ods-refund-transactions) | 直接 | 同名直传 |
| 7 | `channel_fee` | NUMERIC(18,2) | [`channel_fee`](#ods-refund-transactions) | 直接 | 同名直传 |
| 8 | `pay_time` | TIMESTAMPTZ | [`pay_time`](#ods-refund-transactions) | 直接 | 同名直传 |
| 9 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-refund-transactions) | 直接 | 同名直传 |
| 10 | `payment_method` | INTEGER | [`payment_method`](#ods-refund-transactions) | 直接 | 同名直传 |
| 11 | `member_id` | BIGINT | [`member_id`](#ods-refund-transactions) | 直接 | 同名直传 |
| 12 | `member_card_id` | BIGINT | [`member_card_id`](#ods-refund-transactions) | 直接 | 同名直传 |
### DWD: `dwd.dwd_refund_ex` — 事实(扩展) (20 列) [🔗 ODS](#ods-refund-transactions)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `refund_id` | BIGINT | [`id`](#ods-refund-transactions) | 直接 | 字段重命名 |
| 2 | `tenant_name` | VARCHAR(64) | [`tenantname`](#ods-refund-transactions) | 直接 | 字段重命名 |
| 3 | `pay_sn` | BIGINT | [`pay_sn`](#ods-refund-transactions) | 直接 | 同名直传 |
| 4 | `refund_amount` | NUMERIC(18,2) | [`refund_amount`](#ods-refund-transactions) | 直接 | 同名直传 |
| 5 | `round_amount` | NUMERIC(18,2) | [`round_amount`](#ods-refund-transactions) | 直接 | 同名直传 |
| 6 | `balance_frozen_amount` | NUMERIC(18,2) | [`balance_frozen_amount`](#ods-refund-transactions) | 直接 | 同名直传 |
| 7 | `card_frozen_amount` | NUMERIC(18,2) | [`card_frozen_amount`](#ods-refund-transactions) | 直接 | 同名直传 |
| 8 | `pay_status` | INTEGER | [`pay_status`](#ods-refund-transactions) | 直接 | 同名直传 |
| 9 | `action_type` | INTEGER | [`action_type`](#ods-refund-transactions) | 直接 | 同名直传 |
| 10 | `is_revoke` | INTEGER | [`is_revoke`](#ods-refund-transactions) | 直接 | 同名直传 |
| 11 | `is_delete` | INTEGER | [`is_delete`](#ods-refund-transactions) | 直接 | 同名直传 |
| 12 | `check_status` | INTEGER | [`check_status`](#ods-refund-transactions) | 直接 | 同名直传 |
| 13 | `online_pay_channel` | INTEGER | [`online_pay_channel`](#ods-refund-transactions) | 直接 | 同名直传 |
| 14 | `online_pay_type` | INTEGER | [`online_pay_type`](#ods-refund-transactions) | 直接 | 同名直传 |
| 15 | `pay_terminal` | INTEGER | [`pay_terminal`](#ods-refund-transactions) | 直接 | 同名直传 |
| 16 | `pay_config_id` | INTEGER | [`pay_config_id`](#ods-refund-transactions) | 直接 | 同名直传 |
| 17 | `cashier_point_id` | INTEGER | [`cashier_point_id`](#ods-refund-transactions) | 直接 | 同名直传 |
| 18 | `operator_id` | BIGINT | [`operator_id`](#ods-refund-transactions) | 直接 | 同名直传 |
| 19 | `channel_payer_id` | VARCHAR(128) | [`channel_payer_id`](#ods-refund-transactions) | 直接 | |
| 20 | `channel_pay_no` | VARCHAR(128) | [`channel_pay_no`](#ods-refund-transactions) | 直接 | |
---
## 平台/团购券核销 (`platform_coupon_redemption_records`)
- 任务编码: `ODS_PLATFORM_COUPON`
- API 端点: `/Promotion/GetOfflineCouponConsumePageList`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 200
### API 源字段(26 个) [🔗 ODS](#ods-platform-coupon-redemption-records)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteProfile` | object | {"id": 2790685415443269, "org_id": 27906... | — | 📦 嵌套对象,不直接映射 |
| 2 | `id` | integer | 3093784060856453 | [`id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 3 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 4 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 5 | `sale_price` | number | 20.26 | [`sale_price`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 6 | `coupon_code` | string | 0108970935413 | [`coupon_code`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 7 | `coupon_channel` | integer | 1 | [`coupon_channel`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 8 | `site_order_id` | integer | 3093784062036101 | [`site_order_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 9 | `coupon_free_time` | integer | 0 | [`coupon_free_time`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 10 | `use_status` | integer | 1 | [`use_status`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 11 | `create_time` | string | 2026-02-13 22:59:56 | [`create_time`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 12 | `is_delete` | integer | 0 | [`is_delete`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 13 | `coupon_name` | string | 【全天可用】中八桌球一小时(大厅A区) | [`coupon_name`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 14 | `coupon_cover` | string | | [`coupon_cover`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 15 | `coupon_remark` | string | | [`coupon_remark`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 16 | `channel_deal_id` | integer | 1128411555 | [`channel_deal_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 17 | `group_package_id` | integer | 0 | [`group_package_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 18 | `consume_time` | string | 2026-02-13 22:59:56 | [`consume_time`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 19 | `groupon_type` | integer | 1 | [`groupon_type`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 20 | `coupon_money` | number | 48.0 | [`coupon_money`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 21 | `operator_id` | integer | 2790687322443013 | [`operator_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 22 | `operator_name` | string | 收银员:郑丽珊 | [`operator_name`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 23 | `table_id` | integer | 2793001904918661 | [`table_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 24 | `certificate_id` | string | 5017032752860339573 | [`certificate_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 25 | `verify_id` | string | | [`verify_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
| 26 | `deal_id` | integer | 1345108507 | [`deal_id`](#ods-platform-coupon-redemption-records) | ✅ 同名映射 |
> 映射统计:25 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.platform_coupon_redemption_records` (31 列) [🔗 API](#api-platform-coupon-redemption-records)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-platform-coupon-redemption-records) | [`platform_coupon_redemption_id`](#dwd-dwd-platform-coupon-redemption), [`platform_coupon_redemption_id`](#dwd-dwd-platform-coupon-redemption-ex) |
| 2 | `verify_id` | BIGINT | [`verify_id`](#api-platform-coupon-redemption-records) | [`verify_id`](#dwd-dwd-platform-coupon-redemption) |
| 3 | `certificate_id` | TEXT | [`certificate_id`](#api-platform-coupon-redemption-records) | [`certificate_id`](#dwd-dwd-platform-coupon-redemption) |
| 4 | `coupon_code` | TEXT | [`coupon_code`](#api-platform-coupon-redemption-records) | [`coupon_code`](#dwd-dwd-platform-coupon-redemption) |
| 5 | `coupon_name` | TEXT | [`coupon_name`](#api-platform-coupon-redemption-records) | [`coupon_name`](#dwd-dwd-platform-coupon-redemption) |
| 6 | `coupon_channel` | INT | [`coupon_channel`](#api-platform-coupon-redemption-records) | [`coupon_channel`](#dwd-dwd-platform-coupon-redemption) |
| 7 | `groupon_type` | INT | [`groupon_type`](#api-platform-coupon-redemption-records) | [`groupon_type`](#dwd-dwd-platform-coupon-redemption-ex) |
| 8 | `group_package_id` | BIGINT | [`group_package_id`](#api-platform-coupon-redemption-records) | [`group_package_id`](#dwd-dwd-platform-coupon-redemption) |
| 9 | `sale_price` | NUMERIC(18,2) | [`sale_price`](#api-platform-coupon-redemption-records) | [`sale_price`](#dwd-dwd-platform-coupon-redemption) |
| 10 | `coupon_money` | NUMERIC(18,2) | [`coupon_money`](#api-platform-coupon-redemption-records) | [`coupon_money`](#dwd-dwd-platform-coupon-redemption) |
| 11 | `coupon_free_time` | NUMERIC(18,2) | [`coupon_free_time`](#api-platform-coupon-redemption-records) | [`coupon_free_time`](#dwd-dwd-platform-coupon-redemption) |
| 12 | `coupon_cover` | TEXT | [`coupon_cover`](#api-platform-coupon-redemption-records) | [`coupon_cover`](#dwd-dwd-platform-coupon-redemption-ex) |
| 13 | `coupon_remark` | TEXT | [`coupon_remark`](#api-platform-coupon-redemption-records) | [`coupon_remark`](#dwd-dwd-platform-coupon-redemption-ex) |
| 14 | `use_status` | INT | [`use_status`](#api-platform-coupon-redemption-records) | [`use_status`](#dwd-dwd-platform-coupon-redemption) |
| 15 | `consume_time` | TIMESTAMP | [`consume_time`](#api-platform-coupon-redemption-records) | [`consume_time`](#dwd-dwd-platform-coupon-redemption) |
| 16 | `create_time` | TIMESTAMP | [`create_time`](#api-platform-coupon-redemption-records) | [`create_time`](#dwd-dwd-platform-coupon-redemption) |
| 17 | `deal_id` | TEXT | [`deal_id`](#api-platform-coupon-redemption-records) | [`deal_id`](#dwd-dwd-platform-coupon-redemption) |
| 18 | `channel_deal_id` | TEXT | [`channel_deal_id`](#api-platform-coupon-redemption-records) | [`channel_deal_id`](#dwd-dwd-platform-coupon-redemption) |
| 19 | `site_id` | BIGINT | [`site_id`](#api-platform-coupon-redemption-records) | [`site_id`](#dwd-dwd-platform-coupon-redemption) |
| 20 | `site_order_id` | BIGINT | [`site_order_id`](#api-platform-coupon-redemption-records) | [`site_order_id`](#dwd-dwd-platform-coupon-redemption) |
| 21 | `table_id` | BIGINT | [`table_id`](#api-platform-coupon-redemption-records) | [`table_id`](#dwd-dwd-platform-coupon-redemption) |
| 22 | `tenant_id` | BIGINT | [`tenant_id`](#api-platform-coupon-redemption-records) | [`tenant_id`](#dwd-dwd-platform-coupon-redemption) |
| 23 | `operator_id` | BIGINT | [`operator_id`](#api-platform-coupon-redemption-records) | [`operator_id`](#dwd-dwd-platform-coupon-redemption-ex) |
| 24 | `operator_name` | TEXT | [`operator_name`](#api-platform-coupon-redemption-records) | [`operator_name`](#dwd-dwd-platform-coupon-redemption-ex) |
| 25 | `is_delete` | INT | [`is_delete`](#api-platform-coupon-redemption-records) | [`is_delete`](#dwd-dwd-platform-coupon-redemption) |
| 26 | `siteProfile` | JSONB | [`siteProfile`](#api-platform-coupon-redemption-records) | — |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dwd_platform_coupon_redemption` — 事实 (20 列) [🔗 ODS](#ods-platform-coupon-redemption-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `platform_coupon_redemption_id` | BIGINT | [`id`](#ods-platform-coupon-redemption-records) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 3 | `site_id` | BIGINT | [`site_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 4 | `coupon_code` | VARCHAR(64) | [`coupon_code`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 5 | `coupon_channel` | INTEGER | [`coupon_channel`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 6 | `coupon_name` | VARCHAR(200) | [`coupon_name`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 7 | `sale_price` | NUMERIC(10,2) | [`sale_price`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 8 | `coupon_money` | NUMERIC(10,2) | [`coupon_money`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 9 | `coupon_free_time` | INTEGER | [`coupon_free_time`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 10 | `channel_deal_id` | BIGINT | [`channel_deal_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 11 | `deal_id` | BIGINT | [`deal_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 12 | `group_package_id` | BIGINT | [`group_package_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 13 | `site_order_id` | BIGINT | [`site_order_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 14 | `table_id` | BIGINT | [`table_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 15 | `certificate_id` | VARCHAR(64) | [`certificate_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 16 | `verify_id` | VARCHAR(64) | [`verify_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 17 | `use_status` | INTEGER | [`use_status`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 18 | `is_delete` | INTEGER | [`is_delete`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 19 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 20 | `consume_time` | TIMESTAMPTZ | [`consume_time`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
### DWD: `dwd.dwd_platform_coupon_redemption_ex` — 事实(扩展) (6 列) [🔗 ODS](#ods-platform-coupon-redemption-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `platform_coupon_redemption_id` | BIGINT | [`id`](#ods-platform-coupon-redemption-records) | 直接 | 字段重命名 |
| 2 | `coupon_cover` | VARCHAR(255) | [`coupon_cover`](#ods-platform-coupon-redemption-records) | 直接 | |
| 3 | `coupon_remark` | VARCHAR(255) | [`coupon_remark`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 4 | `groupon_type` | INTEGER | [`groupon_type`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 5 | `operator_id` | BIGINT | [`operator_id`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
| 6 | `operator_name` | VARCHAR(50) | [`operator_name`](#ods-platform-coupon-redemption-records) | 直接 | 同名直传 |
---
## 会员档案 (`member_profiles`)
- 任务编码: `ODS_MEMBER`
- API 端点: `/MemberProfile/GetTenantMemberList`
- 获取记录数: 200
### API 源字段(20 个) [🔗 ODS](#ods-member-profiles)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `id` | integer | 3085176958944837 | [`id`](#ods-member-profiles) | ✅ 同名映射 |
| 2 | `create_time` | string | 2026-02-07 21:04:20 | [`create_time`](#ods-member-profiles) | ✅ 同名映射 |
| 3 | `member_card_grade_code` | integer | 2790683528022856 | [`member_card_grade_code`](#ods-member-profiles) | ✅ 同名映射 |
| 4 | `mobile` | string | 13728281927 | [`mobile`](#ods-member-profiles) | ✅ 同名映射 |
| 5 | `nickname` | string | 黄先生 | [`nickname`](#ods-member-profiles) | ✅ 同名映射 |
| 6 | `register_site_id` | integer | 2790685415443269 | [`register_site_id`](#ods-member-profiles) | ✅ 同名映射 |
| 7 | `site_name` | string | 朗朗桌球 | [`site_name`](#ods-member-profiles) | ✅ 同名映射 |
| 8 | `member_card_grade_name` | string | 活动抵用券 | [`member_card_grade_name`](#ods-member-profiles) | ✅ 同名映射 |
| 9 | `system_member_id` | integer | 3085176956307013 | [`system_member_id`](#ods-member-profiles) | ✅ 同名映射 |
| 10 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-member-profiles) | ✅ 同名映射 |
| 11 | `referrer_member_id` | integer | 0 | [`referrer_member_id`](#ods-member-profiles) | ✅ 同名映射 |
| 12 | `point` | number | 0.0 | [`point`](#ods-member-profiles) | ✅ 同名映射 |
| 13 | `user_status` | integer | 1 | [`user_status`](#ods-member-profiles) | ✅ 同名映射 |
| 14 | `status` | integer | 1 | [`status`](#ods-member-profiles) | ✅ 同名映射 |
| 15 | `growth_value` | number | 0.0 | [`growth_value`](#ods-member-profiles) | ✅ 同名映射 |
| 16 | `person_tenant_org_id` | integer | 0 | [`person_tenant_org_id`](#ods-member-profiles) | ✅ 同名映射 |
| 17 | `person_tenant_org_name` | string | | [`person_tenant_org_name`](#ods-member-profiles) | ✅ 同名映射 |
| 18 | `register_source` | integer | 6 | [`register_source`](#ods-member-profiles) | ✅ 同名映射 |
| 19 | `recharge_money_sum` | number | 5000.0 | [`recharge_money_sum`](#ods-member-profiles) | ✅ 同名映射 |
| 20 | `pay_money_sum` | number | -12.79 | [`pay_money_sum`](#ods-member-profiles) | ✅ 同名映射 |
> 映射统计:20 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.member_profiles` (25 列) [🔗 API](#api-member-profiles)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `tenant_id` | BIGINT | [`tenant_id`](#api-member-profiles) | [`tenant_id`](#dwd-dim-member) |
| 2 | `register_site_id` | BIGINT | [`register_site_id`](#api-member-profiles) | [`register_site_id`](#dwd-dim-member) |
| 3 | `site_name` | TEXT | [`site_name`](#api-member-profiles) | [`register_site_name`](#dwd-dim-member-ex) |
| 4 | `id` | BIGINT | [`id`](#api-member-profiles) | [`member_id`](#dwd-dim-member), [`member_id`](#dwd-dim-member-ex) |
| 5 | `system_member_id` | BIGINT | [`system_member_id`](#api-member-profiles) | [`system_member_id`](#dwd-dim-member) |
| 6 | `member_card_grade_code` | BIGINT | [`member_card_grade_code`](#api-member-profiles) | [`member_card_grade_code`](#dwd-dim-member) |
| 7 | `member_card_grade_name` | TEXT | [`member_card_grade_name`](#api-member-profiles) | [`member_card_grade_name`](#dwd-dim-member) |
| 8 | `mobile` | TEXT | [`mobile`](#api-member-profiles) | [`mobile`](#dwd-dim-member) |
| 9 | `nickname` | TEXT | [`nickname`](#api-member-profiles) | [`nickname`](#dwd-dim-member) |
| 10 | `point` | NUMERIC(18,2) | [`point`](#api-member-profiles) | [`point`](#dwd-dim-member-ex) |
| 11 | `growth_value` | NUMERIC(18,2) | [`growth_value`](#api-member-profiles) | [`growth_value`](#dwd-dim-member-ex) |
| 12 | `referrer_member_id` | BIGINT | [`referrer_member_id`](#api-member-profiles) | [`referrer_member_id`](#dwd-dim-member-ex) |
| 13 | `status` | INT | [`status`](#api-member-profiles) | [`status`](#dwd-dim-member-ex) |
| 14 | `user_status` | INT | [`user_status`](#api-member-profiles) | [`user_status`](#dwd-dim-member-ex) |
| 15 | `create_time` | TIMESTAMP | [`create_time`](#api-member-profiles) | [`create_time`](#dwd-dim-member) |
| 16 | `pay_money_sum` | NUMERIC(18,2) | [`pay_money_sum`](#api-member-profiles) | [`pay_money_sum`](#dwd-dim-member) |
| 17 | `person_tenant_org_id` | BIGINT | [`person_tenant_org_id`](#api-member-profiles) | [`person_tenant_org_id`](#dwd-dim-member-ex) |
| 18 | `person_tenant_org_name` | TEXT | [`person_tenant_org_name`](#api-member-profiles) | [`person_tenant_org_name`](#dwd-dim-member-ex) |
| 19 | `recharge_money_sum` | NUMERIC(18,2) | [`recharge_money_sum`](#api-member-profiles) | [`recharge_money_sum`](#dwd-dim-member) |
| 20 | `register_source` | TEXT | [`register_source`](#api-member-profiles) | [`register_source`](#dwd-dim-member-ex) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dim_member` — 维度 (16 列) [🔗 ODS](#ods-member-profiles)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `member_id` | BIGINT | [`id`](#ods-member-profiles) | 直接 | 字段重命名 |
| 2 | `system_member_id` | BIGINT | [`system_member_id`](#ods-member-profiles) | 直接 | 同名直传 |
| 3 | `tenant_id` | BIGINT | [`tenant_id`](#ods-member-profiles) | 直接 | 同名直传 |
| 4 | `register_site_id` | BIGINT | [`register_site_id`](#ods-member-profiles) | 直接 | 同名直传 |
| 5 | `mobile` | TEXT | [`mobile`](#ods-member-profiles) | 直接 | 同名直传 |
| 6 | `nickname` | TEXT | [`nickname`](#ods-member-profiles) | 直接 | 同名直传 |
| 7 | `member_card_grade_code` | BIGINT | [`member_card_grade_code`](#ods-member-profiles) | 直接 | 同名直传 |
| 8 | `member_card_grade_name` | TEXT | [`member_card_grade_name`](#ods-member-profiles) | 直接 | 同名直传 |
| 9 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-member-profiles) | 直接 | 同名直传 |
| 10 | `update_time` | TIMESTAMPTZ | — | — | 未显式映射 |
| 11 | `pay_money_sum` | NUMERIC(18,2) | [`pay_money_sum`](#ods-member-profiles) | 直接 | |
| 12 | `recharge_money_sum` | NUMERIC(18,2) | [`recharge_money_sum`](#ods-member-profiles) | 直接 | |
| 13 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 14 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 15 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 16 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dim_member_ex` — 维度(扩展) (14 列) [🔗 ODS](#ods-member-profiles)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `member_id` | BIGINT | [`id`](#ods-member-profiles) | 直接 | 字段重命名 |
| 2 | `referrer_member_id` | BIGINT | [`referrer_member_id`](#ods-member-profiles) | 直接 | 同名直传 |
| 3 | `point` | NUMERIC(18,2) | [`point`](#ods-member-profiles) | 直接 | 同名直传 |
| 4 | `register_site_name` | TEXT | [`site_name`](#ods-member-profiles) | 直接 | 字段重命名 |
| 5 | `growth_value` | NUMERIC(18,2) | [`growth_value`](#ods-member-profiles) | 直接 | 同名直传 |
| 6 | `user_status` | INTEGER | [`user_status`](#ods-member-profiles) | 直接 | 同名直传 |
| 7 | `status` | INTEGER | [`status`](#ods-member-profiles) | 直接 | 同名直传 |
| 8 | `person_tenant_org_id` | BIGINT | [`person_tenant_org_id`](#ods-member-profiles) | 直接 | |
| 9 | `person_tenant_org_name` | TEXT | [`person_tenant_org_name`](#ods-member-profiles) | 直接 | |
| 10 | `register_source` | TEXT | [`register_source`](#ods-member-profiles) | 直接 | |
| 11 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 12 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 13 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 14 | `SCD2_version` | INT | — | — | SCD2 元数据 |
---
## 会员储值卡 (`member_stored_value_cards`)
- 任务编码: `ODS_MEMBER_CARD`
- API 端点: `/MemberProfile/GetTenantMemberCardList`
- 获取记录数: 200
### API 源字段(75 个) [🔗 ODS](#ods-member-stored-value-cards)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `site_name` | string | 朗朗桌球 | [`site_name`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 2 | `member_name` | string | 黄先生 | [`member_name`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 3 | `member_mobile` | string | 13728281927 | [`member_mobile`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 4 | `member_card_type_name` | string | 活动抵用券 | [`member_card_type_name`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 5 | `table_service_discount` | number | 10.0 | [`table_service_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 6 | `assistant_service_discount` | number | 10.0 | [`assistant_service_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 7 | `coupon_discount` | number | 10.0 | [`coupon_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 8 | `goods_service_discount` | number | 10.0 | [`goods_service_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 9 | `electricity_discount` | number | 10.0 | [`electricity_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 10 | `is_allow_give` | integer | 0 | [`is_allow_give`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 11 | `able_cross_site` | integer | 1 | [`able_cross_site`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 12 | `cardSettleDeduct` | number | 0.0 | [`cardSettleDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 13 | `tenantAvatar` | string | | [`tenantAvatar`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 14 | `tenantName` | string | | [`tenantName`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 15 | `member_card_grade_code_name` | string | 活动抵用券 | [`member_card_grade_code_name`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 16 | `table_discount_sub_switch` | integer | 2 | [`table_discount_sub_switch`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 17 | `tableAreaId` | array | [] | [`tableAreaId`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 18 | `goods_discount_sub_switch` | integer | 2 | [`goods_discount_sub_switch`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 19 | `goodsCategoryId` | array | [] | [`goodsCategoryId`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 20 | `assistant_discount_sub_switch` | integer | 2 | [`assistant_discount_sub_switch`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 21 | `pdAssisnatLevel` | array | [] | [`pdAssisnatLevel`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 22 | `assistant_reward_discount_sub_switch` | integer | 2 | [`assistant_reward_discount_sub_switch`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 23 | `cxAssisnatLevel` | array | [] | [`cxAssisnatLevel`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 24 | `goods_discount_range_type` | integer | 1 | [`goods_discount_range_type`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 25 | `use_scene` | string | | [`use_scene`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 26 | `balance` | number | 4987.21 | [`balance`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 27 | `table_deduct_radio` | number | 100.0 | [`table_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 28 | `table_service_deduct_radio` | number | 100.0 | [`table_service_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 29 | `goods_deduct_radio` | number | 100.0 | [`goods_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 30 | `goods_service_deduct_radio` | number | 100.0 | [`goods_service_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 31 | `assistant_deduct_radio` | number | 100.0 | [`assistant_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 32 | `assistant_service_deduct_radio` | number | 100.0 | [`assistant_service_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 33 | `assistant_reward_deduct_radio` | number | 100.0 | [`assistant_reward_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 34 | `coupon_deduct_radio` | number | 100.0 | [`coupon_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 35 | `electricity_deduct_radio` | number | 100.0 | [`electricity_deduct_radio`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 36 | `electricityCardDeduct` | number | 0.0 | [`electricitycarddeduct`](#ods-member-stored-value-cards) | 🔄 大小写不敏感匹配 |
| 37 | `tableCardDeduct` | number | 0.0 | [`tableCardDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 38 | `tableServiceCardDeduct` | number | 0.0 | [`tableServiceCardDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 39 | `goodsCarDeduct` | number | 0.0 | [`goodsCarDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 40 | `goodsServiceCardDeduct` | number | 0.0 | [`goodsServiceCardDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 41 | `assistantCardDeduct` | number | 0.0 | [`assistantCardDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 42 | `assistantServiceCardDeduct` | number | 0.0 | [`assistantServiceCardDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 43 | `assistantRewardCardDeduct` | number | 0.0 | [`assistantRewardCardDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 44 | `couponCardDeduct` | number | 0.0 | [`couponCardDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 45 | `deliveryFeeDeduct` | number | 0.0 | [`deliveryFeeDeduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 46 | `is_allow_order_deduct` | integer | 0 | [`is_allow_order_deduct`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 47 | `member_grade` | integer | 2790683528022856 | [`member_grade`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 48 | `able_share_member_discount` | integer | 1 | [`able_share_member_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 49 | `rechargeFreezeBalance` | number | 0.0 | [`rechargefreezebalance`](#ods-member-stored-value-cards) | 🔄 大小写不敏感匹配 |
| 50 | `id` | integer | 3085176959321669 | [`id`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 51 | `assistant_discount` | number | 10.0 | [`assistant_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 52 | `assistant_reward_discount` | number | 10.0 | [`assistant_reward_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 53 | `bind_password` | string | | [`bind_password`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 54 | `card_no` | string | | [`card_no`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 55 | `card_physics_type` | integer | 1 | [`card_physics_type`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 56 | `card_type_id` | integer | 2793266846533445 | [`card_type_id`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 57 | `create_time` | string | 2026-02-07 21:04:20 | [`create_time`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 58 | `denomination` | number | 0.0 | [`denomination`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 59 | `disable_end_time` | string | 0001-01-01 00:00:00 | [`disable_end_time`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 60 | `disable_start_time` | string | 0001-01-01 00:00:00 | [`disable_start_time`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 61 | `effect_site_id` | integer | 0 | [`effect_site_id`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 62 | `end_time` | string | 2225-01-01 00:00:00 | [`end_time`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 63 | `goods_discount` | number | 10.0 | [`goods_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 64 | `is_delete` | integer | 0 | [`is_delete`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 65 | `last_consume_time` | string | 2026-02-11 17:12:24 | [`last_consume_time`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 66 | `member_card_grade_code` | integer | 2790683528022856 | [`member_card_grade_code`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 67 | `principal_balance` | number | 0.0 | [`principal_balance`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 68 | `register_site_id` | integer | 2790685415443269 | [`register_site_id`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 69 | `sort` | integer | 1 | [`sort`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 70 | `start_time` | string | 2026-02-07 21:04:20 | [`start_time`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 71 | `status` | integer | 1 | [`status`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 72 | `system_member_id` | integer | 3085176956307013 | [`system_member_id`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 73 | `table_discount` | number | 10.0 | [`table_discount`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 74 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-member-stored-value-cards) | ✅ 同名映射 |
| 75 | `tenant_member_id` | integer | 3085176958944837 | [`tenant_member_id`](#ods-member-stored-value-cards) | ✅ 同名映射 |
> 映射统计:75 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.member_stored_value_cards` (80 列) [🔗 API](#api-member-stored-value-cards)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `tenant_id` | BIGINT | [`tenant_id`](#api-member-stored-value-cards) | [`tenant_id`](#dwd-dim-member-card-account) |
| 2 | `tenant_member_id` | BIGINT | [`tenant_member_id`](#api-member-stored-value-cards) | [`tenant_member_id`](#dwd-dim-member-card-account) |
| 3 | `system_member_id` | BIGINT | [`system_member_id`](#api-member-stored-value-cards) | [`system_member_id`](#dwd-dim-member-card-account) |
| 4 | `register_site_id` | BIGINT | [`register_site_id`](#api-member-stored-value-cards) | [`register_site_id`](#dwd-dim-member-card-account) |
| 5 | `site_name` | TEXT | [`site_name`](#api-member-stored-value-cards) | [`site_name`](#dwd-dim-member-card-account-ex) |
| 6 | `id` | BIGINT | [`id`](#api-member-stored-value-cards) | [`member_card_id`](#dwd-dim-member-card-account), [`member_card_id`](#dwd-dim-member-card-account-ex) |
| 7 | `member_card_grade_code` | BIGINT | [`member_card_grade_code`](#api-member-stored-value-cards) | [`member_card_grade_code`](#dwd-dim-member-card-account) |
| 8 | `member_card_grade_code_name` | TEXT | [`member_card_grade_code_name`](#api-member-stored-value-cards) | [`member_card_grade_code_name`](#dwd-dim-member-card-account) |
| 9 | `member_card_type_name` | TEXT | [`member_card_type_name`](#api-member-stored-value-cards) | [`member_card_type_name`](#dwd-dim-member-card-account) |
| 10 | `member_name` | TEXT | [`member_name`](#api-member-stored-value-cards) | [`member_name`](#dwd-dim-member-card-account) |
| 11 | `member_mobile` | TEXT | [`member_mobile`](#api-member-stored-value-cards) | [`member_mobile`](#dwd-dim-member-card-account) |
| 12 | `card_type_id` | BIGINT | [`card_type_id`](#api-member-stored-value-cards) | [`card_type_id`](#dwd-dim-member-card-account) |
| 13 | `card_no` | TEXT | [`card_no`](#api-member-stored-value-cards) | [`card_no`](#dwd-dim-member-card-account-ex) |
| 14 | `card_physics_type` | TEXT | [`card_physics_type`](#api-member-stored-value-cards) | [`card_physics_type`](#dwd-dim-member-card-account-ex) |
| 15 | `balance` | NUMERIC(18,2) | [`balance`](#api-member-stored-value-cards) | [`balance`](#dwd-dim-member-card-account) |
| 16 | `denomination` | NUMERIC(18,2) | [`denomination`](#api-member-stored-value-cards) | [`denomination`](#dwd-dim-member-card-account-ex) |
| 17 | `table_discount` | NUMERIC(10,4) | [`table_discount`](#api-member-stored-value-cards) | [`table_discount`](#dwd-dim-member-card-account-ex) |
| 18 | `goods_discount` | NUMERIC(10,4) | [`goods_discount`](#api-member-stored-value-cards) | [`goods_discount`](#dwd-dim-member-card-account-ex) |
| 19 | `assistant_discount` | NUMERIC(10,4) | [`assistant_discount`](#api-member-stored-value-cards) | [`assistant_discount`](#dwd-dim-member-card-account-ex) |
| 20 | `assistant_reward_discount` | NUMERIC(10,4) | [`assistant_reward_discount`](#api-member-stored-value-cards) | [`assistant_reward_discount`](#dwd-dim-member-card-account-ex) |
| 21 | `table_service_discount` | NUMERIC(10,4) | [`table_service_discount`](#api-member-stored-value-cards) | [`table_service_discount`](#dwd-dim-member-card-account-ex) |
| 22 | `assistant_service_discount` | NUMERIC(10,4) | [`assistant_service_discount`](#api-member-stored-value-cards) | [`assistant_service_discount`](#dwd-dim-member-card-account-ex) |
| 23 | `coupon_discount` | NUMERIC(10,4) | [`coupon_discount`](#api-member-stored-value-cards) | [`coupon_discount`](#dwd-dim-member-card-account-ex) |
| 24 | `goods_service_discount` | NUMERIC(10,4) | [`goods_service_discount`](#api-member-stored-value-cards) | [`goods_service_discount`](#dwd-dim-member-card-account-ex) |
| 25 | `assistant_discount_sub_switch` | INT | [`assistant_discount_sub_switch`](#api-member-stored-value-cards) | [`assistant_discount_sub_switch`](#dwd-dim-member-card-account-ex) |
| 26 | `table_discount_sub_switch` | INT | [`table_discount_sub_switch`](#api-member-stored-value-cards) | [`table_discount_sub_switch`](#dwd-dim-member-card-account-ex) |
| 27 | `goods_discount_sub_switch` | INT | [`goods_discount_sub_switch`](#api-member-stored-value-cards) | [`goods_discount_sub_switch`](#dwd-dim-member-card-account-ex) |
| 28 | `assistant_reward_discount_sub_switch` | INT | [`assistant_reward_discount_sub_switch`](#api-member-stored-value-cards) | [`assistant_reward_discount_sub_switch`](#dwd-dim-member-card-account-ex) |
| 29 | `table_service_deduct_radio` | NUMERIC(10,4) | [`table_service_deduct_radio`](#api-member-stored-value-cards) | [`table_service_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 30 | `assistant_service_deduct_radio` | NUMERIC(10,4) | [`assistant_service_deduct_radio`](#api-member-stored-value-cards) | [`assistant_service_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 31 | `goods_service_deduct_radio` | NUMERIC(10,4) | [`goods_service_deduct_radio`](#api-member-stored-value-cards) | [`goods_service_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 32 | `assistant_deduct_radio` | NUMERIC(10,4) | [`assistant_deduct_radio`](#api-member-stored-value-cards) | [`assistant_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 33 | `table_deduct_radio` | NUMERIC(10,4) | [`table_deduct_radio`](#api-member-stored-value-cards) | [`table_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 34 | `goods_deduct_radio` | NUMERIC(10,4) | [`goods_deduct_radio`](#api-member-stored-value-cards) | [`goods_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 35 | `coupon_deduct_radio` | NUMERIC(10,4) | [`coupon_deduct_radio`](#api-member-stored-value-cards) | [`coupon_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 36 | `assistant_reward_deduct_radio` | NUMERIC(10,4) | [`assistant_reward_deduct_radio`](#api-member-stored-value-cards) | [`assistant_reward_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 37 | `tableCardDeduct` | NUMERIC(18,2) | [`tableCardDeduct`](#api-member-stored-value-cards) | [`tableCardDeduct`](#dwd-dim-member-card-account-ex) |
| 38 | `tableServiceCardDeduct` | NUMERIC(18,2) | [`tableServiceCardDeduct`](#api-member-stored-value-cards) | [`tableServiceCardDeduct`](#dwd-dim-member-card-account-ex) |
| 39 | `goodsCarDeduct` | NUMERIC(18,2) | [`goodsCarDeduct`](#api-member-stored-value-cards) | [`goodsCarDeduct`](#dwd-dim-member-card-account-ex) |
| 40 | `goodsServiceCardDeduct` | NUMERIC(18,2) | [`goodsServiceCardDeduct`](#api-member-stored-value-cards) | [`goodsServiceCardDeduct`](#dwd-dim-member-card-account-ex) |
| 41 | `assistantCardDeduct` | NUMERIC(18,2) | [`assistantCardDeduct`](#api-member-stored-value-cards) | [`assistantCardDeduct`](#dwd-dim-member-card-account-ex) |
| 42 | `assistantServiceCardDeduct` | NUMERIC(18,2) | [`assistantServiceCardDeduct`](#api-member-stored-value-cards) | [`assistantServiceCardDeduct`](#dwd-dim-member-card-account-ex) |
| 43 | `assistantRewardCardDeduct` | NUMERIC(18,2) | [`assistantRewardCardDeduct`](#api-member-stored-value-cards) | [`assistantRewardCardDeduct`](#dwd-dim-member-card-account-ex) |
| 44 | `cardSettleDeduct` | NUMERIC(18,2) | [`cardSettleDeduct`](#api-member-stored-value-cards) | [`cardSettleDeduct`](#dwd-dim-member-card-account-ex) |
| 45 | `couponCardDeduct` | NUMERIC(18,2) | [`couponCardDeduct`](#api-member-stored-value-cards) | [`couponCardDeduct`](#dwd-dim-member-card-account-ex) |
| 46 | `deliveryFeeDeduct` | NUMERIC(18,2) | [`deliveryFeeDeduct`](#api-member-stored-value-cards) | [`deliveryFeeDeduct`](#dwd-dim-member-card-account-ex) |
| 47 | `use_scene` | INT | [`use_scene`](#api-member-stored-value-cards) | [`use_scene`](#dwd-dim-member-card-account-ex) |
| 48 | `able_cross_site` | INT | [`able_cross_site`](#api-member-stored-value-cards) | [`able_cross_site`](#dwd-dim-member-card-account-ex) |
| 49 | `is_allow_give` | INT | [`is_allow_give`](#api-member-stored-value-cards) | [`is_allow_give`](#dwd-dim-member-card-account-ex) |
| 50 | `is_allow_order_deduct` | INT | [`is_allow_order_deduct`](#api-member-stored-value-cards) | [`is_allow_order_deduct`](#dwd-dim-member-card-account-ex) |
| 51 | `is_delete` | INT | [`is_delete`](#api-member-stored-value-cards) | [`is_delete`](#dwd-dim-member-card-account) |
| 52 | `bind_password` | TEXT | [`bind_password`](#api-member-stored-value-cards) | [`bind_password`](#dwd-dim-member-card-account-ex) |
| 53 | `goods_discount_range_type` | INT | [`goods_discount_range_type`](#api-member-stored-value-cards) | [`goods_discount_range_type`](#dwd-dim-member-card-account-ex) |
| 54 | `goodsCategoryId` | BIGINT | [`goodsCategoryId`](#api-member-stored-value-cards) | [`goodsCategoryId`](#dwd-dim-member-card-account-ex) |
| 55 | `tableAreaId` | BIGINT | [`tableAreaId`](#api-member-stored-value-cards) | [`tableAreaId`](#dwd-dim-member-card-account-ex) |
| 56 | `effect_site_id` | BIGINT | [`effect_site_id`](#api-member-stored-value-cards) | [`effect_site_id`](#dwd-dim-member-card-account-ex) |
| 57 | `start_time` | TIMESTAMP | [`start_time`](#api-member-stored-value-cards) | [`start_time`](#dwd-dim-member-card-account) |
| 58 | `end_time` | TIMESTAMP | [`end_time`](#api-member-stored-value-cards) | [`end_time`](#dwd-dim-member-card-account) |
| 59 | `disable_start_time` | TIMESTAMP | [`disable_start_time`](#api-member-stored-value-cards) | [`disable_start_time`](#dwd-dim-member-card-account-ex) |
| 60 | `disable_end_time` | TIMESTAMP | [`disable_end_time`](#api-member-stored-value-cards) | [`disable_end_time`](#dwd-dim-member-card-account-ex) |
| 61 | `last_consume_time` | TIMESTAMP | [`last_consume_time`](#api-member-stored-value-cards) | [`last_consume_time`](#dwd-dim-member-card-account) |
| 62 | `create_time` | TIMESTAMP | [`create_time`](#api-member-stored-value-cards) | [`create_time`](#dwd-dim-member-card-account-ex) |
| 63 | `status` | INT | [`status`](#api-member-stored-value-cards) | [`status`](#dwd-dim-member-card-account) |
| 64 | `sort` | INT | [`sort`](#api-member-stored-value-cards) | [`sort`](#dwd-dim-member-card-account-ex) |
| 65 | `tenantAvatar` | TEXT | [`tenantAvatar`](#api-member-stored-value-cards) | [`tenantAvatar`](#dwd-dim-member-card-account-ex) |
| 66 | `tenantName` | TEXT | [`tenantName`](#api-member-stored-value-cards) | [`tenant_name`](#dwd-dim-member-card-account-ex) |
| 67 | `pdAssisnatLevel` | TEXT | [`pdAssisnatLevel`](#api-member-stored-value-cards) | [`pdAssisnatLevel`](#dwd-dim-member-card-account-ex) |
| 68 | `cxAssisnatLevel` | TEXT | [`cxAssisnatLevel`](#api-member-stored-value-cards) | [`cxAssisnatLevel`](#dwd-dim-member-card-account-ex) |
| 69 | `able_share_member_discount` | BOOLEAN | [`able_share_member_discount`](#api-member-stored-value-cards) | [`able_share_member_discount`](#dwd-dim-member-card-account-ex) |
| 70 | `electricity_deduct_radio` | NUMERIC(18,4) | [`electricity_deduct_radio`](#api-member-stored-value-cards) | [`electricity_deduct_radio`](#dwd-dim-member-card-account-ex) |
| 71 | `electricity_discount` | NUMERIC(18,4) | [`electricity_discount`](#api-member-stored-value-cards) | [`electricity_discount`](#dwd-dim-member-card-account-ex) |
| 72 | `electricitycarddeduct` | BOOLEAN | [`electricityCardDeduct`](#api-member-stored-value-cards) | [`electricity_card_deduct`](#dwd-dim-member-card-account-ex) |
| 73 | `member_grade` | BIGINT | [`member_grade`](#api-member-stored-value-cards) | [`member_grade`](#dwd-dim-member-card-account) |
| 74 | `principal_balance` | NUMERIC(18,2) | [`principal_balance`](#api-member-stored-value-cards) | [`principal_balance`](#dwd-dim-member-card-account) |
| 75 | `rechargefreezebalance` | NUMERIC(18,2) | [`rechargeFreezeBalance`](#api-member-stored-value-cards) | [`recharge_freeze_balance`](#dwd-dim-member-card-account-ex) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dim_member_card_account` — 维度 (23 列) [🔗 ODS](#ods-member-stored-value-cards)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `member_card_id` | BIGINT | [`id`](#ods-member-stored-value-cards) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 3 | `register_site_id` | BIGINT | [`register_site_id`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 4 | `tenant_member_id` | BIGINT | [`tenant_member_id`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 5 | `system_member_id` | BIGINT | [`system_member_id`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 6 | `card_type_id` | BIGINT | [`card_type_id`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 7 | `member_card_grade_code` | BIGINT | [`member_card_grade_code`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 8 | `member_card_grade_code_name` | TEXT | [`member_card_grade_code_name`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 9 | `member_card_type_name` | TEXT | [`member_card_type_name`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 10 | `member_name` | TEXT | [`member_name`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 11 | `member_mobile` | TEXT | [`member_mobile`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 12 | `balance` | NUMERIC(18,2) | [`balance`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 13 | `start_time` | TIMESTAMPTZ | [`start_time`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 14 | `end_time` | TIMESTAMPTZ | [`end_time`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 15 | `last_consume_time` | TIMESTAMPTZ | [`last_consume_time`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 16 | `status` | INTEGER | [`status`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 17 | `is_delete` | INTEGER | [`is_delete`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 18 | `principal_balance` | NUMERIC(18,2) | [`principal_balance`](#ods-member-stored-value-cards) | 直接 | |
| 19 | `member_grade` | BIGINT | [`member_grade`](#ods-member-stored-value-cards) | 直接 | |
| 20 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 21 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 22 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 23 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dim_member_card_account_ex` — 维度(扩展) (61 列) [🔗 ODS](#ods-member-stored-value-cards)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `member_card_id` | BIGINT | [`id`](#ods-member-stored-value-cards) | 直接 | 字段重命名 |
| 2 | `site_name` | TEXT | [`site_name`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 3 | `tenant_name` | VARCHAR(64) | [`tenantname`](#ods-member-stored-value-cards) | 直接 | 字段重命名 |
| 4 | `tenantAvatar` | TEXT | [`tenantavatar`](#ods-member-stored-value-cards) | 直接 | |
| 5 | `effect_site_id` | BIGINT | [`effect_site_id`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 6 | `able_cross_site` | INTEGER | [`able_cross_site`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 7 | `card_physics_type` | INTEGER | [`card_physics_type`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 8 | `card_no` | TEXT | [`card_no`](#ods-member-stored-value-cards) | 直接 | |
| 9 | `bind_password` | TEXT | [`bind_password`](#ods-member-stored-value-cards) | 直接 | |
| 10 | `use_scene` | TEXT | [`use_scene`](#ods-member-stored-value-cards) | 直接 | |
| 11 | `denomination` | NUMERIC(18,2) | [`denomination`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 12 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 13 | `disable_start_time` | TIMESTAMPTZ | [`disable_start_time`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 14 | `disable_end_time` | TIMESTAMPTZ | [`disable_end_time`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 15 | `is_allow_give` | INTEGER | [`is_allow_give`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 16 | `is_allow_order_deduct` | INTEGER | [`is_allow_order_deduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 17 | `sort` | INTEGER | [`sort`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 18 | `table_discount` | NUMERIC(10,2) | [`table_discount`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 19 | `goods_discount` | NUMERIC(10,2) | [`goods_discount`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 20 | `assistant_discount` | NUMERIC(10,2) | [`assistant_discount`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 21 | `assistant_reward_discount` | NUMERIC(10,2) | [`assistant_reward_discount`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 22 | `table_service_discount` | NUMERIC(10,2) | [`table_service_discount`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 23 | `goods_service_discount` | NUMERIC(10,2) | [`goods_service_discount`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 24 | `assistant_service_discount` | NUMERIC(10,2) | [`assistant_service_discount`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 25 | `coupon_discount` | NUMERIC(10,2) | [`coupon_discount`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 26 | `table_discount_sub_switch` | INTEGER | [`table_discount_sub_switch`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 27 | `goods_discount_sub_switch` | INTEGER | [`goods_discount_sub_switch`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 28 | `assistant_discount_sub_switch` | INTEGER | [`assistant_discount_sub_switch`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 29 | `assistant_reward_discount_sub_switch` | INTEGER | [`assistant_reward_discount_sub_switch`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 30 | `goods_discount_range_type` | INTEGER | [`goods_discount_range_type`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 31 | `table_deduct_radio` | NUMERIC(10,2) | [`table_deduct_radio`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 32 | `goods_deduct_radio` | NUMERIC(10,2) | [`goods_deduct_radio`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 33 | `assistant_deduct_radio` | NUMERIC(10,2) | [`assistant_deduct_radio`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 34 | `table_service_deduct_radio` | NUMERIC(10,2) | [`table_service_deduct_radio`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 35 | `goods_service_deduct_radio` | NUMERIC(10,2) | [`goods_service_deduct_radio`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 36 | `assistant_service_deduct_radio` | NUMERIC(10,2) | [`assistant_service_deduct_radio`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 37 | `assistant_reward_deduct_radio` | NUMERIC(10,2) | [`assistant_reward_deduct_radio`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 38 | `coupon_deduct_radio` | NUMERIC(10,2) | [`coupon_deduct_radio`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 39 | `cardSettleDeduct` | NUMERIC(18,2) | [`cardSettleDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 40 | `tableCardDeduct` | NUMERIC(18,2) | [`tableCardDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 41 | `tableServiceCardDeduct` | NUMERIC(18,2) | [`tableServiceCardDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 42 | `goodsCarDeduct` | NUMERIC(18,2) | [`goodsCarDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 43 | `goodsServiceCardDeduct` | NUMERIC(18,2) | [`goodsServiceCardDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 44 | `assistantCardDeduct` | NUMERIC(18,2) | [`assistantCardDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 45 | `assistantServiceCardDeduct` | NUMERIC(18,2) | [`assistantServiceCardDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 46 | `assistantRewardCardDeduct` | NUMERIC(18,2) | [`assistantRewardCardDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 47 | `couponCardDeduct` | NUMERIC(18,2) | [`couponCardDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 48 | `deliveryFeeDeduct` | NUMERIC(18,2) | [`deliveryFeeDeduct`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 49 | `tableAreaId` | TEXT | [`tableareaid`](#ods-member-stored-value-cards) | 直接 | |
| 50 | `goodsCategoryId` | TEXT | [`goodscategoryid`](#ods-member-stored-value-cards) | 直接 | |
| 51 | `pdAssisnatLevel` | TEXT | [`pdAssisnatLevel`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 52 | `cxAssisnatLevel` | TEXT | [`cxAssisnatLevel`](#ods-member-stored-value-cards) | 直接 | 同名直传 |
| 53 | `able_share_member_discount` | BOOLEAN | [`able_share_member_discount`](#ods-member-stored-value-cards) | → boolean | |
| 54 | `electricity_deduct_radio` | NUMERIC(18,4) | [`electricity_deduct_radio`](#ods-member-stored-value-cards) | 直接 | |
| 55 | `electricity_discount` | NUMERIC(18,4) | [`electricity_discount`](#ods-member-stored-value-cards) | 直接 | |
| 56 | `electricity_card_deduct` | BOOLEAN | [`electricitycarddeduct`](#ods-member-stored-value-cards) | → boolean | 字段重命名 |
| 57 | `recharge_freeze_balance` | NUMERIC(18,2) | [`rechargefreezebalance`](#ods-member-stored-value-cards) | 直接 | 字段重命名 |
| 58 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 59 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 60 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 61 | `SCD2_version` | INT | — | — | SCD2 元数据 |
---
## 会员余额变动 (`member_balance_changes`)
- 任务编码: `ODS_MEMBER_BALANCE`
- API 端点: `/MemberProfile/GetMemberCardBalanceChange`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 200
### API 源字段(28 个) [🔗 ODS](#ods-member-balance-changes)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `memberCardTypeName` | string | 储值卡 | [`memberCardTypeName`](#ods-member-balance-changes) | ✅ 同名映射 |
| 2 | `paySiteName` | string | 朗朗桌球 | [`paySiteName`](#ods-member-balance-changes) | ✅ 同名映射 |
| 3 | `registerSiteName` | string | 朗朗桌球 | [`registerSiteName`](#ods-member-balance-changes) | ✅ 同名映射 |
| 4 | `memberName` | string | 罗先生 | [`memberName`](#ods-member-balance-changes) | ✅ 同名映射 |
| 5 | `memberMobile` | string | 13924036996 | [`memberMobile`](#ods-member-balance-changes) | ✅ 同名映射 |
| 6 | `id` | integer | 3093844118358341 | [`id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 7 | `account_data` | number | -232.0 | [`account_data`](#ods-member-balance-changes) | ✅ 同名映射 |
| 8 | `after` | number | 110.64 | [`after`](#ods-member-balance-changes) | ✅ 同名映射 |
| 9 | `before` | number | 342.64 | [`before`](#ods-member-balance-changes) | ✅ 同名映射 |
| 10 | `card_type_id` | integer | 2793249295533893 | [`card_type_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 11 | `create_time` | string | 2026-02-14 00:01:01 | [`create_time`](#ods-member-balance-changes) | ✅ 同名映射 |
| 12 | `from_type` | integer | 1 | [`from_type`](#ods-member-balance-changes) | ✅ 同名映射 |
| 13 | `is_delete` | integer | 0 | [`is_delete`](#ods-member-balance-changes) | ✅ 同名映射 |
| 14 | `operator_id` | integer | 2790687322443013 | [`operator_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 15 | `operator_name` | string | 收银员:郑丽珊 | [`operator_name`](#ods-member-balance-changes) | ✅ 同名映射 |
| 16 | `payment_method` | integer | 0 | [`payment_method`](#ods-member-balance-changes) | ✅ 同名映射 |
| 17 | `refund_amount` | number | 0.0 | [`refund_amount`](#ods-member-balance-changes) | ✅ 同名映射 |
| 18 | `register_site_id` | integer | 2790685415443269 | [`register_site_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 19 | `relate_id` | integer | 3093843703564549 | [`relate_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 20 | `remark` | string | | [`remark`](#ods-member-balance-changes) | ✅ 同名映射 |
| 21 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 22 | `system_member_id` | integer | 2799207358777093 | [`system_member_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 23 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 24 | `tenant_member_card_id` | integer | 2799218552833797 | [`tenant_member_card_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 25 | `tenant_member_id` | integer | 2799207359858437 | [`tenant_member_id`](#ods-member-balance-changes) | ✅ 同名映射 |
| 26 | `principal_after` | number | 110.64 | [`principal_after`](#ods-member-balance-changes) | ✅ 同名映射 |
| 27 | `principal_before` | number | 342.64 | [`principal_before`](#ods-member-balance-changes) | ✅ 同名映射 |
| 28 | `principal_data` | number | -232.0 | [`principal_data`](#ods-member-balance-changes) | ✅ 同名映射 |
> 映射统计:28 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.member_balance_changes` (33 列) [🔗 API](#api-member-balance-changes)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `tenant_id` | BIGINT | [`tenant_id`](#api-member-balance-changes) | [`tenant_id`](#dwd-dwd-member-balance-change) |
| 2 | `site_id` | BIGINT | [`site_id`](#api-member-balance-changes) | [`site_id`](#dwd-dwd-member-balance-change) |
| 3 | `register_site_id` | BIGINT | [`register_site_id`](#api-member-balance-changes) | [`register_site_id`](#dwd-dwd-member-balance-change) |
| 4 | `registerSiteName` | TEXT | [`registerSiteName`](#api-member-balance-changes) | [`register_site_name`](#dwd-dwd-member-balance-change-ex) |
| 5 | `paySiteName` | TEXT | [`paySiteName`](#api-member-balance-changes) | [`pay_site_name`](#dwd-dwd-member-balance-change-ex) |
| 6 | `id` | BIGINT | [`id`](#api-member-balance-changes) | [`balance_change_id`](#dwd-dwd-member-balance-change), [`balance_change_id`](#dwd-dwd-member-balance-change-ex) |
| 7 | `tenant_member_id` | BIGINT | [`tenant_member_id`](#api-member-balance-changes) | [`tenant_member_id`](#dwd-dwd-member-balance-change) |
| 8 | `tenant_member_card_id` | BIGINT | [`tenant_member_card_id`](#api-member-balance-changes) | [`tenant_member_card_id`](#dwd-dwd-member-balance-change) |
| 9 | `system_member_id` | BIGINT | [`system_member_id`](#api-member-balance-changes) | [`system_member_id`](#dwd-dwd-member-balance-change) |
| 10 | `memberName` | TEXT | [`memberName`](#api-member-balance-changes) | [`member_name`](#dwd-dwd-member-balance-change) |
| 11 | `memberMobile` | TEXT | [`memberMobile`](#api-member-balance-changes) | [`member_mobile`](#dwd-dwd-member-balance-change) |
| 12 | `card_type_id` | BIGINT | [`card_type_id`](#api-member-balance-changes) | [`card_type_id`](#dwd-dwd-member-balance-change) |
| 13 | `memberCardTypeName` | TEXT | [`memberCardTypeName`](#api-member-balance-changes) | [`card_type_name`](#dwd-dwd-member-balance-change) |
| 14 | `account_data` | NUMERIC(18,2) | [`account_data`](#api-member-balance-changes) | [`change_amount`](#dwd-dwd-member-balance-change) |
| 15 | `before` | NUMERIC(18,2) | [`before`](#api-member-balance-changes) | [`balance_before`](#dwd-dwd-member-balance-change) |
| 16 | `after` | NUMERIC(18,2) | [`after`](#api-member-balance-changes) | [`balance_after`](#dwd-dwd-member-balance-change) |
| 17 | `refund_amount` | NUMERIC(18,2) | [`refund_amount`](#api-member-balance-changes) | [`refund_amount`](#dwd-dwd-member-balance-change-ex) |
| 18 | `from_type` | INT | [`from_type`](#api-member-balance-changes) | [`from_type`](#dwd-dwd-member-balance-change) |
| 19 | `payment_method` | INT | [`payment_method`](#api-member-balance-changes) | [`payment_method`](#dwd-dwd-member-balance-change) |
| 20 | `relate_id` | BIGINT | [`relate_id`](#api-member-balance-changes) | — |
| 21 | `remark` | TEXT | [`remark`](#api-member-balance-changes) | [`remark`](#dwd-dwd-member-balance-change) |
| 22 | `operator_id` | BIGINT | [`operator_id`](#api-member-balance-changes) | [`operator_id`](#dwd-dwd-member-balance-change-ex) |
| 23 | `operator_name` | TEXT | [`operator_name`](#api-member-balance-changes) | [`operator_name`](#dwd-dwd-member-balance-change-ex) |
| 24 | `is_delete` | INT | [`is_delete`](#api-member-balance-changes) | [`is_delete`](#dwd-dwd-member-balance-change) |
| 25 | `create_time` | TIMESTAMP | [`create_time`](#api-member-balance-changes) | [`change_time`](#dwd-dwd-member-balance-change) |
| 26 | `principal_after` | NUMERIC(18,2) | [`principal_after`](#api-member-balance-changes) | [`principal_after`](#dwd-dwd-member-balance-change) |
| 27 | `principal_before` | NUMERIC(18,2) | [`principal_before`](#api-member-balance-changes) | [`principal_before`](#dwd-dwd-member-balance-change) |
| 28 | `principal_data` | TEXT | [`principal_data`](#api-member-balance-changes) | [`principal_data`](#dwd-dwd-member-balance-change-ex) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dwd_member_balance_change` — 事实 (22 列) [🔗 ODS](#ods-member-balance-changes)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `balance_change_id` | BIGINT | [`id`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 3 | `site_id` | BIGINT | [`site_id`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 4 | `register_site_id` | BIGINT | [`register_site_id`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 5 | `tenant_member_id` | BIGINT | [`tenant_member_id`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 6 | `system_member_id` | BIGINT | [`system_member_id`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 7 | `tenant_member_card_id` | BIGINT | [`tenant_member_card_id`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 8 | `card_type_id` | BIGINT | [`card_type_id`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 9 | `card_type_name` | VARCHAR(32) | [`membercardtypename`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 10 | `member_name` | VARCHAR(64) | [`membername`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 11 | `member_mobile` | VARCHAR(20) | [`membermobile`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 12 | `balance_before` | NUMERIC(18,2) | [`before`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 13 | `change_amount` | NUMERIC(18,2) | [`account_data`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 14 | `balance_after` | NUMERIC(18,2) | [`after`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 15 | `from_type` | INTEGER | [`from_type`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 16 | `payment_method` | INTEGER | [`payment_method`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 17 | `change_time` | TIMESTAMPTZ | [`create_time`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 18 | `is_delete` | INTEGER | [`is_delete`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 19 | `remark` | VARCHAR(255) | [`remark`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 20 | `principal_before` | NUMERIC(18,2) | [`principal_before`](#ods-member-balance-changes) | 直接 | |
| 21 | `principal_after` | NUMERIC(18,2) | [`principal_after`](#ods-member-balance-changes) | 直接 | |
| 22 | `principal_change_amount` | NUMERIC(18,2) | — | — | 未显式映射 |
### DWD: `dwd.dwd_member_balance_change_ex` — 事实(扩展) (7 列) [🔗 ODS](#ods-member-balance-changes)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `balance_change_id` | BIGINT | [`id`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 2 | `pay_site_name` | VARCHAR(64) | [`paysitename`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 3 | `register_site_name` | VARCHAR(64) | [`registersitename`](#ods-member-balance-changes) | 直接 | 字段重命名 |
| 4 | `refund_amount` | NUMERIC(18,2) | [`refund_amount`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 5 | `operator_id` | BIGINT | [`operator_id`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 6 | `operator_name` | VARCHAR(64) | [`operator_name`](#ods-member-balance-changes) | 直接 | 同名直传 |
| 7 | `principal_data` | TEXT | [`principal_data`](#ods-member-balance-changes) | 直接 | |
---
## 充值结算 (`recharge_settlements`)
- 任务编码: `ODS_RECHARGE_SETTLE`
- API 端点: `/Site/GetRechargeSettleList`
- 时间字段: `rangeStartTime` / `rangeEndTime`
- 获取记录数: 200
### API 源字段(68 个) [🔗 ODS](#ods-recharge-settlements)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `id` | integer | 3087072625102533 | [`id`](#ods-recharge-settlements) | ✅ 同名映射 |
| 2 | `tenantId` | integer | 2790683160709957 | [`tenantid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 3 | `siteId` | integer | 2790685415443269 | [`siteid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 4 | `siteName` | string | | [`sitename`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 5 | `balanceAmount` | number | 0.0 | [`balanceamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 6 | `cardAmount` | number | 0.0 | [`cardamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 7 | `cashAmount` | number | 0.0 | [`cashamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 8 | `couponAmount` | number | 0.0 | [`couponamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 9 | `createTime` | string | 2026-02-09 05:12:42 | [`createtime`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 10 | `memberId` | integer | 2799207363643141 | [`memberid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 11 | `memberName` | string | 葛先生 | [`membername`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 12 | `tenantMemberCardId` | integer | 2799216572794629 | [`tenantmembercardid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 13 | `memberCardTypeName` | string | 储值卡 | [`membercardtypename`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 14 | `memberPhone` | string | 13811638071 | [`memberphone`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 15 | `tableId` | integer | 0 | [`tableid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 16 | `consumeMoney` | number | 10000.0 | [`consumemoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 17 | `onlineAmount` | number | 0.0 | [`onlineamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 18 | `operatorId` | integer | 2790687322443013 | [`operatorid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 19 | `operatorName` | string | 收银员:郑丽珊 | [`operatorname`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 20 | `revokeOrderId` | integer | 0 | [`revokeorderid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 21 | `revokeOrderName` | string | | [`revokeordername`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 22 | `revokeTime` | string | 0001-01-01 00:00:00 | [`revoketime`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 23 | `payAmount` | number | 10000.0 | [`payamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 24 | `pointAmount` | number | 10000.0 | [`pointamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 25 | `refundAmount` | number | 0.0 | [`refundamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 26 | `settleName` | string | 充值订单 | [`settlename`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 27 | `settleRelateId` | integer | 3087072624987845 | [`settlerelateid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 28 | `settleStatus` | integer | 2 | [`settlestatus`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 29 | `settleType` | integer | 5 | [`settletype`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 30 | `payTime` | string | 2026-02-09 05:12:42 | [`paytime`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 31 | `roundingAmount` | number | 0.0 | [`roundingamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 32 | `paymentMethod` | integer | 4 | [`paymentmethod`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 33 | `adjustAmount` | number | 0.0 | [`adjustamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 34 | `assistantCxMoney` | number | 0.0 | [`assistantcxmoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 35 | `assistantPdMoney` | number | 0.0 | [`assistantpdmoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 36 | `couponSaleAmount` | number | 0.0 | [`couponsaleamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 37 | `plCouponSaleAmount` | number | 0.0 | [`plcouponsaleamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 38 | `merVouSalesAmount` | number | 0.0 | [`mervousalesamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 39 | `memberDiscountAmount` | number | 0.0 | [`memberdiscountamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 40 | `tableChargeMoney` | number | 0.0 | [`tablechargemoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 41 | `goodsMoney` | number | 0.0 | [`goodsmoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 42 | `realGoodsMoney` | number | 0.0 | [`realgoodsmoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 43 | `serviceMoney` | number | 0.0 | [`servicemoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 44 | `prepayMoney` | number | 0.0 | [`prepaymoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 45 | `salesManName` | string | | [`salesmanname`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 46 | `orderRemark` | string | | [`orderremark`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 47 | `salesManUserId` | integer | 0 | [`salesmanuserid`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 48 | `canBeRevoked` | boolean | False | [`canberevoked`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 49 | `pointDiscountPrice` | number | 0.0 | [`pointdiscountprice`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 50 | `pointDiscountCost` | number | 0.0 | [`pointdiscountcost`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 51 | `activityDiscount` | number | 0.0 | [`activitydiscount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 52 | `serialNumber` | integer | 0 | [`serialnumber`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 53 | `assistantManualDiscount` | number | 0.0 | [`assistantmanualdiscount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 54 | `allCouponDiscount` | number | 0.0 | [`allcoupondiscount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 55 | `goodsPromotionMoney` | number | 0.0 | [`goodspromotionmoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 56 | `assistantPromotionMoney` | number | 0.0 | [`assistantpromotionmoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 57 | `isUseCoupon` | boolean | False | [`isusecoupon`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 58 | `isUseDiscount` | boolean | False | [`isusediscount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 59 | `isActivity` | boolean | False | [`isactivity`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 60 | `isBindMember` | boolean | False | [`isbindmember`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 61 | `isFirst` | integer | 2 | [`isfirst`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 62 | `rechargeCardAmount` | integer | 0 | [`rechargecardamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 63 | `giftCardAmount` | integer | 0 | [`giftcardamount`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 64 | `electricityMoney` | number | 0.0 | [`electricitymoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 65 | `realElectricityMoney` | number | 0.0 | [`realelectricitymoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 66 | `electricityAdjustMoney` | number | 0.0 | [`electricityadjustmoney`](#ods-recharge-settlements) | 🔄 大小写不敏感匹配 |
| 67 | `siteProfile` | object | {"id": 2790685415443269, "org_id": 27906... | — | 📦 嵌套对象,不直接映射 |
| 68 | `settleList` | object | {"id": 3087072625102533, "tenantId": 279... | — | 📦 嵌套对象,展平后各字段独立映射 |
> 映射统计:66 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.recharge_settlements` (71 列) [🔗 API](#api-recharge-settlements)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-recharge-settlements) | [`recharge_order_id`](#dwd-dwd-recharge-order), [`recharge_order_id`](#dwd-dwd-recharge-order-ex) |
| 2 | `tenantid` | BIGINT | [`tenantId`](#api-recharge-settlements) | [`tenant_id`](#dwd-dwd-recharge-order) |
| 3 | `siteid` | BIGINT | [`siteId`](#api-recharge-settlements) | [`site_id`](#dwd-dwd-recharge-order) |
| 4 | `sitename` | TEXT | [`siteName`](#api-recharge-settlements) | [`site_name_snapshot`](#dwd-dwd-recharge-order-ex) |
| 5 | `balanceamount` | NUMERIC(18,2) | [`balanceAmount`](#api-recharge-settlements) | [`balance_amount`](#dwd-dwd-recharge-order-ex) |
| 6 | `cardamount` | NUMERIC(18,2) | [`cardAmount`](#api-recharge-settlements) | [`card_amount`](#dwd-dwd-recharge-order-ex) |
| 7 | `cashamount` | NUMERIC(18,2) | [`cashAmount`](#api-recharge-settlements) | [`cash_amount`](#dwd-dwd-recharge-order) |
| 8 | `couponamount` | NUMERIC(18,2) | [`couponAmount`](#api-recharge-settlements) | [`coupon_amount`](#dwd-dwd-recharge-order-ex) |
| 9 | `createtime` | TIMESTAMPTZ | [`createTime`](#api-recharge-settlements) | [`create_time`](#dwd-dwd-recharge-order) |
| 10 | `memberid` | BIGINT | [`memberId`](#api-recharge-settlements) | [`member_id`](#dwd-dwd-recharge-order) |
| 11 | `membername` | TEXT | [`memberName`](#api-recharge-settlements) | [`member_name_snapshot`](#dwd-dwd-recharge-order) |
| 12 | `tenantmembercardid` | BIGINT | [`tenantMemberCardId`](#api-recharge-settlements) | [`tenant_member_card_id`](#dwd-dwd-recharge-order) |
| 13 | `membercardtypename` | TEXT | [`memberCardTypeName`](#api-recharge-settlements) | [`member_card_type_name`](#dwd-dwd-recharge-order) |
| 14 | `memberphone` | TEXT | [`memberPhone`](#api-recharge-settlements) | [`member_phone_snapshot`](#dwd-dwd-recharge-order) |
| 15 | `tableid` | BIGINT | [`tableId`](#api-recharge-settlements) | [`table_id`](#dwd-dwd-recharge-order-ex) |
| 16 | `consumemoney` | NUMERIC(18,2) | [`consumeMoney`](#api-recharge-settlements) | [`consume_money`](#dwd-dwd-recharge-order-ex) |
| 17 | `onlineamount` | NUMERIC(18,2) | [`onlineAmount`](#api-recharge-settlements) | [`online_amount`](#dwd-dwd-recharge-order-ex) |
| 18 | `operatorid` | BIGINT | [`operatorId`](#api-recharge-settlements) | [`operator_id`](#dwd-dwd-recharge-order-ex) |
| 19 | `operatorname` | TEXT | [`operatorName`](#api-recharge-settlements) | [`operator_name_snapshot`](#dwd-dwd-recharge-order-ex) |
| 20 | `revokeorderid` | BIGINT | [`revokeOrderId`](#api-recharge-settlements) | [`revoke_order_id`](#dwd-dwd-recharge-order-ex) |
| 21 | `revokeordername` | TEXT | [`revokeOrderName`](#api-recharge-settlements) | [`revoke_order_name`](#dwd-dwd-recharge-order-ex) |
| 22 | `revoketime` | TIMESTAMPTZ | [`revokeTime`](#api-recharge-settlements) | [`revoke_time`](#dwd-dwd-recharge-order-ex) |
| 23 | `payamount` | NUMERIC(18,2) | [`payAmount`](#api-recharge-settlements) | [`pay_amount`](#dwd-dwd-recharge-order) |
| 24 | `pointamount` | NUMERIC(18,2) | [`pointAmount`](#api-recharge-settlements) | [`point_amount`](#dwd-dwd-recharge-order) |
| 25 | `refundamount` | NUMERIC(18,2) | [`refundAmount`](#api-recharge-settlements) | [`refund_amount`](#dwd-dwd-recharge-order) |
| 26 | `settlename` | TEXT | [`settleName`](#api-recharge-settlements) | [`settle_name`](#dwd-dwd-recharge-order) |
| 27 | `settlerelateid` | BIGINT | [`settleRelateId`](#api-recharge-settlements) | [`settle_relate_id`](#dwd-dwd-recharge-order) |
| 28 | `settlestatus` | INT | [`settleStatus`](#api-recharge-settlements) | [`settle_status`](#dwd-dwd-recharge-order-ex) |
| 29 | `settletype` | INT | [`settleType`](#api-recharge-settlements) | [`settle_type`](#dwd-dwd-recharge-order) |
| 30 | `paytime` | TIMESTAMPTZ | [`payTime`](#api-recharge-settlements) | [`pay_time`](#dwd-dwd-recharge-order) |
| 31 | `roundingamount` | NUMERIC(18,2) | [`roundingAmount`](#api-recharge-settlements) | [`rounding_amount`](#dwd-dwd-recharge-order-ex) |
| 32 | `paymentmethod` | INT | [`paymentMethod`](#api-recharge-settlements) | [`payment_method`](#dwd-dwd-recharge-order) |
| 33 | `adjustamount` | NUMERIC(18,2) | [`adjustAmount`](#api-recharge-settlements) | [`adjust_amount`](#dwd-dwd-recharge-order-ex) |
| 34 | `assistantcxmoney` | NUMERIC(18,2) | [`assistantCxMoney`](#api-recharge-settlements) | [`assistant_cx_money`](#dwd-dwd-recharge-order-ex) |
| 35 | `assistantpdmoney` | NUMERIC(18,2) | [`assistantPdMoney`](#api-recharge-settlements) | [`assistant_pd_money`](#dwd-dwd-recharge-order-ex) |
| 36 | `couponsaleamount` | NUMERIC(18,2) | [`couponSaleAmount`](#api-recharge-settlements) | [`coupon_sale_amount`](#dwd-dwd-recharge-order-ex) |
| 37 | `memberdiscountamount` | NUMERIC(18,2) | [`memberDiscountAmount`](#api-recharge-settlements) | [`member_discount_amount`](#dwd-dwd-recharge-order-ex) |
| 38 | `tablechargemoney` | NUMERIC(18,2) | [`tableChargeMoney`](#api-recharge-settlements) | [`table_charge_money`](#dwd-dwd-recharge-order-ex) |
| 39 | `goodsmoney` | NUMERIC(18,2) | [`goodsMoney`](#api-recharge-settlements) | [`goods_money`](#dwd-dwd-recharge-order-ex) |
| 40 | `realgoodsmoney` | NUMERIC(18,2) | [`realGoodsMoney`](#api-recharge-settlements) | [`real_goods_money`](#dwd-dwd-recharge-order-ex) |
| 41 | `servicemoney` | NUMERIC(18,2) | [`serviceMoney`](#api-recharge-settlements) | [`service_money`](#dwd-dwd-recharge-order-ex) |
| 42 | `prepaymoney` | NUMERIC(18,2) | [`prepayMoney`](#api-recharge-settlements) | [`prepay_money`](#dwd-dwd-recharge-order-ex) |
| 43 | `salesmanname` | TEXT | [`salesManName`](#api-recharge-settlements) | [`salesman_name`](#dwd-dwd-recharge-order-ex) |
| 44 | `orderremark` | TEXT | [`orderRemark`](#api-recharge-settlements) | [`order_remark`](#dwd-dwd-recharge-order-ex) |
| 45 | `salesmanuserid` | BIGINT | [`salesManUserId`](#api-recharge-settlements) | [`salesman_user_id`](#dwd-dwd-recharge-order-ex) |
| 46 | `canberevoked` | BOOLEAN | [`canBeRevoked`](#api-recharge-settlements) | [`can_be_revoked`](#dwd-dwd-recharge-order-ex) |
| 47 | `pointdiscountprice` | NUMERIC(18,2) | [`pointDiscountPrice`](#api-recharge-settlements) | [`point_discount_price`](#dwd-dwd-recharge-order-ex) |
| 48 | `pointdiscountcost` | NUMERIC(18,2) | [`pointDiscountCost`](#api-recharge-settlements) | [`point_discount_cost`](#dwd-dwd-recharge-order-ex) |
| 49 | `activitydiscount` | NUMERIC(18,2) | [`activityDiscount`](#api-recharge-settlements) | [`activity_discount`](#dwd-dwd-recharge-order-ex) |
| 50 | `serialnumber` | BIGINT | [`serialNumber`](#api-recharge-settlements) | [`serial_number`](#dwd-dwd-recharge-order-ex) |
| 51 | `assistantmanualdiscount` | NUMERIC(18,2) | [`assistantManualDiscount`](#api-recharge-settlements) | [`assistant_manual_discount`](#dwd-dwd-recharge-order-ex) |
| 52 | `allcoupondiscount` | NUMERIC(18,2) | [`allCouponDiscount`](#api-recharge-settlements) | [`all_coupon_discount`](#dwd-dwd-recharge-order-ex) |
| 53 | `goodspromotionmoney` | NUMERIC(18,2) | [`goodsPromotionMoney`](#api-recharge-settlements) | [`goods_promotion_money`](#dwd-dwd-recharge-order-ex) |
| 54 | `assistantpromotionmoney` | NUMERIC(18,2) | [`assistantPromotionMoney`](#api-recharge-settlements) | [`assistant_promotion_money`](#dwd-dwd-recharge-order-ex) |
| 55 | `isusecoupon` | BOOLEAN | [`isUseCoupon`](#api-recharge-settlements) | [`is_use_coupon`](#dwd-dwd-recharge-order-ex) |
| 56 | `isusediscount` | BOOLEAN | [`isUseDiscount`](#api-recharge-settlements) | [`is_use_discount`](#dwd-dwd-recharge-order-ex) |
| 57 | `isactivity` | BOOLEAN | [`isActivity`](#api-recharge-settlements) | [`is_activity`](#dwd-dwd-recharge-order-ex) |
| 58 | `isbindmember` | BOOLEAN | [`isBindMember`](#api-recharge-settlements) | [`is_bind_member`](#dwd-dwd-recharge-order-ex) |
| 59 | `isfirst` | INT | [`isFirst`](#api-recharge-settlements) | [`is_first`](#dwd-dwd-recharge-order) |
| 60 | `rechargecardamount` | NUMERIC(18,2) | [`rechargeCardAmount`](#api-recharge-settlements) | [`recharge_card_amount`](#dwd-dwd-recharge-order-ex) |
| 61 | `giftcardamount` | NUMERIC(18,2) | [`giftCardAmount`](#api-recharge-settlements) | [`gift_card_amount`](#dwd-dwd-recharge-order-ex) |
| 62 | `electricityadjustmoney` | NUMERIC(18,2) | [`electricityAdjustMoney`](#api-recharge-settlements) | — |
| 63 | `electricitymoney` | NUMERIC(18,2) | [`electricityMoney`](#api-recharge-settlements) | — |
| 64 | `mervousalesamount` | NUMERIC(18,2) | [`merVouSalesAmount`](#api-recharge-settlements) | — |
| 65 | `plcouponsaleamount` | NUMERIC(18,2) | [`plCouponSaleAmount`](#api-recharge-settlements) | — |
| 66 | `realelectricitymoney` | NUMERIC(18,2) | [`realElectricityMoney`](#api-recharge-settlements) | — |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dwd_recharge_order` — 事实 (24 列) [🔗 ODS](#ods-recharge-settlements)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `recharge_order_id` | BIGINT | [`id`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenantid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 3 | `site_id` | BIGINT | [`siteid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 4 | `member_id` | BIGINT | [`memberid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 5 | `member_name_snapshot` | TEXT | [`membername`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 6 | `member_phone_snapshot` | TEXT | [`memberphone`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 7 | `tenant_member_card_id` | BIGINT | [`tenantmembercardid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 8 | `member_card_type_name` | TEXT | [`membercardtypename`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 9 | `settle_relate_id` | BIGINT | [`settlerelateid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 10 | `settle_type` | INTEGER | [`settletype`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 11 | `settle_name` | TEXT | [`settlename`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 12 | `is_first` | INTEGER | [`isfirst`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 13 | `pay_amount` | NUMERIC(18,2) | [`payamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 14 | `refund_amount` | NUMERIC(18,2) | [`refundamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 15 | `point_amount` | NUMERIC(18,2) | [`pointamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 16 | `cash_amount` | NUMERIC(18,2) | [`cashamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 17 | `payment_method` | INTEGER | [`paymentmethod`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 18 | `create_time` | TIMESTAMPTZ | [`createtime`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 19 | `pay_time` | TIMESTAMPTZ | [`paytime`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 20 | `pl_coupon_sale_amount` | NUMERIC(18,2) | — | — | 未显式映射 |
| 21 | `mervou_sales_amount` | NUMERIC(18,2) | — | — | 未显式映射 |
| 22 | `electricity_money` | NUMERIC(18,2) | — | — | 未显式映射 |
| 23 | `real_electricity_money` | NUMERIC(18,2) | — | — | 未显式映射 |
| 24 | `electricity_adjust_money` | NUMERIC(18,2) | — | — | 未显式映射 |
### DWD: `dwd.dwd_recharge_order_ex` — 事实(扩展) (43 列) [🔗 ODS](#ods-recharge-settlements)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `recharge_order_id` | BIGINT | [`id`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 2 | `site_name_snapshot` | TEXT | [`sitename`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 3 | `settle_status` | INTEGER | [`settlestatus`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 4 | `is_bind_member` | BOOLEAN | [`isbindmember`](#ods-recharge-settlements) | → boolean | 字段重命名 |
| 5 | `is_activity` | BOOLEAN | [`isactivity`](#ods-recharge-settlements) | → boolean | 字段重命名 |
| 6 | `is_use_coupon` | BOOLEAN | [`isusecoupon`](#ods-recharge-settlements) | → boolean | 字段重命名 |
| 7 | `is_use_discount` | BOOLEAN | [`isusediscount`](#ods-recharge-settlements) | → boolean | 字段重命名 |
| 8 | `can_be_revoked` | BOOLEAN | [`canberevoked`](#ods-recharge-settlements) | → boolean | 字段重命名 |
| 9 | `online_amount` | NUMERIC(18,2) | [`onlineamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 10 | `balance_amount` | NUMERIC(18,2) | [`balanceamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 11 | `card_amount` | NUMERIC(18,2) | [`cardamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 12 | `coupon_amount` | NUMERIC(18,2) | [`couponamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 13 | `recharge_card_amount` | NUMERIC(18,2) | [`rechargecardamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 14 | `gift_card_amount` | NUMERIC(18,2) | [`giftcardamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 15 | `prepay_money` | NUMERIC(18,2) | [`prepaymoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 16 | `consume_money` | NUMERIC(18,2) | [`consumemoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 17 | `goods_money` | NUMERIC(18,2) | [`goodsmoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 18 | `real_goods_money` | NUMERIC(18,2) | [`realgoodsmoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 19 | `table_charge_money` | NUMERIC(18,2) | [`tablechargemoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 20 | `service_money` | NUMERIC(18,2) | [`servicemoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 21 | `activity_discount` | NUMERIC(18,2) | [`activitydiscount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 22 | `all_coupon_discount` | NUMERIC(18,2) | [`allcoupondiscount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 23 | `goods_promotion_money` | NUMERIC(18,2) | [`goodspromotionmoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 24 | `assistant_promotion_money` | NUMERIC(18,2) | [`assistantpromotionmoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 25 | `assistant_pd_money` | NUMERIC(18,2) | [`assistantpdmoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 26 | `assistant_cx_money` | NUMERIC(18,2) | [`assistantcxmoney`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 27 | `assistant_manual_discount` | NUMERIC(18,2) | [`assistantmanualdiscount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 28 | `coupon_sale_amount` | NUMERIC(18,2) | [`couponsaleamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 29 | `member_discount_amount` | NUMERIC(18,2) | [`memberdiscountamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 30 | `point_discount_price` | NUMERIC(18,2) | [`pointdiscountprice`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 31 | `point_discount_cost` | NUMERIC(18,2) | [`pointdiscountcost`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 32 | `adjust_amount` | NUMERIC(18,2) | [`adjustamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 33 | `rounding_amount` | NUMERIC(18,2) | [`roundingamount`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 34 | `operator_id` | BIGINT | [`operatorid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 35 | `operator_name_snapshot` | TEXT | [`operatorname`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 36 | `salesman_user_id` | BIGINT | [`salesmanuserid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 37 | `salesman_name` | TEXT | [`salesmanname`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 38 | `order_remark` | TEXT | [`orderremark`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 39 | `table_id` | INTEGER | [`tableid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 40 | `serial_number` | INTEGER | [`serialnumber`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 41 | `revoke_order_id` | BIGINT | [`revokeorderid`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 42 | `revoke_order_name` | TEXT | [`revokeordername`](#ods-recharge-settlements) | 直接 | 字段重命名 |
| 43 | `revoke_time` | TIMESTAMPTZ | [`revoketime`](#ods-recharge-settlements) | 直接 | 字段重命名 |
---
## 团购套餐定义 (`group_buy_packages`)
- 任务编码: `ODS_GROUP_PACKAGE`
- API 端点: `/PackageCoupon/QueryPackageCouponList`
- 获取记录数: 18
### API 源字段(40 个) [🔗 ODS](#ods-group-buy-packages)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `site_name` | string | 朗朗桌球 | [`site_name`](#ods-group-buy-packages) | ✅ 同名映射 |
| 2 | `effective_status` | integer | 1 | [`effective_status`](#ods-group-buy-packages) | ✅ 同名映射 |
| 3 | `tenantTableAreaIdList` | array | [2791960001957765] | — | ⚠️ 仅存于 payload JSONB |
| 4 | `tableAreaNameList` | array | ["A区"] | — | ⚠️ 仅存于 payload JSONB |
| 5 | `tenantCouponSaleOrderItemId` | integer | 0 | [`tenantcouponsaleorderitemid`](#ods-group-buy-packages) | 🔄 大小写不敏感匹配 |
| 6 | `id` | integer | 3048468851870085 | [`id`](#ods-group-buy-packages) | ✅ 同名映射 |
| 7 | `add_end_clock` | string | 1.02:00:00 | [`add_end_clock`](#ods-group-buy-packages) | ✅ 同名映射 |
| 8 | `add_start_clock` | string | 23:00:00 | [`add_start_clock`](#ods-group-buy-packages) | ✅ 同名映射 |
| 9 | `area_tag_type` | integer | 1 | [`area_tag_type`](#ods-group-buy-packages) | ✅ 同名映射 |
| 10 | `card_type_ids` | string | 0 | [`card_type_ids`](#ods-group-buy-packages) | ✅ 同名映射 |
| 11 | `coupon_money` | number | 0.0 | [`coupon_money`](#ods-group-buy-packages) | ✅ 同名映射 |
| 12 | `create_time` | string | 2026-01-12 22:42:55 | [`create_time`](#ods-group-buy-packages) | ✅ 同名映射 |
| 13 | `creator_name` | string | 店长:郑丽珊 | [`creator_name`](#ods-group-buy-packages) | ✅ 同名映射 |
| 14 | `date_info` | string | | [`date_info`](#ods-group-buy-packages) | ✅ 同名映射 |
| 15 | `date_type` | integer | 1 | [`date_type`](#ods-group-buy-packages) | ✅ 同名映射 |
| 16 | `duration` | integer | 3600 | [`duration`](#ods-group-buy-packages) | ✅ 同名映射 |
| 17 | `end_clock` | string | 1.02:00:00 | [`end_clock`](#ods-group-buy-packages) | ✅ 同名映射 |
| 18 | `end_time` | string | 2027-01-13 00:00:00 | [`end_time`](#ods-group-buy-packages) | ✅ 同名映射 |
| 19 | `group_type` | integer | 1 | [`group_type`](#ods-group-buy-packages) | ✅ 同名映射 |
| 20 | `is_delete` | integer | 0 | [`is_delete`](#ods-group-buy-packages) | ✅ 同名映射 |
| 21 | `is_enabled` | integer | 1 | [`is_enabled`](#ods-group-buy-packages) | ✅ 同名映射 |
| 22 | `is_first_limit` | integer | 1 | [`is_first_limit`](#ods-group-buy-packages) | ✅ 同名映射 |
| 23 | `max_selectable_categories` | integer | 0 | [`max_selectable_categories`](#ods-group-buy-packages) | ✅ 同名映射 |
| 24 | `package_id` | integer | 1134850618 | [`package_id`](#ods-group-buy-packages) | ✅ 同名映射 |
| 25 | `package_name` | string | 午夜场9.9 | [`package_name`](#ods-group-buy-packages) | ✅ 同名映射 |
| 26 | `selling_price` | number | 0.0 | [`selling_price`](#ods-group-buy-packages) | ✅ 同名映射 |
| 27 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-group-buy-packages) | ✅ 同名映射 |
| 28 | `sort` | integer | 100 | [`sort`](#ods-group-buy-packages) | ✅ 同名映射 |
| 29 | `start_clock` | string | 23:00:00 | [`start_clock`](#ods-group-buy-packages) | ✅ 同名映射 |
| 30 | `start_time` | string | 2026-01-12 00:00:00 | [`start_time`](#ods-group-buy-packages) | ✅ 同名映射 |
| 31 | `system_group_type` | integer | 1 | [`system_group_type`](#ods-group-buy-packages) | ✅ 同名映射 |
| 32 | `table_area_id` | string | 0 | [`table_area_id`](#ods-group-buy-packages) | ✅ 同名映射 |
| 33 | `table_area_id_list` | string | | [`table_area_id_list`](#ods-group-buy-packages) | ✅ 同名映射 |
| 34 | `table_area_name` | string | | [`table_area_name`](#ods-group-buy-packages) | ✅ 同名映射 |
| 35 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-group-buy-packages) | ✅ 同名映射 |
| 36 | `tenant_table_area_id` | string | 0 | [`tenant_table_area_id`](#ods-group-buy-packages) | ✅ 同名映射 |
| 37 | `tenant_table_area_id_list` | string | | [`tenant_table_area_id_list`](#ods-group-buy-packages) | ✅ 同名映射 |
| 38 | `type` | integer | 1 | [`type`](#ods-group-buy-packages) | ✅ 同名映射 |
| 39 | `usable_count` | integer | 0 | [`usable_count`](#ods-group-buy-packages) | ✅ 同名映射 |
| 40 | `usable_range` | string | | [`usable_range`](#ods-group-buy-packages) | ✅ 同名映射 |
> 映射统计:38 个字段映射到 ODS,2 个仅存于 payload。
### ODS: `ods.group_buy_packages` (43 列) [🔗 API](#api-group-buy-packages)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-group-buy-packages) | [`groupbuy_package_id`](#dwd-dim-groupbuy-package), [`groupbuy_package_id`](#dwd-dim-groupbuy-package-ex) |
| 2 | `package_id` | BIGINT | [`package_id`](#api-group-buy-packages) | [`package_template_id`](#dwd-dim-groupbuy-package) |
| 3 | `package_name` | TEXT | [`package_name`](#api-group-buy-packages) | [`package_name`](#dwd-dim-groupbuy-package) |
| 4 | `selling_price` | NUMERIC(18,2) | [`selling_price`](#api-group-buy-packages) | [`selling_price`](#dwd-dim-groupbuy-package) |
| 5 | `coupon_money` | NUMERIC(18,2) | [`coupon_money`](#api-group-buy-packages) | [`coupon_face_value`](#dwd-dim-groupbuy-package) |
| 6 | `date_type` | INT | [`date_type`](#api-group-buy-packages) | [`date_type`](#dwd-dim-groupbuy-package-ex) |
| 7 | `date_info` | TEXT | [`date_info`](#api-group-buy-packages) | [`date_info`](#dwd-dim-groupbuy-package-ex) |
| 8 | `start_time` | TIMESTAMP | [`start_time`](#api-group-buy-packages) | [`start_time`](#dwd-dim-groupbuy-package) |
| 9 | `end_time` | TIMESTAMP | [`end_time`](#api-group-buy-packages) | [`end_time`](#dwd-dim-groupbuy-package) |
| 10 | `start_clock` | TEXT | [`start_clock`](#api-group-buy-packages) | [`start_clock`](#dwd-dim-groupbuy-package-ex) |
| 11 | `end_clock` | TEXT | [`end_clock`](#api-group-buy-packages) | [`end_clock`](#dwd-dim-groupbuy-package-ex) |
| 12 | `add_start_clock` | TEXT | [`add_start_clock`](#api-group-buy-packages) | [`add_start_clock`](#dwd-dim-groupbuy-package-ex) |
| 13 | `add_end_clock` | TEXT | [`add_end_clock`](#api-group-buy-packages) | [`add_end_clock`](#dwd-dim-groupbuy-package-ex) |
| 14 | `duration` | INT | [`duration`](#api-group-buy-packages) | [`duration_seconds`](#dwd-dim-groupbuy-package) |
| 15 | `usable_count` | INT | [`usable_count`](#api-group-buy-packages) | [`usable_count`](#dwd-dim-groupbuy-package-ex) |
| 16 | `usable_range` | INT | [`usable_range`](#api-group-buy-packages) | [`usable_range`](#dwd-dim-groupbuy-package-ex) |
| 17 | `table_area_id` | BIGINT | [`table_area_id`](#api-group-buy-packages) | [`table_area_id`](#dwd-dim-groupbuy-package-ex) |
| 18 | `table_area_name` | TEXT | [`table_area_name`](#api-group-buy-packages) | [`table_area_name`](#dwd-dim-groupbuy-package) |
| 19 | `table_area_id_list` | JSONB | [`table_area_id_list`](#api-group-buy-packages) | [`table_area_id_list`](#dwd-dim-groupbuy-package-ex) |
| 20 | `tenant_table_area_id` | BIGINT | [`tenant_table_area_id`](#api-group-buy-packages) | [`tenant_table_area_id`](#dwd-dim-groupbuy-package-ex) |
| 21 | `tenant_table_area_id_list` | JSONB | [`tenant_table_area_id_list`](#api-group-buy-packages) | [`tenant_table_area_id_list`](#dwd-dim-groupbuy-package) |
| 22 | `site_id` | BIGINT | [`site_id`](#api-group-buy-packages) | [`site_id`](#dwd-dim-groupbuy-package) |
| 23 | `site_name` | TEXT | [`site_name`](#api-group-buy-packages) | [`site_name`](#dwd-dim-groupbuy-package-ex) |
| 24 | `tenant_id` | BIGINT | [`tenant_id`](#api-group-buy-packages) | [`tenant_id`](#dwd-dim-groupbuy-package) |
| 25 | `card_type_ids` | JSONB | [`card_type_ids`](#api-group-buy-packages) | [`card_type_ids`](#dwd-dim-groupbuy-package) |
| 26 | `group_type` | INT | [`group_type`](#api-group-buy-packages) | [`group_type`](#dwd-dim-groupbuy-package-ex) |
| 27 | `system_group_type` | INT | [`system_group_type`](#api-group-buy-packages) | [`system_group_type`](#dwd-dim-groupbuy-package-ex) |
| 28 | `type` | INT | [`type`](#api-group-buy-packages) | [`package_type`](#dwd-dim-groupbuy-package-ex) |
| 29 | `effective_status` | INT | [`effective_status`](#api-group-buy-packages) | [`effective_status`](#dwd-dim-groupbuy-package-ex) |
| 30 | `is_enabled` | INT | [`is_enabled`](#api-group-buy-packages) | [`is_enabled`](#dwd-dim-groupbuy-package) |
| 31 | `is_delete` | INT | [`is_delete`](#api-group-buy-packages) | [`is_delete`](#dwd-dim-groupbuy-package) |
| 32 | `max_selectable_categories` | INT | [`max_selectable_categories`](#api-group-buy-packages) | [`max_selectable_categories`](#dwd-dim-groupbuy-package-ex) |
| 33 | `area_tag_type` | INT | [`area_tag_type`](#api-group-buy-packages) | [`area_tag_type`](#dwd-dim-groupbuy-package-ex) |
| 34 | `creator_name` | TEXT | [`creator_name`](#api-group-buy-packages) | [`creator_name`](#dwd-dim-groupbuy-package-ex) |
| 35 | `create_time` | TIMESTAMP | [`create_time`](#api-group-buy-packages) | [`create_time`](#dwd-dim-groupbuy-package) |
| 36 | `is_first_limit` | BOOLEAN | [`is_first_limit`](#api-group-buy-packages) | [`is_first_limit`](#dwd-dim-groupbuy-package) |
| 37 | `sort` | INT | [`sort`](#api-group-buy-packages) | [`sort`](#dwd-dim-groupbuy-package) |
| 38 | `tenantcouponsaleorderitemid` | BIGINT | [`tenantCouponSaleOrderItemId`](#api-group-buy-packages) | [`tenant_coupon_sale_order_item_id`](#dwd-dim-groupbuy-package-ex) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dim_groupbuy_package` — 维度 (22 列) [🔗 ODS](#ods-group-buy-packages)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `groupbuy_package_id` | BIGINT | [`id`](#ods-group-buy-packages) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 3 | `site_id` | BIGINT | [`site_id`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 4 | `package_name` | VARCHAR(200) | [`package_name`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 5 | `package_template_id` | BIGINT | [`package_id`](#ods-group-buy-packages) | 直接 | 字段重命名 |
| 6 | `selling_price` | NUMERIC(10,2) | [`selling_price`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 7 | `coupon_face_value` | NUMERIC(10,2) | [`coupon_money`](#ods-group-buy-packages) | 直接 | 字段重命名 |
| 8 | `duration_seconds` | INTEGER | [`duration`](#ods-group-buy-packages) | 直接 | 字段重命名 |
| 9 | `start_time` | TIMESTAMPTZ | [`start_time`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 10 | `end_time` | TIMESTAMPTZ | [`end_time`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 11 | `table_area_name` | VARCHAR(100) | [`table_area_name`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 12 | `is_enabled` | INTEGER | [`is_enabled`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 13 | `is_delete` | INTEGER | [`is_delete`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 14 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 15 | `tenant_table_area_id_list` | VARCHAR(512) | [`tenant_table_area_id_list`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 16 | `card_type_ids` | VARCHAR(255) | [`card_type_ids`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 17 | `sort` | INTEGER | [`sort`](#ods-group-buy-packages) | 直接 | |
| 18 | `is_first_limit` | BOOLEAN | [`is_first_limit`](#ods-group-buy-packages) | → boolean | |
| 19 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 20 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 21 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 22 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dim_groupbuy_package_ex` — 维度(扩展) (25 列) [🔗 ODS](#ods-group-buy-packages)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `groupbuy_package_id` | BIGINT | [`id`](#ods-group-buy-packages) | 直接 | 字段重命名 |
| 2 | `site_name` | VARCHAR(100) | [`site_name`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 3 | `usable_count` | INTEGER | [`usable_count`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 4 | `date_type` | INTEGER | [`date_type`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 5 | `usable_range` | VARCHAR(255) | [`usable_range`](#ods-group-buy-packages) | 直接 | |
| 6 | `date_info` | VARCHAR(255) | [`date_info`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 7 | `start_clock` | VARCHAR(16) | [`start_clock`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 8 | `end_clock` | VARCHAR(16) | [`end_clock`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 9 | `add_start_clock` | VARCHAR(16) | [`add_start_clock`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 10 | `add_end_clock` | VARCHAR(16) | [`add_end_clock`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 11 | `area_tag_type` | INTEGER | [`area_tag_type`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 12 | `table_area_id` | BIGINT | [`table_area_id`](#ods-group-buy-packages) | 直接 | |
| 13 | `tenant_table_area_id` | BIGINT | [`tenant_table_area_id`](#ods-group-buy-packages) | 直接 | |
| 14 | `table_area_id_list` | VARCHAR(512) | [`table_area_id_list`](#ods-group-buy-packages) | 直接 | |
| 15 | `group_type` | INTEGER | [`group_type`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 16 | `system_group_type` | INTEGER | [`system_group_type`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 17 | `package_type` | INTEGER | [`type`](#ods-group-buy-packages) | 直接 | 字段重命名 |
| 18 | `effective_status` | INTEGER | [`effective_status`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 19 | `max_selectable_categories` | INTEGER | [`max_selectable_categories`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 20 | `creator_name` | VARCHAR(100) | [`creator_name`](#ods-group-buy-packages) | 直接 | 同名直传 |
| 21 | `tenant_coupon_sale_order_item_id` | BIGINT | [`tenantcouponsaleorderitemid`](#ods-group-buy-packages) | 直接 | 字段重命名 |
| 22 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 23 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 24 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 25 | `SCD2_version` | INT | — | — | SCD2 元数据 |
---
## 团购套餐核销 (`group_buy_redemption_records`)
- 任务编码: `ODS_GROUP_BUY_REDEMPTION`
- API 端点: `/Site/GetSiteTableUseDetails`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 200
### API 源字段(52 个) [🔗 ODS](#ods-group-buy-redemption-records)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `tableName` | string | A15 | [`tableName`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 2 | `tableAreaName` | string | A区 | [`tableAreaName`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 3 | `siteName` | string | 朗朗桌球 | [`siteName`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 4 | `goodsOptionPrice` | number | 0.0 | [`goodsOptionPrice`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 5 | `id` | integer | 3093859292088645 | [`id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 6 | `assistant_promotion_money` | number | 0.0 | [`assistant_promotion_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 7 | `assistant_service_promotion_money` | number | 0.0 | [`assistant_service_promotion_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 8 | `assistant_service_share_money` | number | 0.0 | [`assistant_service_share_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 9 | `assistant_share_money` | number | 0.0 | [`assistant_share_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 10 | `coupon_code` | string | 0107305319597 | [`coupon_code`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 11 | `coupon_money` | number | 96.0 | [`coupon_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 12 | `coupon_origin_id` | integer | 3093740768184645 | [`coupon_origin_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 13 | `create_time` | string | 2026-02-14 00:16:27 | [`create_time`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 14 | `good_service_share_money` | number | 0.0 | [`good_service_share_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 15 | `goods_promotion_money` | number | 0.0 | [`goods_promotion_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 16 | `goods_share_money` | number | 0.0 | [`goods_share_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 17 | `is_delete` | integer | 0 | [`is_delete`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 18 | `is_single_order` | integer | 1 | [`is_single_order`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 19 | `ledger_amount` | number | 96.0 | [`ledger_amount`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 20 | `ledger_count` | integer | 7200 | [`ledger_count`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 21 | `ledger_group_name` | string | | [`ledger_group_name`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 22 | `ledger_name` | string | 全天A区中八两小时 | [`ledger_name`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 23 | `ledger_status` | integer | 1 | [`ledger_status`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 24 | `ledger_unit_price` | number | 39.9 | [`ledger_unit_price`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 25 | `offer_type` | integer | 1 | [`offer_type`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 26 | `operator_id` | integer | 2790687322443013 | [`operator_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 27 | `operator_name` | string | 收银员:郑丽珊 | [`operator_name`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 28 | `order_coupon_channel` | integer | 1 | [`order_coupon_channel`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 29 | `order_coupon_id` | integer | 3093740768184645 | [`order_coupon_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 30 | `order_pay_id` | integer | 0 | [`order_pay_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 31 | `order_settle_id` | integer | 3093859276196037 | [`order_settle_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 32 | `order_trade_no` | integer | 3093740766775621 | [`order_trade_no`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 33 | `promotion_activity_id` | integer | 3093740765382981 | [`promotion_activity_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 34 | `promotion_coupon_id` | integer | 3030874716834757 | [`promotion_coupon_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 35 | `promotion_seconds` | integer | 7200 | [`promotion_seconds`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 36 | `recharge_promotion_money` | number | 0.0 | [`recharge_promotion_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 37 | `recharge_share_money` | number | 0.0 | [`recharge_share_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 38 | `reward_promotion_money` | number | 0.0 | [`reward_promotion_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 39 | `sales_man_org_id` | integer | 0 | [`sales_man_org_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 40 | `salesman_name` | string | | [`salesman_name`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 41 | `salesman_role_id` | integer | 0 | [`salesman_role_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 42 | `salesman_user_id` | integer | 0 | [`salesman_user_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 43 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 44 | `table_charge_seconds` | integer | 7200 | [`table_charge_seconds`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 45 | `table_id` | integer | 2793003506815045 | [`table_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 46 | `table_service_promotion_money` | number | 0.0 | [`table_service_promotion_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 47 | `table_service_share_money` | number | 0.0 | [`table_service_share_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 48 | `table_share_money` | number | 39.9 | [`table_share_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 49 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 50 | `tenant_table_area_id` | integer | 2791960001957765 | [`tenant_table_area_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 51 | `coupon_sale_id` | integer | 0 | [`coupon_sale_id`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
| 52 | `member_discount_money` | number | 0.0 | [`member_discount_money`](#ods-group-buy-redemption-records) | ✅ 同名映射 |
> 映射统计:52 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.group_buy_redemption_records` (57 列) [🔗 API](#api-group-buy-redemption-records)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-group-buy-redemption-records) | [`redemption_id`](#dwd-dwd-groupbuy-redemption), [`redemption_id`](#dwd-dwd-groupbuy-redemption-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-group-buy-redemption-records) | [`tenant_id`](#dwd-dwd-groupbuy-redemption) |
| 3 | `site_id` | BIGINT | [`site_id`](#api-group-buy-redemption-records) | [`site_id`](#dwd-dwd-groupbuy-redemption) |
| 4 | `siteName` | TEXT | [`siteName`](#api-group-buy-redemption-records) | [`site_name`](#dwd-dwd-groupbuy-redemption-ex) |
| 5 | `table_id` | BIGINT | [`table_id`](#api-group-buy-redemption-records) | [`table_id`](#dwd-dwd-groupbuy-redemption) |
| 6 | `tableName` | TEXT | [`tableName`](#api-group-buy-redemption-records) | [`table_name`](#dwd-dwd-groupbuy-redemption-ex) |
| 7 | `tableAreaName` | TEXT | [`tableAreaName`](#api-group-buy-redemption-records) | [`table_area_name`](#dwd-dwd-groupbuy-redemption-ex) |
| 8 | `tenant_table_area_id` | BIGINT | [`tenant_table_area_id`](#api-group-buy-redemption-records) | [`tenant_table_area_id`](#dwd-dwd-groupbuy-redemption) |
| 9 | `order_trade_no` | TEXT | [`order_trade_no`](#api-group-buy-redemption-records) | [`order_trade_no`](#dwd-dwd-groupbuy-redemption) |
| 10 | `order_settle_id` | BIGINT | [`order_settle_id`](#api-group-buy-redemption-records) | [`order_settle_id`](#dwd-dwd-groupbuy-redemption) |
| 11 | `order_pay_id` | BIGINT | [`order_pay_id`](#api-group-buy-redemption-records) | [`order_pay_id`](#dwd-dwd-groupbuy-redemption-ex) |
| 12 | `order_coupon_id` | BIGINT | [`order_coupon_id`](#api-group-buy-redemption-records) | [`order_coupon_id`](#dwd-dwd-groupbuy-redemption) |
| 13 | `order_coupon_channel` | INT | [`order_coupon_channel`](#api-group-buy-redemption-records) | [`order_coupon_channel`](#dwd-dwd-groupbuy-redemption) |
| 14 | `coupon_code` | TEXT | [`coupon_code`](#api-group-buy-redemption-records) | [`coupon_code`](#dwd-dwd-groupbuy-redemption) |
| 15 | `coupon_money` | NUMERIC(18,2) | [`coupon_money`](#api-group-buy-redemption-records) | [`coupon_money`](#dwd-dwd-groupbuy-redemption) |
| 16 | `coupon_origin_id` | BIGINT | [`coupon_origin_id`](#api-group-buy-redemption-records) | [`coupon_origin_id`](#dwd-dwd-groupbuy-redemption) |
| 17 | `ledger_name` | TEXT | [`ledger_name`](#api-group-buy-redemption-records) | [`ledger_name`](#dwd-dwd-groupbuy-redemption) |
| 18 | `ledger_group_name` | TEXT | [`ledger_group_name`](#api-group-buy-redemption-records) | [`ledger_group_name`](#dwd-dwd-groupbuy-redemption-ex) |
| 19 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#api-group-buy-redemption-records) | [`ledger_amount`](#dwd-dwd-groupbuy-redemption) |
| 20 | `ledger_count` | NUMERIC(18,4) | [`ledger_count`](#api-group-buy-redemption-records) | [`ledger_count`](#dwd-dwd-groupbuy-redemption) |
| 21 | `ledger_unit_price` | NUMERIC(18,4) | [`ledger_unit_price`](#api-group-buy-redemption-records) | [`ledger_unit_price`](#dwd-dwd-groupbuy-redemption) |
| 22 | `ledger_status` | INT | [`ledger_status`](#api-group-buy-redemption-records) | [`ledger_status`](#dwd-dwd-groupbuy-redemption-ex) |
| 23 | `table_charge_seconds` | INT | [`table_charge_seconds`](#api-group-buy-redemption-records) | [`table_charge_seconds`](#dwd-dwd-groupbuy-redemption) |
| 24 | `promotion_activity_id` | BIGINT | [`promotion_activity_id`](#api-group-buy-redemption-records) | [`promotion_activity_id`](#dwd-dwd-groupbuy-redemption) |
| 25 | `promotion_coupon_id` | BIGINT | [`promotion_coupon_id`](#api-group-buy-redemption-records) | [`promotion_coupon_id`](#dwd-dwd-groupbuy-redemption) |
| 26 | `promotion_seconds` | INT | [`promotion_seconds`](#api-group-buy-redemption-records) | [`promotion_seconds`](#dwd-dwd-groupbuy-redemption) |
| 27 | `offer_type` | INT | [`offer_type`](#api-group-buy-redemption-records) | [`offer_type`](#dwd-dwd-groupbuy-redemption-ex) |
| 28 | `assistant_promotion_money` | NUMERIC(18,2) | [`assistant_promotion_money`](#api-group-buy-redemption-records) | [`assistant_promotion_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 29 | `assistant_service_promotion_money` | NUMERIC(18,2) | [`assistant_service_promotion_money`](#api-group-buy-redemption-records) | [`assistant_service_promotion_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 30 | `table_service_promotion_money` | NUMERIC(18,2) | [`table_service_promotion_money`](#api-group-buy-redemption-records) | [`table_service_promotion_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 31 | `goods_promotion_money` | NUMERIC(18,2) | [`goods_promotion_money`](#api-group-buy-redemption-records) | [`goods_promotion_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 32 | `recharge_promotion_money` | NUMERIC(18,2) | [`recharge_promotion_money`](#api-group-buy-redemption-records) | [`recharge_promotion_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 33 | `reward_promotion_money` | NUMERIC(18,2) | [`reward_promotion_money`](#api-group-buy-redemption-records) | [`reward_promotion_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 34 | `goodsOptionPrice` | NUMERIC(18,2) | [`goodsOptionPrice`](#api-group-buy-redemption-records) | [`goods_option_price`](#dwd-dwd-groupbuy-redemption-ex) |
| 35 | `salesman_name` | TEXT | [`salesman_name`](#api-group-buy-redemption-records) | [`salesman_name`](#dwd-dwd-groupbuy-redemption-ex) |
| 36 | `sales_man_org_id` | BIGINT | [`sales_man_org_id`](#api-group-buy-redemption-records) | [`salesman_org_id`](#dwd-dwd-groupbuy-redemption-ex) |
| 37 | `salesman_role_id` | BIGINT | [`salesman_role_id`](#api-group-buy-redemption-records) | [`salesman_role_id`](#dwd-dwd-groupbuy-redemption-ex) |
| 38 | `salesman_user_id` | BIGINT | [`salesman_user_id`](#api-group-buy-redemption-records) | [`salesman_user_id`](#dwd-dwd-groupbuy-redemption-ex) |
| 39 | `operator_id` | BIGINT | [`operator_id`](#api-group-buy-redemption-records) | [`operator_id`](#dwd-dwd-groupbuy-redemption-ex) |
| 40 | `operator_name` | TEXT | [`operator_name`](#api-group-buy-redemption-records) | [`operator_name`](#dwd-dwd-groupbuy-redemption-ex) |
| 41 | `is_single_order` | INT | [`is_single_order`](#api-group-buy-redemption-records) | [`is_single_order`](#dwd-dwd-groupbuy-redemption) |
| 42 | `is_delete` | INT | [`is_delete`](#api-group-buy-redemption-records) | [`is_delete`](#dwd-dwd-groupbuy-redemption) |
| 43 | `create_time` | TIMESTAMP | [`create_time`](#api-group-buy-redemption-records) | [`create_time`](#dwd-dwd-groupbuy-redemption) |
| 44 | `assistant_service_share_money` | NUMERIC(18,2) | [`assistant_service_share_money`](#api-group-buy-redemption-records) | [`assistant_service_share_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 45 | `assistant_share_money` | NUMERIC(18,2) | [`assistant_share_money`](#api-group-buy-redemption-records) | [`assistant_share_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 46 | `coupon_sale_id` | BIGINT | [`coupon_sale_id`](#api-group-buy-redemption-records) | [`coupon_sale_id`](#dwd-dwd-groupbuy-redemption) |
| 47 | `good_service_share_money` | NUMERIC(18,2) | [`good_service_share_money`](#api-group-buy-redemption-records) | [`good_service_share_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 48 | `goods_share_money` | NUMERIC(18,2) | [`goods_share_money`](#api-group-buy-redemption-records) | [`goods_share_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 49 | `member_discount_money` | NUMERIC(18,2) | [`member_discount_money`](#api-group-buy-redemption-records) | [`member_discount_money`](#dwd-dwd-groupbuy-redemption) |
| 50 | `recharge_share_money` | NUMERIC(18,2) | [`recharge_share_money`](#api-group-buy-redemption-records) | [`recharge_share_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 51 | `table_service_share_money` | NUMERIC(18,2) | [`table_service_share_money`](#api-group-buy-redemption-records) | [`table_service_share_money`](#dwd-dwd-groupbuy-redemption-ex) |
| 52 | `table_share_money` | NUMERIC(18,2) | [`table_share_money`](#api-group-buy-redemption-records) | [`table_share_money`](#dwd-dwd-groupbuy-redemption-ex) |
*ETL 元数据列(5 个):`payload`, `content_hash`, `source_file`, `source_endpoint`, `fetched_at`*
### DWD: `dwd.dwd_groupbuy_redemption` — 事实 (25 列) [🔗 ODS](#ods-group-buy-redemption-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `redemption_id` | BIGINT | [`id`](#ods-group-buy-redemption-records) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 3 | `site_id` | BIGINT | [`site_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 4 | `table_id` | BIGINT | [`table_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 5 | `tenant_table_area_id` | BIGINT | [`tenant_table_area_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 6 | `table_charge_seconds` | INTEGER | [`table_charge_seconds`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 7 | `order_trade_no` | BIGINT | [`order_trade_no`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 8 | `order_settle_id` | BIGINT | [`order_settle_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 9 | `order_coupon_id` | BIGINT | [`order_coupon_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 10 | `coupon_origin_id` | BIGINT | [`coupon_origin_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 11 | `promotion_activity_id` | BIGINT | [`promotion_activity_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 12 | `promotion_coupon_id` | BIGINT | [`promotion_coupon_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 13 | `order_coupon_channel` | INTEGER | [`order_coupon_channel`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 14 | `ledger_unit_price` | NUMERIC(18,2) | [`ledger_unit_price`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 15 | `ledger_count` | INTEGER | [`ledger_count`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 16 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 17 | `coupon_money` | NUMERIC(18,2) | [`coupon_money`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 18 | `promotion_seconds` | INTEGER | [`promotion_seconds`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 19 | `coupon_code` | VARCHAR(64) | [`coupon_code`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 20 | `is_single_order` | INTEGER | [`is_single_order`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 21 | `is_delete` | INTEGER | [`is_delete`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 22 | `ledger_name` | VARCHAR(128) | [`ledger_name`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 23 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 24 | `member_discount_money` | NUMERIC(18,2) | [`member_discount_money`](#ods-group-buy-redemption-records) | 直接 | |
| 25 | `coupon_sale_id` | BIGINT | [`coupon_sale_id`](#ods-group-buy-redemption-records) | 直接 | |
### DWD: `dwd.dwd_groupbuy_redemption_ex` — 事实(扩展) (28 列) [🔗 ODS](#ods-group-buy-redemption-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `redemption_id` | BIGINT | [`id`](#ods-group-buy-redemption-records) | 直接 | 字段重命名 |
| 2 | `site_name` | VARCHAR(64) | [`sitename`](#ods-group-buy-redemption-records) | 直接 | 字段重命名 |
| 3 | `table_name` | VARCHAR(64) | [`tablename`](#ods-group-buy-redemption-records) | 直接 | 字段重命名 |
| 4 | `table_area_name` | VARCHAR(64) | [`tableareaname`](#ods-group-buy-redemption-records) | 直接 | 字段重命名 |
| 5 | `order_pay_id` | BIGINT | [`order_pay_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 6 | `goods_option_price` | NUMERIC(18,2) | [`goodsoptionprice`](#ods-group-buy-redemption-records) | 直接 | 字段重命名 |
| 7 | `goods_promotion_money` | NUMERIC(18,2) | [`goods_promotion_money`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 8 | `table_service_promotion_money` | NUMERIC(18,2) | [`table_service_promotion_money`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 9 | `assistant_promotion_money` | NUMERIC(18,2) | [`assistant_promotion_money`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 10 | `assistant_service_promotion_money` | NUMERIC(18,2) | [`assistant_service_promotion_money`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 11 | `reward_promotion_money` | NUMERIC(18,2) | [`reward_promotion_money`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 12 | `recharge_promotion_money` | NUMERIC(18,2) | [`recharge_promotion_money`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 13 | `offer_type` | INTEGER | [`offer_type`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 14 | `ledger_status` | INTEGER | [`ledger_status`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 15 | `operator_id` | BIGINT | [`operator_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 16 | `operator_name` | VARCHAR(64) | [`operator_name`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 17 | `salesman_user_id` | BIGINT | [`salesman_user_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 18 | `salesman_name` | VARCHAR(64) | [`salesman_name`](#ods-group-buy-redemption-records) | 直接 | |
| 19 | `salesman_role_id` | BIGINT | [`salesman_role_id`](#ods-group-buy-redemption-records) | 直接 | 同名直传 |
| 20 | `salesman_org_id` | BIGINT | [`sales_man_org_id`](#ods-group-buy-redemption-records) | 直接 | 字段重命名 |
| 21 | `ledger_group_name` | VARCHAR(128) | [`ledger_group_name`](#ods-group-buy-redemption-records) | 直接 | |
| 22 | `table_share_money` | NUMERIC(18,2) | [`table_share_money`](#ods-group-buy-redemption-records) | 直接 | |
| 23 | `table_service_share_money` | NUMERIC(18,2) | [`table_service_share_money`](#ods-group-buy-redemption-records) | 直接 | |
| 24 | `goods_share_money` | NUMERIC(18,2) | [`goods_share_money`](#ods-group-buy-redemption-records) | 直接 | |
| 25 | `good_service_share_money` | NUMERIC(18,2) | [`good_service_share_money`](#ods-group-buy-redemption-records) | 直接 | |
| 26 | `assistant_share_money` | NUMERIC(18,2) | [`assistant_share_money`](#ods-group-buy-redemption-records) | 直接 | |
| 27 | `assistant_service_share_money` | NUMERIC(18,2) | [`assistant_service_share_money`](#ods-group-buy-redemption-records) | 直接 | |
| 28 | `recharge_share_money` | NUMERIC(18,2) | [`recharge_share_money`](#ods-group-buy-redemption-records) | 直接 | |
---
## 库存汇总 (`goods_stock_summary`)
- 任务编码: `ODS_INVENTORY_STOCK`
- API 端点: `/TenantGoods/GetGoodsStockReport`
- 获取记录数: 173
### API 源字段(14 个) [🔗 ODS](#ods-goods-stock-summary)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteGoodsId` | integer | 3089190204491141 | [`siteGoodsId`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 2 | `goodsName` | string | 小合味道 | [`goodsName`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 3 | `goodsUnit` | string | 桶 | [`goodsUnit`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 4 | `goodsCategoryId` | integer | 2791941988405125 | [`goodsCategoryId`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 5 | `goodsCategorySecondId` | integer | 2793236829620037 | [`goodsCategorySecondId`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 6 | `rangeStartStock` | integer | 21 | [`rangeStartStock`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 7 | `rangeEndStock` | integer | 21 | [`rangeEndStock`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 8 | `rangeIn` | integer | 0 | [`rangeIn`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 9 | `rangeOut` | integer | 0 | [`rangeOut`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 10 | `rangeInventory` | integer | 0 | [`rangeInventory`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 11 | `rangeSale` | integer | 0 | [`rangeSale`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 12 | `rangeSaleMoney` | number | 0.0 | [`rangeSaleMoney`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 13 | `currentStock` | integer | 21 | [`currentStock`](#ods-goods-stock-summary) | ✅ 同名映射 |
| 14 | `categoryName` | string | 零食 | [`categoryName`](#ods-goods-stock-summary) | ✅ 同名映射 |
> 映射统计:14 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.goods_stock_summary` (19 列) [🔗 API](#api-goods-stock-summary)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `siteGoodsId` | BIGINT | [`siteGoodsId`](#api-goods-stock-summary) | — |
| 2 | `goodsName` | TEXT | [`goodsName`](#api-goods-stock-summary) | — |
| 3 | `goodsUnit` | TEXT | [`goodsUnit`](#api-goods-stock-summary) | — |
| 4 | `goodsCategoryId` | BIGINT | [`goodsCategoryId`](#api-goods-stock-summary) | — |
| 5 | `goodsCategorySecondId` | BIGINT | [`goodsCategorySecondId`](#api-goods-stock-summary) | — |
| 6 | `categoryName` | TEXT | [`categoryName`](#api-goods-stock-summary) | — |
| 7 | `rangeStartStock` | NUMERIC(18,4) | [`rangeStartStock`](#api-goods-stock-summary) | — |
| 8 | `rangeEndStock` | NUMERIC(18,4) | [`rangeEndStock`](#api-goods-stock-summary) | — |
| 9 | `rangeIn` | NUMERIC(18,4) | [`rangeIn`](#api-goods-stock-summary) | — |
| 10 | `rangeOut` | NUMERIC(18,4) | [`rangeOut`](#api-goods-stock-summary) | — |
| 11 | `rangeSale` | NUMERIC(18,4) | [`rangeSale`](#api-goods-stock-summary) | — |
| 12 | `rangeSaleMoney` | NUMERIC(18,2) | [`rangeSaleMoney`](#api-goods-stock-summary) | — |
| 13 | `rangeInventory` | NUMERIC(18,4) | [`rangeInventory`](#api-goods-stock-summary) | — |
| 14 | `currentStock` | NUMERIC(18,4) | [`currentStock`](#api-goods-stock-summary) | — |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
*该 ODS 表暂无 DWD 映射(仅用于 DWS 或其他下游)*
---
## 库存变化记录 (`goods_stock_movements`)
- 任务编码: `ODS_INVENTORY_CHANGE`
- API 端点: `/GoodsStockManage/QueryGoodsOutboundReceipt`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 200
### API 源字段(19 个) [🔗 ODS](#ods-goods-stock-movements)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteGoodsStockId` | integer | 3093864105101509 | [`siteGoodsStockId`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 2 | `siteGoodsId` | integer | 3004536125639493 | [`siteGoodsId`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 3 | `siteId` | integer | 2790685415443269 | [`siteId`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 4 | `tenantId` | integer | 2790683160709957 | [`tenantId`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 5 | `stockType` | integer | 1 | [`stockType`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 6 | `goodsName` | string | 哇米诺豆奶 | [`goodsName`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 7 | `createTime` | string | 2026-02-14 00:21:21 | [`createTime`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 8 | `startNum` | integer | 4 | [`startNum`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 9 | `endNum` | integer | 3 | [`endNum`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 10 | `changeNum` | integer | -1 | [`changeNum`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 11 | `unit` | string | 瓶 | [`unit`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 12 | `price` | number | 10.0 | [`price`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 13 | `operatorName` | string | 收银员:郑丽珊 | [`operatorName`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 14 | `changeNumA` | integer | 0 | [`changeNumA`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 15 | `startNumA` | integer | 0 | [`startNumA`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 16 | `endNumA` | integer | 0 | [`endNumA`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 17 | `remark` | string | | [`remark`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 18 | `goodsCategoryId` | integer | 2790683528350539 | [`goodsCategoryId`](#ods-goods-stock-movements) | ✅ 同名映射 |
| 19 | `goodsSecondCategoryId` | integer | 2790683528350540 | [`goodsSecondCategoryId`](#ods-goods-stock-movements) | ✅ 同名映射 |
> 映射统计:19 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.goods_stock_movements` (24 列) [🔗 API](#api-goods-stock-movements)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `siteGoodsStockId` | BIGINT | [`siteGoodsStockId`](#api-goods-stock-movements) | — |
| 2 | `tenantId` | BIGINT | [`tenantId`](#api-goods-stock-movements) | — |
| 3 | `siteId` | BIGINT | [`siteId`](#api-goods-stock-movements) | — |
| 4 | `siteGoodsId` | BIGINT | [`siteGoodsId`](#api-goods-stock-movements) | — |
| 5 | `goodsName` | TEXT | [`goodsName`](#api-goods-stock-movements) | — |
| 6 | `goodsCategoryId` | BIGINT | [`goodsCategoryId`](#api-goods-stock-movements) | — |
| 7 | `goodsSecondCategoryId` | BIGINT | [`goodsSecondCategoryId`](#api-goods-stock-movements) | — |
| 8 | `unit` | TEXT | [`unit`](#api-goods-stock-movements) | — |
| 9 | `price` | NUMERIC(18,4) | [`price`](#api-goods-stock-movements) | — |
| 10 | `stockType` | INT | [`stockType`](#api-goods-stock-movements) | — |
| 11 | `changeNum` | NUMERIC(18,4) | [`changeNum`](#api-goods-stock-movements) | — |
| 12 | `startNum` | NUMERIC(18,4) | [`startNum`](#api-goods-stock-movements) | — |
| 13 | `endNum` | NUMERIC(18,4) | [`endNum`](#api-goods-stock-movements) | — |
| 14 | `changeNumA` | NUMERIC(18,4) | [`changeNumA`](#api-goods-stock-movements) | — |
| 15 | `startNumA` | NUMERIC(18,4) | [`startNumA`](#api-goods-stock-movements) | — |
| 16 | `endNumA` | NUMERIC(18,4) | [`endNumA`](#api-goods-stock-movements) | — |
| 17 | `remark` | TEXT | [`remark`](#api-goods-stock-movements) | — |
| 18 | `operatorName` | TEXT | [`operatorName`](#api-goods-stock-movements) | — |
| 19 | `createTime` | TIMESTAMP | [`createTime`](#api-goods-stock-movements) | — |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
*该 ODS 表暂无 DWD 映射(仅用于 DWS 或其他下游)*
---
## 台桌维表 (`site_tables_master`)
- 任务编码: `ODS_TABLES`
- API 端点: `/Table/GetSiteTables`
- 获取记录数: 74
### API 源字段(26 个) [🔗 ODS](#ods-site-tables-master)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `id` | integer | 2791964216463493 | [`id`](#ods-site-tables-master) | ✅ 同名映射 |
| 2 | `order_id` | integer | 0 | [`order_id`](#ods-site-tables-master) | ✅ 同名映射 |
| 3 | `audit_status` | integer | 2 | [`audit_status`](#ods-site-tables-master) | ✅ 同名映射 |
| 4 | `charge_free` | integer | 0 | [`charge_free`](#ods-site-tables-master) | ✅ 同名映射 |
| 5 | `self_table` | integer | 1 | [`self_table`](#ods-site-tables-master) | ✅ 同名映射 |
| 6 | `create_time` | string | 2025-07-15 17:52:54 | [`create_time`](#ods-site-tables-master) | ✅ 同名映射 |
| 7 | `is_rest_area` | integer | 0 | [`is_rest_area`](#ods-site-tables-master) | ✅ 同名映射 |
| 8 | `light_status` | integer | 2 | [`light_status`](#ods-site-tables-master) | ✅ 同名映射 |
| 9 | `show_status` | integer | 1 | [`show_status`](#ods-site-tables-master) | ✅ 同名映射 |
| 10 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-site-tables-master) | ✅ 同名映射 |
| 11 | `site_table_area_id` | integer | 2791963794329671 | [`site_table_area_id`](#ods-site-tables-master) | ✅ 同名映射 |
| 12 | `table_cloth_use_time` | integer | 3847788 | [`table_cloth_use_time`](#ods-site-tables-master) | ✅ 同名映射 |
| 13 | `table_cloth_use_Cycle` | integer | 0 | [`table_cloth_use_Cycle`](#ods-site-tables-master) | ✅ 同名映射 |
| 14 | `virtual_table` | integer | 0 | [`virtual_table`](#ods-site-tables-master) | ✅ 同名映射 |
| 15 | `table_name` | string | A1 | [`table_name`](#ods-site-tables-master) | ✅ 同名映射 |
| 16 | `table_price` | number | 0.0 | [`table_price`](#ods-site-tables-master) | ✅ 同名映射 |
| 17 | `table_status` | integer | 1 | [`table_status`](#ods-site-tables-master) | ✅ 同名映射 |
| 18 | `areaName` | string | A区 | [`areaName`](#ods-site-tables-master) | ✅ 同名映射 |
| 19 | `siteName` | string | 朗朗桌球 | [`siteName`](#ods-site-tables-master) | ✅ 同名映射 |
| 20 | `tableStatusName` | string | 空闲中 | [`tableStatusName`](#ods-site-tables-master) | ✅ 同名映射 |
| 21 | `appletQrCodeUrl` | string | https://pc-we.ficoo.vip/rootwww/prodwx38... | [`appletQrCodeUrl`](#ods-site-tables-master) | ✅ 同名映射 |
| 22 | `only_allow_groupon` | integer | 2 | [`only_allow_groupon`](#ods-site-tables-master) | ✅ 同名映射 |
| 23 | `delay_lights_time` | integer | 0 | [`delay_lights_time`](#ods-site-tables-master) | ✅ 同名映射 |
| 24 | `order_delay_time` | integer | 0 | [`order_delay_time`](#ods-site-tables-master) | ✅ 同名映射 |
| 25 | `temporary_light_second` | integer | 0 | [`temporary_light_second`](#ods-site-tables-master) | ✅ 同名映射 |
| 26 | `is_online_reservation` | integer | 2 | [`is_online_reservation`](#ods-site-tables-master) | ✅ 同名映射 |
> 映射统计:26 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.site_tables_master` (31 列) [🔗 API](#api-site-tables-master)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-site-tables-master) | [`table_id`](#dwd-dim-table), [`table_id`](#dwd-dim-table-ex) |
| 2 | `site_id` | BIGINT | [`site_id`](#api-site-tables-master) | [`site_id`](#dwd-dim-table) |
| 3 | `siteName` | TEXT | [`siteName`](#api-site-tables-master) | — |
| 4 | `appletQrCodeUrl` | TEXT | [`appletQrCodeUrl`](#api-site-tables-master) | — |
| 5 | `areaName` | TEXT | [`areaName`](#api-site-tables-master) | [`site_table_area_name`](#dwd-dim-table) |
| 6 | `audit_status` | INT | [`audit_status`](#api-site-tables-master) | — |
| 7 | `charge_free` | INT | [`charge_free`](#api-site-tables-master) | — |
| 8 | `create_time` | TIMESTAMP | [`create_time`](#api-site-tables-master) | — |
| 9 | `delay_lights_time` | INT | [`delay_lights_time`](#api-site-tables-master) | — |
| 10 | `is_online_reservation` | INT | [`is_online_reservation`](#api-site-tables-master) | [`is_online_reservation`](#dwd-dim-table-ex) |
| 11 | `is_rest_area` | INT | [`is_rest_area`](#api-site-tables-master) | — |
| 12 | `light_status` | INT | [`light_status`](#api-site-tables-master) | — |
| 13 | `only_allow_groupon` | INT | [`only_allow_groupon`](#api-site-tables-master) | — |
| 14 | `order_delay_time` | INT | [`order_delay_time`](#api-site-tables-master) | — |
| 15 | `self_table` | INT | [`self_table`](#api-site-tables-master) | — |
| 16 | `show_status` | INT | [`show_status`](#api-site-tables-master) | [`show_status`](#dwd-dim-table-ex) |
| 17 | `site_table_area_id` | BIGINT | [`site_table_area_id`](#api-site-tables-master) | [`site_table_area_id`](#dwd-dim-table), [`tenant_table_area_id`](#dwd-dim-table) |
| 18 | `tableStatusName` | TEXT | [`tableStatusName`](#api-site-tables-master) | — |
| 19 | `table_cloth_use_Cycle` | INT | [`table_cloth_use_Cycle`](#api-site-tables-master) | [`table_cloth_use_cycle`](#dwd-dim-table-ex) |
| 20 | `table_cloth_use_time` | TIMESTAMP | [`table_cloth_use_time`](#api-site-tables-master) | [`table_cloth_use_time`](#dwd-dim-table-ex) |
| 21 | `table_name` | TEXT | [`table_name`](#api-site-tables-master) | [`table_name`](#dwd-dim-table) |
| 22 | `table_price` | NUMERIC(18,2) | [`table_price`](#api-site-tables-master) | [`table_price`](#dwd-dim-table) |
| 23 | `table_status` | INT | [`table_status`](#api-site-tables-master) | [`table_status`](#dwd-dim-table-ex) |
| 24 | `temporary_light_second` | INT | [`temporary_light_second`](#api-site-tables-master) | — |
| 25 | `virtual_table` | INT | [`virtual_table`](#api-site-tables-master) | — |
| 26 | `order_id` | BIGINT | [`order_id`](#api-site-tables-master) | [`order_id`](#dwd-dim-table) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dim_table` — 维度 (12 列) [🔗 ODS](#ods-site-tables-master)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `table_id` | BIGINT | [`id`](#ods-site-tables-master) | 直接 | 字段重命名 |
| 2 | `site_id` | BIGINT | [`site_id`](#ods-site-tables-master) | 直接 | 同名直传 |
| 3 | `table_name` | TEXT | [`table_name`](#ods-site-tables-master) | 直接 | 同名直传 |
| 4 | `site_table_area_id` | BIGINT | [`site_table_area_id`](#ods-site-tables-master) | 直接 | 同名直传 |
| 5 | `site_table_area_name` | TEXT | [`areaname`](#ods-site-tables-master) | 直接 | 字段重命名 |
| 6 | `tenant_table_area_id` | BIGINT | [`site_table_area_id`](#ods-site-tables-master) | 直接 | 字段重命名 |
| 7 | `table_price` | NUMERIC(18,2) | [`table_price`](#ods-site-tables-master) | 直接 | 同名直传 |
| 8 | `order_id` | BIGINT | [`order_id`](#ods-site-tables-master) | 直接 | |
| 9 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 10 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 11 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 12 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dim_table_ex` — 维度(扩展) (10 列) [🔗 ODS](#ods-site-tables-master)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `table_id` | BIGINT | [`id`](#ods-site-tables-master) | 直接 | 字段重命名 |
| 2 | `show_status` | INTEGER | [`show_status`](#ods-site-tables-master) | 直接 | 同名直传 |
| 3 | `is_online_reservation` | INTEGER | [`is_online_reservation`](#ods-site-tables-master) | 直接 | 同名直传 |
| 4 | `table_cloth_use_time` | INTEGER | [`table_cloth_use_time`](#ods-site-tables-master) | 直接 | |
| 5 | `table_cloth_use_cycle` | INTEGER | [`table_cloth_use_cycle`](#ods-site-tables-master) | 直接 | 同名直传 |
| 6 | `table_status` | INTEGER | [`table_status`](#ods-site-tables-master) | 直接 | 同名直传 |
| 7 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 8 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 9 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 10 | `SCD2_version` | INT | — | — | SCD2 元数据 |
---
## 库存商品分类树 (`stock_goods_category_tree`)
- 任务编码: `ODS_GOODS_CATEGORY`
- API 端点: `/TenantGoodsCategory/QueryPrimarySecondaryCategory`
- 获取记录数: 9
### API 源字段(11 个) [🔗 ODS](#ods-stock-goods-category-tree)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `id` | integer | 2790683528350533 | [`id`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 2 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 3 | `category_name` | string | 槟榔 | [`category_name`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 4 | `alias_name` | string | | [`alias_name`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 5 | `pid` | integer | 0 | [`pid`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 6 | `business_name` | string | 槟榔 | [`business_name`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 7 | `tenant_goods_business_id` | integer | 2790683528317766 | [`tenant_goods_business_id`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 8 | `open_salesman` | integer | 2 | [`open_salesman`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 9 | `categoryBoxes` | array | [{"id": 2790683528350534, "tenant_id": 2... | [`categoryBoxes`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 10 | `sort` | integer | 1 | [`sort`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
| 11 | `is_warehousing` | integer | 1 | [`is_warehousing`](#ods-stock-goods-category-tree) | ✅ 同名映射 |
> 映射统计:11 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.stock_goods_category_tree` (16 列) [🔗 API](#api-stock-goods-category-tree)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-stock-goods-category-tree) | [`category_id`](#dwd-dim-goods-category) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-stock-goods-category-tree) | [`tenant_id`](#dwd-dim-goods-category) |
| 3 | `category_name` | TEXT | [`category_name`](#api-stock-goods-category-tree) | [`category_name`](#dwd-dim-goods-category) |
| 4 | `alias_name` | TEXT | [`alias_name`](#api-stock-goods-category-tree) | [`alias_name`](#dwd-dim-goods-category) |
| 5 | `pid` | BIGINT | [`pid`](#api-stock-goods-category-tree) | [`parent_category_id`](#dwd-dim-goods-category) |
| 6 | `business_name` | TEXT | [`business_name`](#api-stock-goods-category-tree) | [`business_name`](#dwd-dim-goods-category) |
| 7 | `tenant_goods_business_id` | BIGINT | [`tenant_goods_business_id`](#api-stock-goods-category-tree) | [`tenant_goods_business_id`](#dwd-dim-goods-category) |
| 8 | `open_salesman` | INT | [`open_salesman`](#api-stock-goods-category-tree) | [`open_salesman`](#dwd-dim-goods-category) |
| 9 | `categoryBoxes` | JSONB | [`categoryBoxes`](#api-stock-goods-category-tree) | — |
| 10 | `sort` | INT | [`sort`](#api-stock-goods-category-tree) | [`sort_order`](#dwd-dim-goods-category) |
| 11 | `is_warehousing` | INT | [`is_warehousing`](#api-stock-goods-category-tree) | [`is_warehousing`](#dwd-dim-goods-category) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dim_goods_category` — 维度 (16 列) [🔗 ODS](#ods-stock-goods-category-tree)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `category_id` | BIGINT | [`id`](#ods-stock-goods-category-tree) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-stock-goods-category-tree) | 直接 | |
| 3 | `category_name` | VARCHAR(50) | [`category_name`](#ods-stock-goods-category-tree) | 直接 | |
| 4 | `alias_name` | VARCHAR(50) | [`alias_name`](#ods-stock-goods-category-tree) | 直接 | |
| 5 | `parent_category_id` | BIGINT | [`pid`](#ods-stock-goods-category-tree) | 直接 | 字段重命名 |
| 6 | `business_name` | VARCHAR(50) | [`business_name`](#ods-stock-goods-category-tree) | 直接 | |
| 7 | `tenant_goods_business_id` | BIGINT | [`tenant_goods_business_id`](#ods-stock-goods-category-tree) | 直接 | |
| 8 | `category_level` | INTEGER | [`CASE WHEN pid = 0 THEN 1 ELSE 2 END`](#ods-stock-goods-category-tree) | 直接 | 派生计算 |
| 9 | `is_leaf` | INTEGER | [`CASE WHEN categoryboxes IS NULL OR jsonb_array_length(categoryboxes)=0 THEN 1 ELSE 0 END`](#ods-stock-goods-category-tree) | 直接 | 派生计算 |
| 10 | `open_salesman` | INTEGER | [`open_salesman`](#ods-stock-goods-category-tree) | 直接 | |
| 11 | `sort_order` | INTEGER | [`sort`](#ods-stock-goods-category-tree) | 直接 | 字段重命名 |
| 12 | `is_warehousing` | INTEGER | [`is_warehousing`](#ods-stock-goods-category-tree) | 直接 | |
| 13 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 14 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 15 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 16 | `SCD2_version` | INT | — | — | SCD2 元数据 |
---
## 门店商品档案 (`store_goods_master`)
- 任务编码: `ODS_STORE_GOODS`
- API 端点: `/TenantGoods/GetGoodsInventoryList`
- 获取记录数: 173
### API 源字段(49 个) [🔗 ODS](#ods-store-goods-master)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteName` | string | 朗朗桌球 | [`siteName`](#ods-store-goods-master) | ✅ 同名映射 |
| 2 | `oneCategoryName` | string | 零食 | [`oneCategoryName`](#ods-store-goods-master) | ✅ 同名映射 |
| 3 | `twoCategoryName` | string | 面 | [`twoCategoryName`](#ods-store-goods-master) | ✅ 同名映射 |
| 4 | `goodsStockWarningInfo` | object | {"tenant_goods_id": 0, "site_goods_id": ... | — | ⚠️ 仅存于 payload JSONB |
| 5 | `id` | integer | 2793025844727877 | [`id`](#ods-store-goods-master) | ✅ 同名映射 |
| 6 | `able_discount` | integer | 1 | [`able_discount`](#ods-store-goods-master) | ✅ 同名映射 |
| 7 | `able_site_transfer` | integer | 2 | [`able_site_transfer`](#ods-store-goods-master) | ✅ 同名映射 |
| 8 | `audit_status` | integer | 2 | [`audit_status`](#ods-store-goods-master) | ✅ 同名映射 |
| 9 | `average_monthly_sales` | number | 2.16 | [`average_monthly_sales`](#ods-store-goods-master) | ✅ 同名映射 |
| 10 | `batch_stock_quantity` | integer | 31 | [`batch_stock_quantity`](#ods-store-goods-master) | ✅ 同名映射 |
| 11 | `commodity_code` | string | 10000002 | [`commodity_code`](#ods-store-goods-master) | ✅ 同名映射 |
| 12 | `cost_price` | number | 0.0 | [`cost_price`](#ods-store-goods-master) | ✅ 同名映射 |
| 13 | `cost_price_type` | integer | 1 | [`cost_price_type`](#ods-store-goods-master) | ✅ 同名映射 |
| 14 | `create_time` | string | 2025-07-16 11:52:51 | [`create_time`](#ods-store-goods-master) | ✅ 同名映射 |
| 15 | `custom_label_type` | integer | 2 | [`custom_label_type`](#ods-store-goods-master) | ✅ 同名映射 |
| 16 | `days_available` | integer | 11 | [`days_available`](#ods-store-goods-master) | ✅ 同名映射 |
| 17 | `enable_status` | integer | 1 | [`enable_status`](#ods-store-goods-master) | ✅ 同名映射 |
| 18 | `forbid_sell_status` | integer | 1 | [`forbid_sell_status`](#ods-store-goods-master) | ✅ 同名映射 |
| 19 | `freeze` | integer | 0 | [`freeze`](#ods-store-goods-master) | ✅ 同名映射 |
| 20 | `goods_bar_code` | string | | [`goods_bar_code`](#ods-store-goods-master) | ✅ 同名映射 |
| 21 | `goods_category_id` | integer | 2791941988405125 | [`goods_category_id`](#ods-store-goods-master) | ✅ 同名映射 |
| 22 | `goods_cover` | string | https://oss.ficoo.vip/admin/mWT72w_17211... | [`goods_cover`](#ods-store-goods-master) | ✅ 同名映射 |
| 23 | `goods_name` | string | 红烧牛肉面 | [`goods_name`](#ods-store-goods-master) | ✅ 同名映射 |
| 24 | `goods_second_category_id` | integer | 2793236829620037 | [`goods_second_category_id`](#ods-store-goods-master) | ✅ 同名映射 |
| 25 | `goods_state` | integer | 1 | [`goods_state`](#ods-store-goods-master) | ✅ 同名映射 |
| 26 | `is_delete` | integer | 0 | [`is_delete`](#ods-store-goods-master) | ✅ 同名映射 |
| 27 | `is_warehousing` | integer | 1 | [`is_warehousing`](#ods-store-goods-master) | ✅ 同名映射 |
| 28 | `min_discount_price` | number | 0.0 | [`min_discount_price`](#ods-store-goods-master) | ✅ 同名映射 |
| 29 | `not_sale` | integer | 2 | [`not_sale`](#ods-store-goods-master) | ✅ 同名映射 |
| 30 | `option_required` | integer | 1 | [`option_required`](#ods-store-goods-master) | ✅ 同名映射 |
| 31 | `pinyin_initial` | string | HSNRM,GSNRM | [`pinyin_initial`](#ods-store-goods-master) | ✅ 同名映射 |
| 32 | `provisional_total_cost` | number | 0.0 | [`provisional_total_cost`](#ods-store-goods-master) | ✅ 同名映射 |
| 33 | `remark` | string | | [`remark`](#ods-store-goods-master) | ✅ 同名映射 |
| 34 | `safe_stock` | integer | 0 | [`safe_stock`](#ods-store-goods-master) | ✅ 同名映射 |
| 35 | `sale_channel` | string | 1,2,3 | [`sale_channel`](#ods-store-goods-master) | ✅ 同名映射 |
| 36 | `sale_num` | integer | 452 | [`sale_num`](#ods-store-goods-master) | ✅ 同名映射 |
| 37 | `sale_price` | number | 12.0 | [`sale_price`](#ods-store-goods-master) | ✅ 同名映射 |
| 38 | `send_state` | integer | 1 | [`send_state`](#ods-store-goods-master) | ✅ 同名映射 |
| 39 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-store-goods-master) | ✅ 同名映射 |
| 40 | `sort` | integer | 100 | [`sort`](#ods-store-goods-master) | ✅ 同名映射 |
| 41 | `stock` | integer | 24 | [`stock`](#ods-store-goods-master) | ✅ 同名映射 |
| 42 | `stock_A` | integer | 0 | [`stock_A`](#ods-store-goods-master) | ✅ 同名映射 |
| 43 | `tenant_goods_id` | integer | 2792037812375429 | [`tenant_goods_id`](#ods-store-goods-master) | ✅ 同名映射 |
| 44 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-store-goods-master) | ✅ 同名映射 |
| 45 | `time_slot_sale` | integer | 2 | — | ⚠️ 仅存于 payload JSONB |
| 46 | `total_purchase_cost` | number | 0.0 | [`total_purchase_cost`](#ods-store-goods-master) | ✅ 同名映射 |
| 47 | `total_sales` | integer | 452 | [`total_sales`](#ods-store-goods-master) | ✅ 同名映射 |
| 48 | `unit` | string | 桶 | [`unit`](#ods-store-goods-master) | ✅ 同名映射 |
| 49 | `update_time` | string | 2026-02-13 18:56:51 | [`update_time`](#ods-store-goods-master) | ✅ 同名映射 |
> 映射统计:47 个字段映射到 ODS,1 个仅存于 payload。
### ODS: `ods.store_goods_master` (52 列) [🔗 API](#api-store-goods-master)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-store-goods-master) | [`site_goods_id`](#dwd-dim-store-goods), [`site_goods_id`](#dwd-dim-store-goods-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-store-goods-master) | [`tenant_id`](#dwd-dim-store-goods) |
| 3 | `site_id` | BIGINT | [`site_id`](#api-store-goods-master) | [`site_id`](#dwd-dim-store-goods) |
| 4 | `siteName` | TEXT | [`siteName`](#api-store-goods-master) | [`site_name`](#dwd-dim-store-goods-ex) |
| 5 | `tenant_goods_id` | BIGINT | [`tenant_goods_id`](#api-store-goods-master) | [`tenant_goods_id`](#dwd-dim-store-goods) |
| 6 | `goods_name` | TEXT | [`goods_name`](#api-store-goods-master) | [`goods_name`](#dwd-dim-store-goods) |
| 7 | `goods_bar_code` | TEXT | [`goods_bar_code`](#api-store-goods-master) | [`goods_barcode`](#dwd-dim-store-goods-ex) |
| 8 | `goods_category_id` | BIGINT | [`goods_category_id`](#api-store-goods-master) | [`goods_category_id`](#dwd-dim-store-goods) |
| 9 | `goods_second_category_id` | BIGINT | [`goods_second_category_id`](#api-store-goods-master) | [`goods_second_category_id`](#dwd-dim-store-goods) |
| 10 | `oneCategoryName` | TEXT | [`oneCategoryName`](#api-store-goods-master) | [`category_level1_name`](#dwd-dim-store-goods) |
| 11 | `twoCategoryName` | TEXT | [`twoCategoryName`](#api-store-goods-master) | [`category_level2_name`](#dwd-dim-store-goods) |
| 12 | `unit` | TEXT | [`unit`](#api-store-goods-master) | [`unit`](#dwd-dim-store-goods-ex) |
| 13 | `sale_price` | NUMERIC(18,4) | [`sale_price`](#api-store-goods-master) | [`sale_price`](#dwd-dim-store-goods) |
| 14 | `cost_price` | NUMERIC(18,4) | [`cost_price`](#api-store-goods-master) | [`cost_price`](#dwd-dim-store-goods-ex) |
| 15 | `cost_price_type` | INT | [`cost_price_type`](#api-store-goods-master) | [`cost_price_type`](#dwd-dim-store-goods-ex) |
| 16 | `min_discount_price` | NUMERIC(18,4) | [`min_discount_price`](#api-store-goods-master) | [`min_discount_price`](#dwd-dim-store-goods-ex) |
| 17 | `safe_stock` | NUMERIC(18,4) | [`safe_stock`](#api-store-goods-master) | [`safety_stock_qty`](#dwd-dim-store-goods-ex) |
| 18 | `stock` | NUMERIC(18,4) | [`stock`](#api-store-goods-master) | [`batch_stock_qty`](#dwd-dim-store-goods), [`stock_qty`](#dwd-dim-store-goods-ex) |
| 19 | `stock_A` | NUMERIC(18,4) | [`stock_A`](#api-store-goods-master) | [`stock_secondary_qty`](#dwd-dim-store-goods-ex) |
| 20 | `sale_num` | NUMERIC(18,4) | [`sale_num`](#api-store-goods-master) | [`sale_qty`](#dwd-dim-store-goods) |
| 21 | `total_purchase_cost` | NUMERIC(18,4) | [`total_purchase_cost`](#api-store-goods-master) | [`provisional_total_cost`](#dwd-dim-store-goods-ex), [`total_purchase_cost`](#dwd-dim-store-goods-ex) |
| 22 | `total_sales` | NUMERIC(18,4) | [`total_sales`](#api-store-goods-master) | [`total_sales_qty`](#dwd-dim-store-goods) |
| 23 | `average_monthly_sales` | NUMERIC(18,4) | [`average_monthly_sales`](#api-store-goods-master) | [`avg_monthly_sales`](#dwd-dim-store-goods) |
| 24 | `batch_stock_quantity` | NUMERIC(18,2) | [`batch_stock_quantity`](#api-store-goods-master) | — |
| 25 | `days_available` | INT | [`days_available`](#api-store-goods-master) | [`days_on_shelf`](#dwd-dim-store-goods-ex) |
| 26 | `provisional_total_cost` | NUMERIC(18,2) | [`provisional_total_cost`](#api-store-goods-master) | — |
| 27 | `enable_status` | INT | [`enable_status`](#api-store-goods-master) | [`enable_status`](#dwd-dim-store-goods) |
| 28 | `audit_status` | INT | [`audit_status`](#api-store-goods-master) | [`audit_status`](#dwd-dim-store-goods-ex) |
| 29 | `goods_state` | INT | [`goods_state`](#api-store-goods-master) | [`goods_state`](#dwd-dim-store-goods) |
| 30 | `is_delete` | INT | [`is_delete`](#api-store-goods-master) | [`is_delete`](#dwd-dim-store-goods) |
| 31 | `is_warehousing` | INT | [`is_warehousing`](#api-store-goods-master) | [`is_warehousing`](#dwd-dim-store-goods-ex) |
| 32 | `able_discount` | INT | [`able_discount`](#api-store-goods-master) | [`is_discountable`](#dwd-dim-store-goods-ex) |
| 33 | `able_site_transfer` | INT | [`able_site_transfer`](#api-store-goods-master) | [`able_site_transfer`](#dwd-dim-store-goods-ex) |
| 34 | `forbid_sell_status` | INT | [`forbid_sell_status`](#api-store-goods-master) | [`forbid_sell_status`](#dwd-dim-store-goods-ex) |
| 35 | `freeze` | INT | [`freeze`](#api-store-goods-master) | [`freeze_status`](#dwd-dim-store-goods-ex) |
| 36 | `send_state` | INT | [`send_state`](#api-store-goods-master) | [`send_state`](#dwd-dim-store-goods) |
| 37 | `custom_label_type` | INT | [`custom_label_type`](#api-store-goods-master) | [`custom_label_type`](#dwd-dim-store-goods-ex) |
| 38 | `option_required` | INT | [`option_required`](#api-store-goods-master) | [`option_required`](#dwd-dim-store-goods-ex) |
| 39 | `sale_channel` | INT | [`sale_channel`](#api-store-goods-master) | [`sale_channel`](#dwd-dim-store-goods-ex) |
| 40 | `sort` | INT | [`sort`](#api-store-goods-master) | [`sort_order`](#dwd-dim-store-goods-ex) |
| 41 | `remark` | TEXT | [`remark`](#api-store-goods-master) | [`remark`](#dwd-dim-store-goods-ex) |
| 42 | `pinyin_initial` | TEXT | [`pinyin_initial`](#api-store-goods-master) | [`pinyin_initial`](#dwd-dim-store-goods-ex) |
| 43 | `goods_cover` | TEXT | [`goods_cover`](#api-store-goods-master) | [`goods_cover_url`](#dwd-dim-store-goods-ex) |
| 44 | `create_time` | TIMESTAMP | [`create_time`](#api-store-goods-master) | [`created_at`](#dwd-dim-store-goods) |
| 45 | `update_time` | TIMESTAMP | [`update_time`](#api-store-goods-master) | [`updated_at`](#dwd-dim-store-goods) |
| 46 | `commodity_code` | TEXT | [`commodity_code`](#api-store-goods-master) | [`commodity_code`](#dwd-dim-store-goods) |
| 47 | `not_sale` | INTEGER | [`not_sale`](#api-store-goods-master) | [`not_sale`](#dwd-dim-store-goods) |
*ETL 元数据列(5 个):`payload`, `content_hash`, `source_file`, `source_endpoint`, `fetched_at`*
### DWD: `dwd.dim_store_goods` — 维度 (26 列) [🔗 ODS](#ods-store-goods-master)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `site_goods_id` | BIGINT | [`id`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-store-goods-master) | 直接 | 同名直传 |
| 3 | `site_id` | BIGINT | [`site_id`](#ods-store-goods-master) | 直接 | 同名直传 |
| 4 | `tenant_goods_id` | BIGINT | [`tenant_goods_id`](#ods-store-goods-master) | 直接 | 同名直传 |
| 5 | `goods_name` | TEXT | [`goods_name`](#ods-store-goods-master) | 直接 | 同名直传 |
| 6 | `goods_category_id` | BIGINT | [`goods_category_id`](#ods-store-goods-master) | 直接 | 同名直传 |
| 7 | `goods_second_category_id` | BIGINT | [`goods_second_category_id`](#ods-store-goods-master) | 直接 | 同名直传 |
| 8 | `category_level1_name` | TEXT | [`onecategoryname`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 9 | `category_level2_name` | TEXT | [`twocategoryname`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 10 | `batch_stock_qty` | INTEGER | [`stock`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 11 | `sale_qty` | INTEGER | [`sale_num`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 12 | `total_sales_qty` | INTEGER | [`total_sales`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 13 | `sale_price` | NUMERIC(18,2) | [`sale_price`](#ods-store-goods-master) | 直接 | 同名直传 |
| 14 | `created_at` | TIMESTAMPTZ | [`create_time`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 15 | `updated_at` | TIMESTAMPTZ | [`update_time`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 16 | `avg_monthly_sales` | NUMERIC(18,4) | [`average_monthly_sales`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 17 | `goods_state` | INTEGER | [`goods_state`](#ods-store-goods-master) | 直接 | 同名直传 |
| 18 | `enable_status` | INTEGER | [`enable_status`](#ods-store-goods-master) | 直接 | 同名直传 |
| 19 | `send_state` | INTEGER | [`send_state`](#ods-store-goods-master) | 直接 | 同名直传 |
| 20 | `is_delete` | INTEGER | [`is_delete`](#ods-store-goods-master) | 直接 | 同名直传 |
| 21 | `commodity_code` | TEXT | [`commodity_code`](#ods-store-goods-master) | 直接 | |
| 22 | `not_sale` | INTEGER | [`not_sale`](#ods-store-goods-master) | 直接 | |
| 23 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 24 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 25 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 26 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dim_store_goods_ex` — 维度(扩展) (30 列) [🔗 ODS](#ods-store-goods-master)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `site_goods_id` | BIGINT | [`id`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 2 | `site_name` | TEXT | [`sitename`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 3 | `unit` | TEXT | [`unit`](#ods-store-goods-master) | 直接 | 同名直传 |
| 4 | `goods_barcode` | TEXT | [`goods_bar_code`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 5 | `goods_cover_url` | TEXT | [`goods_cover`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 6 | `pinyin_initial` | TEXT | [`pinyin_initial`](#ods-store-goods-master) | 直接 | 同名直传 |
| 7 | `stock_qty` | INTEGER | [`stock`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 8 | `stock_secondary_qty` | INTEGER | [`stock_a`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 9 | `safety_stock_qty` | INTEGER | [`safe_stock`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 10 | `cost_price` | NUMERIC(18,4) | [`cost_price`](#ods-store-goods-master) | 直接 | 同名直传 |
| 11 | `cost_price_type` | INTEGER | [`cost_price_type`](#ods-store-goods-master) | 直接 | 同名直传 |
| 12 | `provisional_total_cost` | NUMERIC(18,2) | [`total_purchase_cost`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 13 | `total_purchase_cost` | NUMERIC(18,2) | [`total_purchase_cost`](#ods-store-goods-master) | 直接 | 同名直传 |
| 14 | `min_discount_price` | NUMERIC(18,2) | [`min_discount_price`](#ods-store-goods-master) | 直接 | 同名直传 |
| 15 | `is_discountable` | INTEGER | [`able_discount`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 16 | `days_on_shelf` | INTEGER | [`days_available`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 17 | `audit_status` | INTEGER | [`audit_status`](#ods-store-goods-master) | 直接 | 同名直传 |
| 18 | `sale_channel` | INTEGER | [`sale_channel`](#ods-store-goods-master) | 直接 | 同名直传 |
| 19 | `is_warehousing` | INTEGER | [`is_warehousing`](#ods-store-goods-master) | 直接 | 同名直传 |
| 20 | `freeze_status` | INTEGER | [`freeze`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 21 | `forbid_sell_status` | INTEGER | [`forbid_sell_status`](#ods-store-goods-master) | 直接 | 同名直传 |
| 22 | `able_site_transfer` | INTEGER | [`able_site_transfer`](#ods-store-goods-master) | 直接 | 同名直传 |
| 23 | `custom_label_type` | INTEGER | [`custom_label_type`](#ods-store-goods-master) | 直接 | 同名直传 |
| 24 | `option_required` | INTEGER | [`option_required`](#ods-store-goods-master) | 直接 | 同名直传 |
| 25 | `remark` | TEXT | [`remark`](#ods-store-goods-master) | 直接 | |
| 26 | `sort_order` | INTEGER | [`sort`](#ods-store-goods-master) | 直接 | 字段重命名 |
| 27 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 28 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 29 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 30 | `SCD2_version` | INT | — | — | SCD2 元数据 |
---
## 台费折扣/调账 (`table_fee_discount_records`)
- 任务编码: `ODS_TABLE_FEE_DISCOUNT`
- API 端点: `/Site/GetTaiFeeAdjustList`
- 时间字段: `startTime` / `endTime`
- 获取记录数: 200
### API 源字段(20 个) [🔗 ODS](#ods-table-fee-discount-records)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `tableProfile` | object | {"id": 2793022145302597, "tenant_id": 27... | — | 📦 嵌套对象,不直接映射 |
| 2 | `siteProfile` | object | {"id": 2790685415443269, "org_id": 27906... | — | 📦 嵌套对象,不直接映射 |
| 3 | `id` | integer | 3093721330321541 | [`id`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 4 | `adjust_type` | integer | 1 | [`adjust_type`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 5 | `applicant_id` | integer | 2790687322443013 | [`applicant_id`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 6 | `applicant_name` | string | 收银员:郑丽珊 | [`applicant_name`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 7 | `create_time` | string | 2026-02-13 21:56:07 | [`create_time`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 8 | `is_delete` | integer | 0 | [`is_delete`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 9 | `ledger_amount` | number | 125.88 | [`ledger_amount`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 10 | `ledger_count` | integer | 1 | [`ledger_count`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 11 | `ledger_name` | string | | [`ledger_name`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 12 | `ledger_status` | integer | 1 | [`ledger_status`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 13 | `operator_id` | integer | 2790687322443013 | [`operator_id`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 14 | `operator_name` | string | 收银员:郑丽珊 | [`operator_name`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 15 | `order_settle_id` | integer | 3093721299536133 | [`order_settle_id`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 16 | `order_trade_no` | integer | 3093324364122309 | [`order_trade_no`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 17 | `site_id` | integer | 2790685415443269 | [`site_id`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 18 | `site_table_id` | integer | 2793022145302597 | [`site_table_id`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 19 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-table-fee-discount-records) | ✅ 同名映射 |
| 20 | `tenant_table_area_id` | integer | 2791961709907845 | [`tenant_table_area_id`](#ods-table-fee-discount-records) | ✅ 同名映射 |
> 映射统计:18 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.table_fee_discount_records` (33 列) [🔗 API](#api-table-fee-discount-records)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-table-fee-discount-records) | [`table_fee_adjust_id`](#dwd-dwd-table-fee-adjust), [`table_fee_adjust_id`](#dwd-dwd-table-fee-adjust-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-table-fee-discount-records) | [`tenant_id`](#dwd-dwd-table-fee-adjust) |
| 3 | `site_id` | BIGINT | [`site_id`](#api-table-fee-discount-records) | [`site_id`](#dwd-dwd-table-fee-adjust) |
| 4 | `siteProfile` | JSONB | [`siteProfile`](#api-table-fee-discount-records) | — |
| 5 | `site_table_id` | BIGINT | [`site_table_id`](#api-table-fee-discount-records) | [`table_id`](#dwd-dwd-table-fee-adjust) |
| 6 | `tableProfile` | JSONB | [`tableProfile`](#api-table-fee-discount-records) | [`table_area_name`](#dwd-dwd-table-fee-adjust) |
| 7 | `tenant_table_area_id` | BIGINT | [`tenant_table_area_id`](#api-table-fee-discount-records) | [`table_area_id`](#dwd-dwd-table-fee-adjust), [`tenant_table_area_id`](#dwd-dwd-table-fee-adjust) |
| 8 | `adjust_type` | INT | [`adjust_type`](#api-table-fee-discount-records) | [`adjust_type`](#dwd-dwd-table-fee-adjust-ex) |
| 9 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#api-table-fee-discount-records) | [`ledger_amount`](#dwd-dwd-table-fee-adjust) |
| 10 | `ledger_count` | NUMERIC(18,4) | [`ledger_count`](#api-table-fee-discount-records) | [`ledger_count`](#dwd-dwd-table-fee-adjust-ex) |
| 11 | `ledger_name` | TEXT | [`ledger_name`](#api-table-fee-discount-records) | [`ledger_name`](#dwd-dwd-table-fee-adjust-ex) |
| 12 | `ledger_status` | INT | [`ledger_status`](#api-table-fee-discount-records) | [`ledger_status`](#dwd-dwd-table-fee-adjust) |
| 13 | `applicant_id` | BIGINT | [`applicant_id`](#api-table-fee-discount-records) | [`applicant_id`](#dwd-dwd-table-fee-adjust-ex) |
| 14 | `applicant_name` | TEXT | [`applicant_name`](#api-table-fee-discount-records) | [`applicant_name`](#dwd-dwd-table-fee-adjust-ex) |
| 15 | `operator_id` | BIGINT | [`operator_id`](#api-table-fee-discount-records) | [`operator_id`](#dwd-dwd-table-fee-adjust-ex) |
| 16 | `operator_name` | TEXT | [`operator_name`](#api-table-fee-discount-records) | [`operator_name`](#dwd-dwd-table-fee-adjust-ex) |
| 17 | `order_settle_id` | BIGINT | [`order_settle_id`](#api-table-fee-discount-records) | [`order_settle_id`](#dwd-dwd-table-fee-adjust) |
| 18 | `order_trade_no` | TEXT | [`order_trade_no`](#api-table-fee-discount-records) | [`order_trade_no`](#dwd-dwd-table-fee-adjust) |
| 19 | `is_delete` | INT | [`is_delete`](#api-table-fee-discount-records) | [`is_delete`](#dwd-dwd-table-fee-adjust) |
| 20 | `create_time` | TIMESTAMP | [`create_time`](#api-table-fee-discount-records) | [`adjust_time`](#dwd-dwd-table-fee-adjust) |
| 21 | `area_type_id` | BIGINT | — | [`area_type_id`](#dwd-dwd-table-fee-adjust-ex) |
| 22 | `charge_free` | BOOLEAN | — | [`charge_free`](#dwd-dwd-table-fee-adjust) |
| 23 | `site_table_area_id` | BIGINT | — | [`site_table_area_id`](#dwd-dwd-table-fee-adjust-ex) |
| 24 | `site_table_area_name` | TEXT | — | [`site_table_area_name`](#dwd-dwd-table-fee-adjust-ex) |
| 25 | `sitename` | TEXT | — | [`site_name`](#dwd-dwd-table-fee-adjust-ex) |
| 26 | `table_name` | TEXT | — | [`table_name`](#dwd-dwd-table-fee-adjust) |
| 27 | `table_price` | NUMERIC(18,2) | — | [`table_price`](#dwd-dwd-table-fee-adjust) |
| 28 | `tenant_name` | TEXT | — | [`tenant_name`](#dwd-dwd-table-fee-adjust-ex) |
*ETL 元数据列(5 个):`content_hash`, `source_file`, `source_endpoint`, `fetched_at`, `payload`*
### DWD: `dwd.dwd_table_fee_adjust` — 事实 (16 列) [🔗 ODS](#ods-table-fee-discount-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `table_fee_adjust_id` | BIGINT | [`id`](#ods-table-fee-discount-records) | 直接 | 字段重命名 |
| 2 | `order_trade_no` | BIGINT | [`order_trade_no`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 3 | `order_settle_id` | BIGINT | [`order_settle_id`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 4 | `tenant_id` | BIGINT | [`tenant_id`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 5 | `site_id` | BIGINT | [`site_id`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 6 | `table_id` | BIGINT | [`site_table_id`](#ods-table-fee-discount-records) | 直接 | 字段重命名 |
| 7 | `table_area_id` | BIGINT | [`tenant_table_area_id`](#ods-table-fee-discount-records) | 直接 | 字段重命名 |
| 8 | `table_area_name` | VARCHAR(64) | [`tableprofile->>'table_area_name'`](#ods-table-fee-discount-records) | 直接 | JSONB 提取 |
| 9 | `tenant_table_area_id` | BIGINT | [`tenant_table_area_id`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 10 | `ledger_amount` | NUMERIC(18,2) | [`ledger_amount`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 11 | `ledger_status` | INTEGER | [`ledger_status`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 12 | `is_delete` | INTEGER | [`is_delete`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 13 | `adjust_time` | TIMESTAMPTZ | [`create_time`](#ods-table-fee-discount-records) | 直接 | 字段重命名 |
| 14 | `table_name` | TEXT | [`table_name`](#ods-table-fee-discount-records) | 直接 | |
| 15 | `table_price` | NUMERIC(18,2) | [`table_price`](#ods-table-fee-discount-records) | 直接 | |
| 16 | `charge_free` | BOOLEAN | [`charge_free`](#ods-table-fee-discount-records) | → boolean | |
### DWD: `dwd.dwd_table_fee_adjust_ex` — 事实(扩展) (13 列) [🔗 ODS](#ods-table-fee-discount-records)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `table_fee_adjust_id` | BIGINT | [`id`](#ods-table-fee-discount-records) | 直接 | 字段重命名 |
| 2 | `adjust_type` | INTEGER | [`adjust_type`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 3 | `ledger_count` | INTEGER | [`ledger_count`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 4 | `ledger_name` | VARCHAR(128) | [`ledger_name`](#ods-table-fee-discount-records) | 直接 | |
| 5 | `applicant_name` | VARCHAR(64) | [`applicant_name`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 6 | `operator_name` | VARCHAR(64) | [`operator_name`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 7 | `applicant_id` | BIGINT | [`applicant_id`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 8 | `operator_id` | BIGINT | [`operator_id`](#ods-table-fee-discount-records) | 直接 | 同名直传 |
| 9 | `area_type_id` | BIGINT | [`area_type_id`](#ods-table-fee-discount-records) | 直接 | |
| 10 | `site_table_area_id` | BIGINT | [`site_table_area_id`](#ods-table-fee-discount-records) | 直接 | |
| 11 | `site_table_area_name` | TEXT | [`site_table_area_name`](#ods-table-fee-discount-records) | 直接 | |
| 12 | `site_name` | TEXT | [`sitename`](#ods-table-fee-discount-records) | 直接 | 字段重命名 |
| 13 | `tenant_name` | TEXT | [`tenant_name`](#ods-table-fee-discount-records) | 直接 | |
---
## 租户商品档案 (`tenant_goods_master`)
- 任务编码: `ODS_TENANT_GOODS`
- API 端点: `/TenantGoods/QueryTenantGoods`
- 获取记录数: 174
### API 源字段(32 个) [🔗 ODS](#ods-tenant-goods-master)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `categoryName` | string | 饮料 | [`categoryName`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 2 | `isInSite` | boolean | False | [`isInSite`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 3 | `commodityCode` | array | ["10000028"] | [`commodityCode`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 4 | `id` | integer | 2791925230096261 | [`id`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 5 | `able_discount` | integer | 1 | [`able_discount`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 6 | `able_site_transfer` | integer | 2 | [`able_site_transfer`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 7 | `commodity_code` | string | 10000028 | [`commodity_code`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 8 | `common_sale_royalty` | integer | 0 | [`common_sale_royalty`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 9 | `cost_price` | number | 0.0 | [`cost_price`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 10 | `cost_price_type` | integer | 1 | [`cost_price_type`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 11 | `create_time` | string | 2025-07-15 17:13:15 | [`create_time`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 12 | `goods_bar_code` | string | | [`goods_bar_code`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 13 | `goods_category_id` | integer | 2790683528350539 | [`goods_category_id`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 14 | `goods_cover` | string | https://oss.ficoo.vip/admin/ZwS8fj_17531... | [`goods_cover`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 15 | `goods_name` | string | 东方树叶 | [`goods_name`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 16 | `goods_number` | string | 1 | [`goods_number`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 17 | `goods_second_category_id` | integer | 2790683528350540 | [`goods_second_category_id`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 18 | `goods_state` | integer | 1 | [`goods_state`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 19 | `is_delete` | integer | 0 | [`is_delete`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 20 | `is_warehousing` | integer | 1 | [`is_warehousing`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 21 | `market_price` | number | 8.0 | [`market_price`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 22 | `min_discount_price` | number | 0.0 | [`min_discount_price`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 23 | `not_sale` | integer | 2 | [`not_sale`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 24 | `out_goods_id` | integer | 0 | [`out_goods_id`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 25 | `pinyin_initial` | string | DFSY,DFSX | [`pinyin_initial`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 26 | `point_sale_royalty` | integer | 0 | [`point_sale_royalty`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 27 | `remark_name` | string | | [`remark_name`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 28 | `sale_channel` | string | 1,2,3 | [`sale_channel`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 29 | `supplier_id` | integer | 0 | [`supplier_id`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 30 | `tenant_id` | integer | 2790683160709957 | [`tenant_id`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 31 | `unit` | string | 瓶 | [`unit`](#ods-tenant-goods-master) | ✅ 同名映射 |
| 32 | `update_time` | string | 2025-10-29 23:51:38 | [`update_time`](#ods-tenant-goods-master) | ✅ 同名映射 |
> 映射统计:32 个字段映射到 ODS,0 个仅存于 payload。
### ODS: `ods.tenant_goods_master` (37 列) [🔗 API](#api-tenant-goods-master)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `id` | BIGINT | [`id`](#api-tenant-goods-master) | [`tenant_goods_id`](#dwd-dim-tenant-goods), [`tenant_goods_id`](#dwd-dim-tenant-goods-ex) |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#api-tenant-goods-master) | [`tenant_id`](#dwd-dim-tenant-goods) |
| 3 | `goods_name` | TEXT | [`goods_name`](#api-tenant-goods-master) | [`goods_name`](#dwd-dim-tenant-goods) |
| 4 | `goods_bar_code` | TEXT | [`goods_bar_code`](#api-tenant-goods-master) | [`goods_bar_code`](#dwd-dim-tenant-goods-ex) |
| 5 | `goods_category_id` | BIGINT | [`goods_category_id`](#api-tenant-goods-master) | [`goods_category_id`](#dwd-dim-tenant-goods) |
| 6 | `goods_second_category_id` | BIGINT | [`goods_second_category_id`](#api-tenant-goods-master) | [`goods_second_category_id`](#dwd-dim-tenant-goods) |
| 7 | `categoryName` | TEXT | [`categoryName`](#api-tenant-goods-master) | [`category_name`](#dwd-dim-tenant-goods) |
| 8 | `unit` | TEXT | [`unit`](#api-tenant-goods-master) | [`unit`](#dwd-dim-tenant-goods) |
| 9 | `goods_number` | TEXT | [`goods_number`](#api-tenant-goods-master) | [`goods_number`](#dwd-dim-tenant-goods) |
| 10 | `out_goods_id` | TEXT | [`out_goods_id`](#api-tenant-goods-master) | [`out_goods_id`](#dwd-dim-tenant-goods-ex) |
| 11 | `goods_state` | INT | [`goods_state`](#api-tenant-goods-master) | [`goods_state`](#dwd-dim-tenant-goods) |
| 12 | `sale_channel` | INT | [`sale_channel`](#api-tenant-goods-master) | [`sale_channel`](#dwd-dim-tenant-goods-ex) |
| 13 | `able_discount` | INT | [`able_discount`](#api-tenant-goods-master) | [`able_discount`](#dwd-dim-tenant-goods-ex) |
| 14 | `able_site_transfer` | INT | [`able_site_transfer`](#api-tenant-goods-master) | [`able_site_transfer`](#dwd-dim-tenant-goods-ex) |
| 15 | `is_delete` | INT | [`is_delete`](#api-tenant-goods-master) | [`is_delete`](#dwd-dim-tenant-goods) |
| 16 | `is_warehousing` | INT | [`is_warehousing`](#api-tenant-goods-master) | [`is_warehousing`](#dwd-dim-tenant-goods-ex) |
| 17 | `isInSite` | INT | [`isInSite`](#api-tenant-goods-master) | [`is_in_site`](#dwd-dim-tenant-goods-ex) |
| 18 | `cost_price` | NUMERIC(18,4) | [`cost_price`](#api-tenant-goods-master) | [`cost_price`](#dwd-dim-tenant-goods-ex) |
| 19 | `cost_price_type` | INT | [`cost_price_type`](#api-tenant-goods-master) | [`cost_price_type`](#dwd-dim-tenant-goods-ex) |
| 20 | `market_price` | NUMERIC(18,4) | [`market_price`](#api-tenant-goods-master) | [`market_price`](#dwd-dim-tenant-goods) |
| 21 | `min_discount_price` | NUMERIC(18,4) | [`min_discount_price`](#api-tenant-goods-master) | [`min_discount_price`](#dwd-dim-tenant-goods-ex) |
| 22 | `common_sale_royalty` | NUMERIC(18,4) | [`common_sale_royalty`](#api-tenant-goods-master) | [`common_sale_royalty`](#dwd-dim-tenant-goods-ex) |
| 23 | `point_sale_royalty` | NUMERIC(18,4) | [`point_sale_royalty`](#api-tenant-goods-master) | [`point_sale_royalty`](#dwd-dim-tenant-goods-ex) |
| 24 | `pinyin_initial` | TEXT | [`pinyin_initial`](#api-tenant-goods-master) | [`pinyin_initial`](#dwd-dim-tenant-goods-ex) |
| 25 | `commodityCode` | TEXT | [`commodityCode`](#api-tenant-goods-master) | — |
| 26 | `commodity_code` | TEXT | [`commodity_code`](#api-tenant-goods-master) | [`commodity_code`](#dwd-dim-tenant-goods-ex), [`commodity_code_list`](#dwd-dim-tenant-goods-ex) |
| 27 | `goods_cover` | TEXT | [`goods_cover`](#api-tenant-goods-master) | [`goods_cover`](#dwd-dim-tenant-goods-ex) |
| 28 | `supplier_id` | BIGINT | [`supplier_id`](#api-tenant-goods-master) | [`supplier_id`](#dwd-dim-tenant-goods) |
| 29 | `remark_name` | TEXT | [`remark_name`](#api-tenant-goods-master) | [`remark_name`](#dwd-dim-tenant-goods-ex) |
| 30 | `create_time` | TIMESTAMP | [`create_time`](#api-tenant-goods-master) | [`create_time`](#dwd-dim-tenant-goods) |
| 31 | `update_time` | TIMESTAMP | [`update_time`](#api-tenant-goods-master) | [`update_time`](#dwd-dim-tenant-goods) |
| 32 | `not_sale` | INTEGER, | [`not_sale`](#api-tenant-goods-master) | [`not_sale`](#dwd-dim-tenant-goods) |
*ETL 元数据列(5 个):`payload`, `content_hash`, `source_file`, `source_endpoint`, `fetched_at`*
### DWD: `dwd.dim_tenant_goods` — 维度 (19 列) [🔗 ODS](#ods-tenant-goods-master)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `tenant_goods_id` | BIGINT | [`id`](#ods-tenant-goods-master) | 直接 | 字段重命名 |
| 2 | `tenant_id` | BIGINT | [`tenant_id`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 3 | `supplier_id` | BIGINT | [`supplier_id`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 4 | `category_name` | VARCHAR(64) | [`categoryname`](#ods-tenant-goods-master) | 直接 | 字段重命名 |
| 5 | `goods_category_id` | BIGINT | [`goods_category_id`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 6 | `goods_second_category_id` | BIGINT | [`goods_second_category_id`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 7 | `goods_name` | VARCHAR(128) | [`goods_name`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 8 | `goods_number` | VARCHAR(64) | [`goods_number`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 9 | `unit` | VARCHAR(16) | [`unit`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 10 | `market_price` | NUMERIC(18,2) | [`market_price`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 11 | `goods_state` | INTEGER | [`goods_state`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 12 | `create_time` | TIMESTAMPTZ | [`create_time`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 13 | `update_time` | TIMESTAMPTZ | [`update_time`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 14 | `is_delete` | INTEGER | [`is_delete`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 15 | `not_sale` | INTEGER | [`not_sale`](#ods-tenant-goods-master) | 直接 | |
| 16 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 17 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 18 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 19 | `SCD2_version` | INT | — | — | SCD2 元数据 |
### DWD: `dwd.dim_tenant_goods_ex` — 维度(扩展) (22 列) [🔗 ODS](#ods-tenant-goods-master)
| # | DWD 列名 | 类型 | ← ODS 来源 | 转换 | 说明 |
|---|---------|------|-----------|------|------|
| 1 | `tenant_goods_id` | BIGINT | [`id`](#ods-tenant-goods-master) | 直接 | 字段重命名 |
| 2 | `remark_name` | VARCHAR(128) | [`remark_name`](#ods-tenant-goods-master) | 直接 | |
| 3 | `pinyin_initial` | VARCHAR(128) | [`pinyin_initial`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 4 | `goods_cover` | VARCHAR(512) | [`goods_cover`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 5 | `goods_bar_code` | VARCHAR(64) | [`goods_bar_code`](#ods-tenant-goods-master) | 直接 | |
| 6 | `commodity_code` | VARCHAR(64) | [`commodity_code`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 7 | `commodity_code_list` | VARCHAR(256) | [`commodity_code`](#ods-tenant-goods-master) | 直接 | 字段重命名 |
| 8 | `min_discount_price` | NUMERIC(18,2) | [`min_discount_price`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 9 | `cost_price` | NUMERIC(18,2) | [`cost_price`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 10 | `cost_price_type` | INTEGER | [`cost_price_type`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 11 | `able_discount` | INTEGER | [`able_discount`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 12 | `sale_channel` | INTEGER | [`sale_channel`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 13 | `is_warehousing` | INTEGER | [`is_warehousing`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 14 | `is_in_site` | BOOLEAN | [`isinsite`](#ods-tenant-goods-master) | → boolean | 字段重命名 |
| 15 | `able_site_transfer` | INTEGER | [`able_site_transfer`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 16 | `common_sale_royalty` | INTEGER | [`common_sale_royalty`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 17 | `point_sale_royalty` | INTEGER | [`point_sale_royalty`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 18 | `out_goods_id` | BIGINT | [`out_goods_id`](#ods-tenant-goods-master) | 直接 | 同名直传 |
| 19 | `SCD2_start_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 20 | `SCD2_end_time` | TIMESTAMPTZ | — | — | SCD2 元数据 |
| 21 | `SCD2_is_current` | INT | — | — | SCD2 元数据 |
| 22 | `SCD2_version` | INT | — | — | SCD2 元数据 |
---
## 结账小票详情(按 orderSettleId 逐条获取,不走常规分页) (`settlement_ticket_details`)
- 任务编码: `ODS_SETTLEMENT_TICKET`
- API 端点: `/Order/GetOrderSettleTicketNew`
- 获取记录数: 10
### API 源字段(39 个) [🔗 ODS](#ods-settlement-ticket-details)
| # | JSON 字段 | 类型 | 示例值 | → ODS 列 | 说明 |
|---|----------|------|--------|----------|------|
| 1 | `siteId` | integer | 2790685415443269 | [`siteId`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 2 | `payTime` | string | 2025-11-08 22:21:19 | [`payTime`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 3 | `siteName` | string | 朗朗桌球 | [`siteName`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 4 | `tenantId` | integer | 2790683160709957 | [`tenantId`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 5 | `orderItem` | array | [{"orderType": 1, "siteOrderId": 2956375... | [`orderItem`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 6 | `rewardName` | string | 激励 | [`rewardName`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 7 | `settleType` | string | SiteOrder | [`settleType`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 8 | `tenantName` | string | 朗朗桌球 | [`tenantName`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 9 | `cashierName` | string | 收银员:郑丽珊 | [`cashierName`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 10 | `deliveryFee` | number | 0.0 | [`deliveryFee`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 11 | `orderRemark` | string | | [`orderRemark`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 12 | `prepayMoney` | number | 0.0 | [`prepayMoney`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 13 | `siteAddress` | string | 广东省广州市天河区天园街道朗朗桌球 | [`siteAddress`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 14 | `adjustAmount` | number | 0.0 | [`adjustAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 15 | `consumeMoney` | number | 68.0 | [`consumeMoney`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 16 | `couponAmount` | number | 0.0 | [`couponAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 17 | `ledgerAmount` | number | 0.0 | [`ledgerAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 18 | `refundAmount` | number | 0.0 | [`refundAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 19 | `ticketRemark` | string | | [`ticketRemark`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 20 | `voucherMoney` | number | 0.0 | [`voucherMoney`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 21 | `actualPayment` | number | 0.0 | [`actualPayment`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 22 | `balanceAmount` | number | 0.0 | [`balanceAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 23 | `memberProfile` | object | {"memberName": "匿名用户", "memberPhone": ""... | [`memberProfile`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 24 | `orderSettleId` | integer | 2956435061558789 | [`orderSettleId`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 25 | `paymentMethod` | integer | 2 | [`paymentMethod`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 26 | `deliveryAddress` | string | | [`deliveryAddress`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 27 | `siteBusinessTel` | string | 13316068642 | [`siteBusinessTel`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 28 | `payMemberBalance` | number | 0.0 | [`payMemberBalance`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 29 | `memberOfferAmount` | number | 0.0 | [`memberOfferAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 30 | `orderSettleNumber` | integer | 0 | [`orderSettleNumber`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 31 | `pointDiscountCost` | number | 0.0 | [`pointDiscountCost`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 32 | `returnGoodsAmount` | number | 0.0 | [`returnGoodsAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 33 | `memberDeductAmount` | integer | 0 | [`memberDeductAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 34 | `onlineReturnAmount` | number | 0.0 | [`onlineReturnAmount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 35 | `pointDiscountPrice` | number | 0.0 | [`pointDiscountPrice`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 36 | `ticketCustomContent` | string | | [`ticketCustomContent`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 37 | `assistantManualDiscount` | number | 0.0 | [`assistantManualDiscount`](#ods-settlement-ticket-details) | ✅ 同名映射 |
| 38 | `code` | integer | 0 | — | ⚠️ 仅存于 payload JSONB |
| 39 | `data` | object | {"code": 0, "data": {"siteId": 279068541... | — | 📦 嵌套对象,展平后各字段独立映射 |
> 映射统计:37 个字段映射到 ODS,1 个仅存于 payload。
### ODS: `ods.settlement_ticket_details` (43 列) [🔗 API](#api-settlement-ticket-details)
| # | ODS 列名 | 类型 | ← JSON 源 | → DWD 目标 |
|---|---------|------|-----------|-----------|
| 1 | `orderSettleId` | BIGINT | [`orderSettleId`](#api-settlement-ticket-details) | — |
| 2 | `actualPayment` | NUMERIC(18,2) | [`actualPayment`](#api-settlement-ticket-details) | — |
| 3 | `adjustAmount` | NUMERIC(18,2) | [`adjustAmount`](#api-settlement-ticket-details) | — |
| 4 | `assistantManualDiscount` | NUMERIC(18,2) | [`assistantManualDiscount`](#api-settlement-ticket-details) | — |
| 5 | `balanceAmount` | NUMERIC(18,2) | [`balanceAmount`](#api-settlement-ticket-details) | — |
| 6 | `cashierName` | TEXT | [`cashierName`](#api-settlement-ticket-details) | — |
| 7 | `consumeMoney` | NUMERIC(18,2) | [`consumeMoney`](#api-settlement-ticket-details) | — |
| 8 | `couponAmount` | NUMERIC(18,2) | [`couponAmount`](#api-settlement-ticket-details) | — |
| 9 | `deliveryAddress` | TEXT | [`deliveryAddress`](#api-settlement-ticket-details) | — |
| 10 | `deliveryFee` | NUMERIC(18,2) | [`deliveryFee`](#api-settlement-ticket-details) | — |
| 11 | `ledgerAmount` | NUMERIC(18,2) | [`ledgerAmount`](#api-settlement-ticket-details) | — |
| 12 | `memberDeductAmount` | NUMERIC(18,2) | [`memberDeductAmount`](#api-settlement-ticket-details) | — |
| 13 | `memberOfferAmount` | NUMERIC(18,2) | [`memberOfferAmount`](#api-settlement-ticket-details) | — |
| 14 | `onlineReturnAmount` | NUMERIC(18,2) | [`onlineReturnAmount`](#api-settlement-ticket-details) | — |
| 15 | `orderRemark` | TEXT | [`orderRemark`](#api-settlement-ticket-details) | — |
| 16 | `orderSettleNumber` | BIGINT | [`orderSettleNumber`](#api-settlement-ticket-details) | — |
| 17 | `payMemberBalance` | NUMERIC(18,2) | [`payMemberBalance`](#api-settlement-ticket-details) | — |
| 18 | `payTime` | TIMESTAMP | [`payTime`](#api-settlement-ticket-details) | — |
| 19 | `paymentMethod` | INT | [`paymentMethod`](#api-settlement-ticket-details) | — |
| 20 | `pointDiscountCost` | NUMERIC(18,2) | [`pointDiscountCost`](#api-settlement-ticket-details) | — |
| 21 | `pointDiscountPrice` | NUMERIC(18,2) | [`pointDiscountPrice`](#api-settlement-ticket-details) | — |
| 22 | `prepayMoney` | NUMERIC(18,2) | [`prepayMoney`](#api-settlement-ticket-details) | — |
| 23 | `refundAmount` | NUMERIC(18,2) | [`refundAmount`](#api-settlement-ticket-details) | — |
| 24 | `returnGoodsAmount` | NUMERIC(18,2) | [`returnGoodsAmount`](#api-settlement-ticket-details) | — |
| 25 | `rewardName` | TEXT | [`rewardName`](#api-settlement-ticket-details) | — |
| 26 | `settleType` | TEXT | [`settleType`](#api-settlement-ticket-details) | — |
| 27 | `siteAddress` | TEXT | [`siteAddress`](#api-settlement-ticket-details) | — |
| 28 | `siteBusinessTel` | TEXT | [`siteBusinessTel`](#api-settlement-ticket-details) | — |
| 29 | `siteId` | BIGINT | [`siteId`](#api-settlement-ticket-details) | — |
| 30 | `siteName` | TEXT | [`siteName`](#api-settlement-ticket-details) | — |
| 31 | `tenantId` | BIGINT | [`tenantId`](#api-settlement-ticket-details) | — |
| 32 | `tenantName` | TEXT | [`tenantName`](#api-settlement-ticket-details) | — |
| 33 | `ticketCustomContent` | TEXT | [`ticketCustomContent`](#api-settlement-ticket-details) | — |
| 34 | `ticketRemark` | TEXT | [`ticketRemark`](#api-settlement-ticket-details) | — |
| 35 | `voucherMoney` | NUMERIC(18,2) | [`voucherMoney`](#api-settlement-ticket-details) | — |
| 36 | `memberProfile` | JSONB | [`memberProfile`](#api-settlement-ticket-details) | — |
| 37 | `orderItem` | JSONB | [`orderItem`](#api-settlement-ticket-details) | — |
| 38 | `tenantMemberCardLogs` | JSONB | — | — |
*ETL 元数据列(5 个):`payload`, `content_hash`, `source_file`, `source_endpoint`, `fetched_at`*
*该 ODS 表暂无 DWD 映射(仅用于 DWS 或其他下游)*
---
## 附录
### ETL 元数据列
所有 ODS 表均包含以下 ETL 元数据列,不映射到 DWD:
| 列名 | 类型 | 说明 |
|------|------|------|
| `content_hash` | TEXT | 记录内容哈希,用于去重和变更检测 |
| `source_file` | TEXT | 原始导出文件名,用于数据追溯 |
| `source_endpoint` | TEXT | 采集来源接口/文件路径 |
| `fetched_at` | TIMESTAMPTZ | 采集/入库时间戳 |
| `payload` | JSONB | 完整原始 JSON 记录快照 |
### DWD 维度表 SCD2 列
| 列名 | 类型 | 说明 |
|------|------|------|
| `scd2_start_time` | TIMESTAMPTZ | 版本生效起点 |
| `scd2_end_time` | TIMESTAMPTZ | 版本失效时间(9999-12-31 = 当前) |
| `scd2_is_current` | INT | 当前版本标记(1=当前,0=历史) |
| `scd2_version` | INT | 版本号(自增) |
### DWD 事实表增量策略
事实表按时间窗口增量写入,优先使用以下业务时间列进行过滤:
1. `pay_time` — 支付时间
2. `create_time` — 创建时间
3. `update_time` — 更新时间
4. `occur_time` — 发生时间
5. `settle_time` — 结算时间
6. `start_use_time` — 开始使用时间
7. `fetched_at` — 入库时间(兜底)