# BD_Manual：recharge_settlements（充值结算）

> ODS 表：`ods.recharge_settlements`
> DWD 表：`dwd.dwd_recharge_order`（主表）、`dwd.dwd_recharge_order_ex`（扩展表）
> API 接口：充值结算记录列表
> JSON 路径：`recharge_settlements.json → data.orderSettles`
> 装载方式：事实表增量插入（`DwdLoadTask`）
> 代码位置：`apps/etl/connectors/feiqiu/tasks/dwd/dwd_load_task.py`

---

## 1. dwd_recharge_order（主表）

| DWD 列名 | 类型 | ODS 源列 | 映射方式 | 业务含义 | 取值范围/示例 |
|----------|------|---------|---------|---------|-------------|
| `recharge_order_id` | BIGINT | `id` | FACT_MAPPINGS | 充值结算记录唯一标识（PK） | 飞球雪花 ID |
| `tenant_id` | BIGINT | `tenantid` | FACT_MAPPINGS | 租户 ID | 飞球租户 ID |
| `site_id` | BIGINT | `siteid` | FACT_MAPPINGS | 门店 ID | 飞球门店 ID |
| `member_id` | BIGINT | `memberid` | FACT_MAPPINGS | 会员 ID | 飞球会员 ID |
| `member_name_snapshot` | TEXT | `membername` | FACT_MAPPINGS | 会员姓名快照 | 姓名 |
| `member_phone_snapshot` | TEXT | `memberphone` | FACT_MAPPINGS | 会员手机号快照 | 11 位手机号 |
| `tenant_member_card_id` | BIGINT | `tenantmembercardid` | FACT_MAPPINGS | 会员卡 ID | 飞球会员卡 ID |
| `member_card_type_name` | TEXT | `membercardtypename` | FACT_MAPPINGS | 会员卡类型名称 | 如 `普通会员卡` |
| `settle_relate_id` | BIGINT | `settlerelateid` | FACT_MAPPINGS | 关联结算单 ID | 飞球结算 ID |
| `settle_type` | INTEGER | `settletype` | FACT_MAPPINGS | 结算类型枚举 | 枚举值 |
| `settle_name` | TEXT | `settlename` | FACT_MAPPINGS | 结算类型名称 | 如 `充值` |
| `is_first` | INTEGER | `isfirst` | FACT_MAPPINGS | 是否首次充值：0=否，1=是 | `0` / `1` |
| `pay_amount` | NUMERIC | `payamount` | FACT_MAPPINGS | 实付金额（元） | 金额值 |
| `refund_amount` | NUMERIC | `refundamount` | FACT_MAPPINGS | 退款金额（元） | `0.00` ~ 金额值 |
| `point_amount` | NUMERIC | `pointamount` | FACT_MAPPINGS | 积分抵扣金额（元） | `0.00` ~ 金额值 |
| `cash_amount` | NUMERIC | `cashamount` | FACT_MAPPINGS | 现金支付金额（元） | `0.00` ~ 金额值 |
| `payment_method` | TEXT | `paymentmethod` | FACT_MAPPINGS | 支付方式 | 如 `微信`、`支付宝` |
| `create_time` | TIMESTAMPTZ | `createtime` | FACT_MAPPINGS | 充值记录创建时间 | ISO 时间戳 |
| `pay_time` | TIMESTAMPTZ | `paytime` | FACT_MAPPINGS | 支付完成时间 | ISO 时间戳 |
| `pl_coupon_sale_amount` | NUMERIC | `plcouponsaleamount` | FACT_MAPPINGS | 平台券销售金额（元）。当前门店业务未启用，全部为 0 | `0.00` |
| `mervou_sales_amount` | NUMERIC | `mervousalesamount` | FACT_MAPPINGS | 储值券销售金额（元）。当前门店业务未启用，全部为 0 | `0.00` |
| `electricity_money` | NUMERIC | `electricitymoney` | FACT_MAPPINGS | 电费金额（元）。当前门店业务未启用，全部为 0 | `0.00` |
| `real_electricity_money` | NUMERIC | `realelectricitymoney` | FACT_MAPPINGS | 实际电费金额（元），扣除调整后的电费。当前门店业务未启用，全部为 0 | `0.00` |
| `electricity_adjust_money` | NUMERIC | `electricityadjustmoney` | FACT_MAPPINGS | 电费调整金额（元），电费手动调整的差额。当前门店业务未启用，全部为 0 | `0.00` |

