Files
ZQYY.FQ-ETL/docs/api-reference/recharge_settlements.md

360 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 充值结算记录 — GetRechargeSettleList
> 模块:`Site` · ODS 表:`recharge_settlements` · 事实表(增量)
---
## 一、接口概述
查询门店下会员充值/充值撤销的结算记录。每条记录对应一笔充值订单或充值撤销操作,包含会员信息、充值金额、退款金额、支付方式等。本表复用了通用"结算单"模型,大量消费类字段(商品、台费、助教等)在充值场景下为 0仅充值相关字段有值。通过 `settleType` 区分充值订单与充值撤销。
| 属性 | 值 |
|------|-----|
| 完整路径 | `POST /Site/GetRechargeSettleList` |
| Base URL | `https://pc.ficoo.vip/apiprod/admin/v1/` |
| 鉴权 | `Authorization: Bearer <token>` |
| 分页 | `page` + `limit`(最大 100 |
| 时间范围 | `rangeStartTime` / `rangeEndTime`(必填) |
---
## 二、请求
### 请求体JSON
```json
{
"settleType": 0,
"paymentMethod": 0,
"rangeStartTime": "2025-11-01 08:00:00",
"rangeEndTime": "2025-11-10 08:00:00",
"siteId": 2790685415443269,
"isFirst": 0,
"page": 1,
"limit": 100
}
```
### 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `settleType` | int | 是 | 结算类型筛选。`0` = 全部 |
| `paymentMethod` | int | 是 | 支付方式筛选。`0` = 全部 |
| `rangeStartTime` | string | 是 | 查询起始时间 |
| `rangeEndTime` | string | 是 | 查询结束时间 |
| `siteId` | int | 是 | 门店 ID |
| `isFirst` | int | 是 | 是否首充筛选。`0` = 全部 |
| `page` | int | 是 | 页码,从 1 开始 |
| `limit` | int | 是 | 每页条数,最大 100 |
---
## 三、响应结构
```
{
"code": 200,
"data": {
"list": [
{
"siteProfile": { ... },
"settleList": { ... }
}
],
"total": 74
}
}
```
每个 `list` 元素包含两个顶层对象:`siteProfile`(门店快照)和 `settleList`(充值结算记录本体)。`settleList` 内共 66 个业务字段,加上 `siteProfile` 的 26 个子字段,合计 92 个字段。按逻辑分组说明如下。
---
## 四、响应字段详解92 个字段)
### 4.1 门店信息快照siteProfile
`siteProfile` 为门店信息冗余快照,包含 26 个子字段,结构与其他接口(如台费流水、助教流水等)完全一致。所有记录的 `siteProfile` 内容相同。主要字段:
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `siteProfile.id` | int | `2790685415443269` | 门店 ID`settleList.siteId` 一致 |
| `siteProfile.org_id` | int | `2790684179467077` | 门店所属组织 ID |
| `siteProfile.shop_name` | string | `"朗朗桌球"` | 门店名称 |
| `siteProfile.avatar` | string | `"https://oss.ficoo.vip/..."` | 门店头像 URL |
| `siteProfile.business_tel` | string | `"13316068642"` | 门店电话 |
| `siteProfile.full_address` | string | `"广东省广州市天河区丽阳街12号"` | 完整地址 |
| `siteProfile.address` | string | `"广东省广州市天河区天园街道朗朗桌球"` | 精简地址 |
| `siteProfile.longitude` | float | `113.360321` | 经度 |
| `siteProfile.latitude` | float | `23.133629` | 纬度 |
| `siteProfile.tenant_site_region_id` | int | `156440100` | 行政区域编码 |
| `siteProfile.tenant_id` | int | `2790683160709957` | 租户 ID |
| `siteProfile.auto_light` | int | `1` | 是否自动控灯 |
| `siteProfile.attendance_distance` | int | `0` | 考勤打卡范围 |
| `siteProfile.wifi_name` | string | `""` | WiFi 名称 |
| `siteProfile.wifi_password` | string | `""` | WiFi 密码 |
| `siteProfile.customer_service_qrcode` | string | `""` | 客服二维码 |
| `siteProfile.customer_service_wechat` | string | `""` | 客服微信 |
| `siteProfile.fixed_pay_qrCode` | string | `""` | 固定收款码 |
| `siteProfile.prod_env` | int | `1` | 环境标志(`1` = 生产) |
| `siteProfile.light_status` | int | `1` | 灯控状态 |
| `siteProfile.light_type` | int | `0` | 灯控类型 |
| `siteProfile.site_type` | int | `1` | 门店类型 |
| `siteProfile.light_token` | string | `""` | 灯控对接凭证 |
| `siteProfile.site_label` | string | `"A"` | 门店标签 |
| `siteProfile.attendance_enabled` | int | `1` | 是否启用考勤 |
| `siteProfile.shop_status` | int | `1` | 门店营业状态(`1` = 营业中) |
---
以下字段均来自 `settleList` 内层对象。
### 4.2 主键与关联维度
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `id` | int | `3087072625102533` | 充值结算记录主键 ID |
| `tenantId` | int | `2790683160709957` | 租户/品牌 ID |
| `siteId` | int | `2790685415443269` | 门店 ID |
| `siteName` | string | `""` | 门店名称(当前为空,门店名在 `siteProfile.shop_name` 中) |
| `settleRelateId` | int | `3087072624987845` | 关联的结算单/业务单 ID与支付记录的 `relate_id` 呼应,用于跨表追踪 |
| `tableId` | int | `0` | 台桌 ID。充值场景不依附具体球台全部为 0 |
| `serialNumber` | int | `0` | 流水号/小票序号。当前未启用 |
### 4.3 结算类型与状态
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `settleType` | int | `5` | 结算类型枚举。`5` = 充值订单(正常充值);`7` = 充值撤销 |
| `settleName` | string | `"充值订单"` | 业务类型名称。`"充值订单"` 对应 `settleType = 5``"充值撤销"` 对应 `settleType = 7` |
| `settleStatus` | int | `2` | 结算状态。`2` = 已完成/已结算。当前导出仅包含已完成记录 |
| `canBeRevoked` | bool | `false` | 是否仍可撤销。当前全部为 `false`(时间窗已过) |
### 4.4 会员与会员卡
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `memberId` | int | `2799207363643141` | 会员档案主键 ID对应会员档案表的 `id` |
| `memberName` | string | `"葛先生"` | 会员名称/昵称快照(充值时的名字,后续改名不影响本记录) |
| `memberPhone` | string | `"13811638071"` | 会员手机号快照 |
| `tenantMemberCardId` | int | `2799216572794629` | 会员卡实例 ID具体某张卡的主键。同一张卡可有多条充值记录 |
| `memberCardTypeName` | string | `"储值卡"` | 会员卡类型名称。已知值:`"储值卡"`(绝大多数)、`"月卡"` |
| `isBindMember` | bool | `false` | 是否绑定会员。当前全部为 `false`,实际业务含义可能已变化 |
| `isFirst` | int | `2` | 是否首充标志。`1` = 首充11 条);`2` = 非首充63 条)。具体编码需参考系统字典 |
### 4.5 充值金额与退款
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `payAmount` | float | `10000.0` | 充值金额(元/人民币)。正数 = 实际充值额;负数 = 撤销/冲销额(对应 `settleType = 7` |
| `pointAmount` | float | `10000.0` | 计入会员账户的储值金额(元)。多数等于 `payAmount` 绝对值;充值撤销记录为 0 |
| `refundAmount` | float | `0.0` | 针对本条充值订单的退款金额(元)。非 0 时表示该充值已被退款,同时会有对应的 `settleType = 7` 撤销记录 |
| `consumeMoney` | float | `10000.0` | 总消费/充值金额(元)。在充值场景中与 `payAmount` 一致 |
### 4.6 资金来源拆分
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `balanceAmount` | float | `0.0` | 从账户余额支付的金额(元)。充值场景不适用 |
| `cardAmount` | float | `0.0` | 从储值卡/会员卡余额支付的金额(元)。充值场景不适用 |
| `cashAmount` | float | `0.0` | 现金收款金额(元)。少数记录有值(如 3000、5000 |
| `onlineAmount` | float | `0.0` | 线上支付金额(元)。当前未拆分渠道 |
| `couponAmount` | float | `0.0` | 用券支付的金额(元)。充值场景未使用 |
| `rechargeCardAmount` | int | `0` | 充值到卡上的金额。当前未单独拆出 |
| `giftCardAmount` | int | `0` | 赠送卡金额(如买 1000 送 100 的赠送部分)。当前未使用 |
| `prepayMoney` | float | `0.0` | 预付款/订金金额(元)。充值场景未使用 |
### 4.7 消费类金额(充值场景全部为 0
以下字段来自通用结算单模型,在充值场景下不适用,全部为 0.0
| 字段 | 类型 | 说明 |
|------|------|------|
| `tableChargeMoney` | float | 台费金额 |
| `goodsMoney` | float | 商品消费金额 |
| `realGoodsMoney` | float | 实际商品应计金额 |
| `serviceMoney` | float | 服务类项目金额 |
| `assistantPdMoney` | float | 助教配单金额 |
| `assistantCxMoney` | float | 助教促销/冲销金额 |
| `electricityMoney` | float | 电费金额 |
| `realElectricityMoney` | float | 实际电费金额 |
| `electricityAdjustMoney` | float | 电费调整金额 |
### 4.8 优惠与折扣(充值场景全部为 0
以下字段在充值场景下未使用,全部为 0.0 或 `false`
| 字段 | 类型 | 说明 |
|------|------|------|
| `activityDiscount` | float | 营销活动折扣金额 |
| `allCouponDiscount` | float | 各类优惠券综合折扣金额 |
| `goodsPromotionMoney` | float | 商品促销优惠金额 |
| `assistantPromotionMoney` | float | 助教促销优惠金额 |
| `assistantManualDiscount` | float | 助教手动减免金额 |
| `couponSaleAmount` | float | 出售券/套餐金额 |
| `plCouponSaleAmount` | float | 平台优惠券销售金额 |
| `merVouSalesAmount` | float | 商户代金券销售金额 |
| `memberDiscountAmount` | float | 会员折扣优惠金额 |
| `pointDiscountPrice` | float | 积分抵扣价差 |
| `pointDiscountCost` | float | 积分抵扣成本 |
| `adjustAmount` | float | 手工调整金额 |
| `roundingAmount` | float | 抹零金额 |
| `isActivity` | bool | 是否关联营销活动 |
| `isUseCoupon` | bool | 是否使用优惠券 |
| `isUseDiscount` | bool | 是否使用折扣 |
### 4.9 撤销相关
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `revokeOrderId` | int | `0` | 撤销相关订单 ID。部分记录有值指向被撤销的原始订单或撤销单 |
| `revokeOrderName` | string | `""` | 撤销单名称。当前未使用 |
| `revokeTime` | string | `"0001-01-01 00:00:00"` | 撤销生效时间。`0001-01-01` 为默认无效日期,表示未撤销 |
### 4.10 时间字段
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `createTime` | string | `"2026-02-09 05:12:42"` | 充值记录创建时间,一般即收银完成时间 |
| `payTime` | string | `"2026-02-09 05:12:42"` | 支付完成时间。与 `createTime` 通常非常接近或相同 |
### 4.11 操作员与营业员
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `operatorId` | int | `2790687322443013` | 操作该笔充值的收银员/员工 ID |
| `operatorName` | string | `"收银员:郑丽珊"` | 操作员姓名 |
| `salesManName` | string | `""` | 营业员/销售员姓名。充值记录未指定销售员 |
| `salesManUserId` | int | `0` | 营业员用户 ID。当前未使用 |
| `paymentMethod` | int | `4` | 支付方式枚举。已知值:`1``2``4`。具体映射需参考系统支付方式配置表 |
### 4.12 备注
| 字段 | 类型 | 示例 | 说明 |
|------|------|------|------|
| `orderRemark` | string | `""` | 充值单备注。当前未使用 |
---
## 五、响应样例(单条记录,精简版)
```json
{
"siteProfile": { "id": 2790685415443269, "shop_name": "朗朗桌球", "..." : "..." },
"settleList": {
"id": 3087072625102533,
"tenantId": 2790683160709957,
"siteId": 2790685415443269,
"siteName": "",
"memberId": 2799207363643141,
"memberName": "葛先生",
"memberPhone": "13811638071",
"tenantMemberCardId": 2799216572794629,
"memberCardTypeName": "储值卡",
"settleType": 5,
"settleName": "充值订单",
"settleStatus": 2,
"payAmount": 10000.0,
"pointAmount": 10000.0,
"refundAmount": 0.0,
"consumeMoney": 10000.0,
"paymentMethod": 4,
"operatorId": 2790687322443013,
"operatorName": "收银员:郑丽珊",
"createTime": "2026-02-09 05:12:42",
"payTime": "2026-02-09 05:12:42",
"settleRelateId": 3087072624987845,
"isFirst": 2,
"canBeRevoked": false,
"revokeOrderId": 0,
"revokeOrderName": "",
"revokeTime": "0001-01-01 00:00:00",
"balanceAmount": 0.0,
"cardAmount": 0.0,
"cashAmount": 0.0,
"onlineAmount": 0.0,
"couponAmount": 0.0,
"roundingAmount": 0.0,
"adjustAmount": 0.0,
"tableChargeMoney": 0.0,
"goodsMoney": 0.0,
"realGoodsMoney": 0.0,
"serviceMoney": 0.0,
"assistantPdMoney": 0.0,
"assistantCxMoney": 0.0,
"couponSaleAmount": 0.0,
"plCouponSaleAmount": 0.0,
"merVouSalesAmount": 0.0,
"memberDiscountAmount": 0.0,
"prepayMoney": 0.0,
"salesManName": "",
"salesManUserId": 0,
"orderRemark": "",
"pointDiscountPrice": 0.0,
"pointDiscountCost": 0.0,
"activityDiscount": 0.0,
"serialNumber": 0,
"assistantManualDiscount": 0.0,
"allCouponDiscount": 0.0,
"goodsPromotionMoney": 0.0,
"assistantPromotionMoney": 0.0,
"isUseCoupon": false,
"isUseDiscount": false,
"isActivity": false,
"isBindMember": false,
"tableId": 0,
"rechargeCardAmount": 0,
"giftCardAmount": 0,
"electricityMoney": 0.0,
"realElectricityMoney": 0.0,
"electricityAdjustMoney": 0.0
}
}
```
---
## 六、跨表关联
### 与会员档案
| 本表字段 | 关联表字段 | 说明 |
|----------|-----------|------|
| `memberId` | 会员档案 `id``tenant_member_id` | 会员主键 |
| `memberName` / `memberPhone` | 会员档案对应字段 | 快照值,充值时记录 |
### 与会员卡
`tenantMemberCardId` 对应会员卡表主键,标识充值到哪张具体的卡。`memberCardTypeName` 给出卡类型(储值卡、月卡等),充值记录同时向"会员主体"和"卡实例"两层维度挂钩。
### 与支付记录(`payment_transactions`
| 本表字段 | 关联表字段 | 说明 |
|----------|-----------|------|
| `settleRelateId` | `relate_id`(当 `relate_type = 5` | 充值业务单号 |
| `paymentMethod` | `payment_method` | 共用支付方式枚举 |
> 支付记录中 `relate_type = 5` 的记录对应充值类业务,通过 `settleRelateId` 关联。
### 与退款流水(`refund_transactions`
当充值被退款时,退款流水中 `relate_type = 5` 的记录通过 `relate_id` 关联到本表的充值业务。本表通过 `refundAmount > 0` 标记已退款,同时生成 `settleType = 7` 的充值撤销记录。
### 与其他结算类接口
本表复用通用"结算单"模型,字段结构(`goodsMoney``tableChargeMoney``serviceMoney`、折扣类字段等)与结账记录(`settlement_records`)完全一致。在同一系统中,台费结算、商品销售、助教结算、充值记录是同一张逻辑表的不同类型切片,通过 `settleType` 区分。
### 与门店维度
`siteId` 与所有业务表一致。`siteProfile` 为冗余快照。
<!--
AI_CHANGELOG:
- 日期: 2026-02-13
- Prompt: P20260213-183000 — 使用子代理并行处理剩余 API 文档重构
- 直接原因: 按标杆文档格式重写高质量 API 参考文档
- 变更摘要: 新建 docs/api-reference/recharge_settlements.md按逻辑分组详解所有字段含跨表关联
- 风险与验证: 纯文档,无运行时影响;验证方式:对比 endpoints/ 和 samples/ 确认字段覆盖完整
-->