# 充值结算记录（GetRechargeSettleList） → recharge_settlements 字段映射

> 生成时间：2026-02-14

## 端点信息

| 属性 | 值 |
|------|-----|
| 接口路径 | `Site/GetRechargeSettleList` |
| 请求方法 | POST |
| ODS 对应表 | `ods.recharge_settlements` |
| JSON 数据路径 | `data.settleList（外层含 siteProfile）` |

## 字段映射

| JSON 字段 | ODS 列名 | 类型转换 | 说明 |
|-----------|----------|----------|------|
| id | id | int→BIGINT（`parse_int`） | 门店 ID |
| tenantid | tenantid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| siteid | siteid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| sitename | sitename | string→TEXT（原样） | 名称字段，用于展示与辅助识别 |
| balanceamount | balanceamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| cardamount | cardamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| cashamount | cashamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| couponamount | couponamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| createtime | createtime | string→TIMESTAMP（`parse_timestamp`） | 时间字段，用于记录业务时间点/发生时间 |
| memberid | memberid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| membername | membername | string→TEXT（原样） | 名称字段，用于展示与辅助识别 |
| tenantmembercardid | tenantmembercardid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| membercardtypename | membercardtypename | string→TEXT（原样） | 名称字段，用于展示与辅助识别 |
| memberphone | memberphone | string→TEXT（原样） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| tableid | tableid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| consumemoney | consumemoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| onlineamount | onlineamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| operatorid | operatorid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| operatorname | operatorname | string→TEXT（原样） | 名称字段，用于展示与辅助识别 |
| revokeorderid | revokeorderid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| revokeordername | revokeordername | string→TEXT（原样） | 名称字段，用于展示与辅助识别 |
| revoketime | revoketime | string→TIMESTAMP（`parse_timestamp`） | 时间字段，用于记录业务时间点/发生时间 |
| payamount | payamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| pointamount | pointamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| refundamount | refundamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| settlename | settlename | string→TEXT（原样） | 名称字段，用于展示与辅助识别 |
| settlerelateid | settlerelateid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| settlestatus | settlestatus | int→INT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| settletype | settletype | int→INT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| paytime | paytime | string→TIMESTAMP（`parse_timestamp`） | 时间字段，用于记录业务时间点/发生时间 |
| roundingamount | roundingamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| paymentmethod | paymentmethod | int→INT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| adjustamount | adjustamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| assistantcxmoney | assistantcxmoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| assistantpdmoney | assistantpdmoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| couponsaleamount | couponsaleamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| memberdiscountamount | memberdiscountamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| tablechargemoney | tablechargemoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| goodsmoney | goodsmoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| realgoodsmoney | realgoodsmoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| servicemoney | servicemoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| prepaymoney | prepaymoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| salesmanname | salesmanname | string→TEXT（原样） | 名称字段，用于展示与辅助识别 |
| orderremark | orderremark | string→TEXT（原样） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| salesmanuserid | salesmanuserid | int→BIGINT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| canberevoked | canberevoked | bool→BOOLEAN | 来自 JSON 导出的原始字段，用于保留业务取值 |
| pointdiscountprice | pointdiscountprice | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| pointdiscountcost | pointdiscountcost | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| activitydiscount | activitydiscount | float→NUMERIC(18,2)（`parse_decimal`） | 数量/时长字段，用于统计与计量 |
| serialnumber | serialnumber | int→BIGINT（`parse_int`） | 数量/时长字段，用于统计与计量 |
| assistantmanualdiscount | assistantmanualdiscount | float→NUMERIC(18,2)（`parse_decimal`） | 数量/时长字段，用于统计与计量 |
| allcoupondiscount | allcoupondiscount | float→NUMERIC(18,2)（`parse_decimal`） | 数量/时长字段，用于统计与计量 |
| goodspromotionmoney | goodspromotionmoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| assistantpromotionmoney | assistantpromotionmoney | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| isusecoupon | isusecoupon | bool→BOOLEAN | 来自 JSON 导出的原始字段，用于保留业务取值 |
| isusediscount | isusediscount | bool→BOOLEAN | 数量/时长字段，用于统计与计量 |
| isactivity | isactivity | bool→BOOLEAN | 来自 JSON 导出的原始字段，用于保留业务取值 |
| isbindmember | isbindmember | bool→BOOLEAN | 来自 JSON 导出的原始字段，用于保留业务取值 |
| isfirst | isfirst | int→INT（`parse_int`） | 来自 JSON 导出的原始字段，用于保留业务取值 |
| rechargecardamount | rechargecardamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| giftcardamount | giftcardamount | float→NUMERIC(18,2)（`parse_decimal`） | 金额字段，用于计费/结算/分摊等金额计算 |
| electricityadjustmoney | electricityadjustmoney | float→NUMERIC(18,2)（`parse_decimal`） | 电费调整金额（新增字段） |
| electricitymoney | electricitymoney | float→NUMERIC(18,2)（`parse_decimal`） | 电费金额（新增字段） |
| mervousalesamount | mervousalesamount | float→NUMERIC(18,2)（`parse_decimal`） | 商户代金券销售金额（新增字段） |
| plcouponsaleamount | plcouponsaleamount | float→NUMERIC(18,2)（`parse_decimal`） | 平台券销售金额（新增字段） |
| realelectricitymoney | realelectricitymoney | float→NUMERIC(18,2)（`parse_decimal`） | 实际电费金额（新增字段） |

## ETL 补充字段

| ODS 列名 | 生成逻辑 |
|-----------|----------|
| content_hash | 对业务字段（排除 ETL 元数据列）计算 SHA-256，用于变更检测与去重 |
| source_file | 固定值：`recharge_settlements.json`，标识原始导出文件 |
| source_endpoint | API 端点路径，如 `Site/GetRechargeSettleList` |
| fetched_at | ETL 入库时间戳（`TIMESTAMPTZ DEFAULT now()`） |
| payload | 完整原始 JSON 记录快照（`JSONB NOT NULL`），用于回溯与二次解析 |

## 类型转换规则

- **时间戳**：通过 `TypeParser.parse_timestamp()` 转换，支持 ISO 字符串和 Unix 毫秒时间戳，自动处理时区
- **金额**：通过 `TypeParser.parse_decimal(value, scale=2)` 转换，`ROUND_HALF_UP` 四舍五入
- **整数**：通过 `TypeParser.parse_int()` 转换，`None` 保持为 `NULL`
- **字符串**：原样保留，`None` / 空字符串均存为 `NULL` 或空文本
- **布尔值**：API 返回 `true/false`，ODS 存为 `BOOLEAN` 或 `INT`（0/1）
- **JSONB**：`siteProfile`、`payload` 等复合对象直接以 `JSONB` 类型存储