---

## 2. dwd_recharge_order_ex（扩展表）

| DWD 列名 | 类型 | ODS 源列 | 映射方式 | 业务含义 | 取值范围/示例 |
|----------|------|---------|---------|---------|-------------|
| `recharge_order_id` | BIGINT | `id` | FACT_MAPPINGS | 充值结算记录唯一标识（PK） | 同主表 |
| `site_name_snapshot` | TEXT | `sitename` | FACT_MAPPINGS | 门店名称快照 | 如 `朗朗桌球` |
| `settle_status` | INTEGER | `settlestatus` | FACT_MAPPINGS | 结算状态枚举 | 枚举值 |
| `is_bind_member` | BOOLEAN | `isbindmember` | FACT_MAPPINGS (cast boolean) | 是否绑定会员 | `true` / `false` |
| `is_activity` | BOOLEAN | `isactivity` | FACT_MAPPINGS (cast boolean) | 是否参与活动 | `true` / `false` |
| `is_use_coupon` | BOOLEAN | `isusecoupon` | FACT_MAPPINGS (cast boolean) | 是否使用优惠券 | `true` / `false` |
| `is_use_discount` | BOOLEAN | `isusediscount` | FACT_MAPPINGS (cast boolean) | 是否使用折扣 | `true` / `false` |
| `can_be_revoked` | BOOLEAN | `canberevoked` | FACT_MAPPINGS (cast boolean) | 是否可撤销 | `true` / `false` |
| `online_amount` | NUMERIC | `onlineamount` | FACT_MAPPINGS | 线上支付金额（元） | 金额值 |
| `balance_amount` | NUMERIC | `balanceamount` | FACT_MAPPINGS | 余额支付金额（元） | 金额值 |
| `card_amount` | NUMERIC | `cardamount` | FACT_MAPPINGS | 银行卡支付金额（元） | 金额值 |
| `coupon_amount` | NUMERIC | `couponamount` | FACT_MAPPINGS | 优惠券抵扣金额（元） | 金额值 |
| `recharge_card_amount` | NUMERIC | `rechargecardamount` | FACT_MAPPINGS | 充值卡支付金额（元） | 金额值 |
| `gift_card_amount` | NUMERIC | `giftcardamount` | FACT_MAPPINGS | 赠送卡支付金额（元） | 金额值 |
| `prepay_money` | NUMERIC | `prepaymoney` | FACT_MAPPINGS | 预付金额（元） | 金额值 |
| `consume_money` | NUMERIC | `consumemoney` | FACT_MAPPINGS | 消费总金额（元） | 金额值 |
| `goods_money` | NUMERIC | `goodsmoney` | FACT_MAPPINGS | 商品金额（元） | 金额值 |
| `real_goods_money` | NUMERIC | `realgoodsmoney` | FACT_MAPPINGS | 实收商品金额（元） | 金额值 |
| `table_charge_money` | NUMERIC | `tablechargemoney` | FACT_MAPPINGS | 台费金额（元） | 金额值 |
| `service_money` | NUMERIC | `servicemoney` | FACT_MAPPINGS | 服务费金额（元） | 金额值 |
| `activity_discount` | NUMERIC | `activitydiscount` | FACT_MAPPINGS | 活动折扣金额（元） | 金额值 |
| `all_coupon_discount` | NUMERIC | `allcoupondiscount` | FACT_MAPPINGS | 全部优惠券折扣金额（元） | 金额值 |
| `goods_promotion_money` | NUMERIC | `goodspromotionmoney` | FACT_MAPPINGS | 商品促销金额（元） | 金额值 |
| `assistant_promotion_money` | NUMERIC | `assistantpromotionmoney` | FACT_MAPPINGS | 助教促销金额（元） | 金额值 |
| `assistant_pd_money` | NUMERIC | `assistantpdmoney` | FACT_MAPPINGS | 助教陪打金额（元） | 金额值 |
| `assistant_cx_money` | NUMERIC | `assistantcxmoney` | FACT_MAPPINGS | 助教促销服务金额（元） | 金额值 |
| `assistant_manual_discount` | NUMERIC | `assistantmanualdiscount` | FACT_MAPPINGS | 助教手动折扣金额（元） | 金额值 |
| `coupon_sale_amount` | NUMERIC | `couponsaleamount` | FACT_MAPPINGS | 券销售金额（元） | 金额值 |
| `member_discount_amount` | NUMERIC | `memberdiscountamount` | FACT_MAPPINGS | 会员折扣金额（元） | 金额值 |
| `point_discount_price` | NUMERIC | `pointdiscountprice` | FACT_MAPPINGS | 积分折扣价格（元） | 金额值 |
| `point_discount_cost` | NUMERIC | `pointdiscountcost` | FACT_MAPPINGS | 积分折扣成本（元） | 金额值 |
| `adjust_amount` | NUMERIC | `adjustamount` | FACT_MAPPINGS | 调整金额（元） | 金额值 |
| `rounding_amount` | NUMERIC | `roundingamount` | FACT_MAPPINGS | 抹零金额（元） | 金额值 |
| `operator_id` | BIGINT | `operatorid` | FACT_MAPPINGS | 操作员 ID | 员工 ID |
| `operator_name_snapshot` | TEXT | `operatorname` | FACT_MAPPINGS | 操作员姓名快照 | 如 `郑丽珊` |
| `salesman_user_id` | BIGINT | `salesmanuserid` | FACT_MAPPINGS | 销售员用户 ID | 用户 ID |
| `salesman_name` | TEXT | `salesmanname` | FACT_MAPPINGS | 销售员姓名 | 姓名或 NULL |
| `order_remark` | TEXT | `orderremark` | FACT_MAPPINGS | 订单备注 | 自由文本或 NULL |
| `table_id` | BIGINT | `tableid` | FACT_MAPPINGS | 台桌 ID | 飞球台桌 ID |
| `serial_number` | INTEGER | `serialnumber` | FACT_MAPPINGS | 流水号 | 正整数 |
| `revoke_order_id` | BIGINT | `revokeorderid` | FACT_MAPPINGS | 撤销关联的订单 ID | 订单 ID 或 0 |
| `revoke_order_name` | TEXT | `revokeordername` | FACT_MAPPINGS | 撤销关联的订单名称 | 名称或 NULL |
| `revoke_time` | TIMESTAMPTZ | `revoketime` | FACT_MAPPINGS | 撤销时间 | ISO 时间戳或 NULL |

---

## 3. B 类表说明

本表属于 B 类（仅补 FACT_MAPPINGS），5 个电费/券字段的 DWD 列在 DDL 中已存在，但之前缺少 FACT_MAPPINGS 条目导致数据未从 ODS 流入 DWD。2026-02-20 补充映射后，这 5 个字段的数据可正常流转。当前门店这 5 个字段的 ODS/DWD 数据全部为 0（业务未启用电费和券销售功能）。

---

## 4. 代码引用

- FACT_MAPPINGS：`dwd_load_task.py` → `FACT_MAPPINGS["dwd.dwd_recharge_order"]` / `FACT_MAPPINGS["dwd.dwd_recharge_order_ex"]`
- TABLE_MAP：`"dwd.dwd_recharge_order" → "ods.recharge_settlements"`
- DWS 下游：`dws_finance_daily_task.py`（财务日报，充值汇总）
