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

875 lines
23 KiB
Markdown
Raw Permalink 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
> 自动生成于 2026-02-13 | 数据来源:实时 API
## 基本信息
| 属性 | 值 |
|------|-----|
| 接口路径 | `Site/GetRechargeSettleList` |
| 完整 URL | `https://pc.ficoo.vip/apiprod/admin/v1/Site/GetRechargeSettleList` |
| 请求方法 | `POST` |
| Content-Type | `application/json` |
| 鉴权方式 | Bearer Token`Authorization` 头) |
| ODS 对应表 | `recharge_settlements` |
| 分页方式 | `page` + `limit`(最大 100 |
| 时间范围 | 需要rangeStartTime / rangeEndTime |
## 请求参数
| 参数名 | 类型 | 示例值 | 说明 |
|--------|------|--------|------|
| `settleType` | int | `0` | 结算类型0=全部) |
| `paymentMethod` | int | `0` | 支付方式0=全部) |
| `rangeStartTime` | string | `"2026-02-01 08:00:00"` | 查询起始时间 |
| `rangeEndTime` | string | `"2026-02-13 08:00:00"` | 查询结束时间 |
| `siteId` | int | `2790685415443269` | 门店 ID |
| `isFirst` | int | `0` | 是否首充0=全部) |
| `page` | int | `1` | 页码(从 1 开始) |
| `limit` | int | `100` | 每页条数(最大 100 |
## 响应字段(共 92 个)
| # | 字段名 | 类型 | 示例值 |
|---|--------|------|--------|
| 1 | `id` | int | 3087072625102533 |
| 2 | `tenantId` | int | 2790683160709957 |
| 3 | `siteId` | int | 2790685415443269 |
| 4 | `siteName` | string | '' |
| 5 | `balanceAmount` | float | 0.0 |
| 6 | `cardAmount` | float | 0.0 |
| 7 | `cashAmount` | float | 0.0 |
| 8 | `couponAmount` | float | 0.0 |
| 9 | `createTime` | string | '2026-02-09 05:12:42' |
| 10 | `memberId` | int | 2799207363643141 |
| 11 | `memberName` | string | '葛先生' |
| 12 | `tenantMemberCardId` | int | 2799216572794629 |
| 13 | `memberCardTypeName` | string | '储值卡' |
| 14 | `memberPhone` | string | '13811638071' |
| 15 | `tableId` | int | 0 |
| 16 | `consumeMoney` | float | 10000.0 |
| 17 | `onlineAmount` | float | 0.0 |
| 18 | `operatorId` | int | 2790687322443013 |
| 19 | `operatorName` | string | '收银员:郑丽珊' |
| 20 | `revokeOrderId` | int | 0 |
| 21 | `revokeOrderName` | string | '' |
| 22 | `revokeTime` | string | '0001-01-01 00:00:00' |
| 23 | `payAmount` | float | 10000.0 |
| 24 | `pointAmount` | float | 10000.0 |
| 25 | `refundAmount` | float | 0.0 |
| 26 | `settleName` | string | '充值订单' |
| 27 | `settleRelateId` | int | 3087072624987845 |
| 28 | `settleStatus` | int | 2 |
| 29 | `settleType` | int | 5 |
| 30 | `payTime` | string | '2026-02-09 05:12:42' |
| 31 | `roundingAmount` | float | 0.0 |
| 32 | `paymentMethod` | int | 4 |
| 33 | `adjustAmount` | float | 0.0 |
| 34 | `assistantCxMoney` | float | 0.0 |
| 35 | `assistantPdMoney` | float | 0.0 |
| 36 | `couponSaleAmount` | float | 0.0 |
| 37 | `plCouponSaleAmount` | float | 0.0 |
| 38 | `merVouSalesAmount` | float | 0.0 |
| 39 | `memberDiscountAmount` | float | 0.0 |
| 40 | `tableChargeMoney` | float | 0.0 |
| 41 | `goodsMoney` | float | 0.0 |
| 42 | `realGoodsMoney` | float | 0.0 |
| 43 | `serviceMoney` | float | 0.0 |
| 44 | `prepayMoney` | float | 0.0 |
| 45 | `salesManName` | string | '' |
| 46 | `orderRemark` | string | '' |
| 47 | `salesManUserId` | int | 0 |
| 48 | `canBeRevoked` | bool | False |
| 49 | `pointDiscountPrice` | float | 0.0 |
| 50 | `pointDiscountCost` | float | 0.0 |
| 51 | `activityDiscount` | float | 0.0 |
| 52 | `serialNumber` | int | 0 |
| 53 | `assistantManualDiscount` | float | 0.0 |
| 54 | `allCouponDiscount` | float | 0.0 |
| 55 | `goodsPromotionMoney` | float | 0.0 |
| 56 | `assistantPromotionMoney` | float | 0.0 |
| 57 | `isUseCoupon` | bool | False |
| 58 | `isUseDiscount` | bool | False |
| 59 | `isActivity` | bool | False |
| 60 | `isBindMember` | bool | False |
| 61 | `isFirst` | int | 2 |
| 62 | `rechargeCardAmount` | int | 0 |
| 63 | `giftCardAmount` | int | 0 |
| 64 | `electricityMoney` | float | 0.0 |
| 65 | `realElectricityMoney` | float | 0.0 |
| 66 | `electricityAdjustMoney` | float | 0.0 |
| 67 | `siteProfile.id` | int | 2790685415443269 |
| 68 | `siteProfile.org_id` | int | 2790684179467077 |
| 69 | `siteProfile.shop_name` | string | '朗朗桌球' |
| 70 | `siteProfile.avatar` | string | 'https://oss.ficoo.vip/admin/hXcE4E_1752495052016.jpg' |
| 71 | `siteProfile.business_tel` | string | '13316068642' |
| 72 | `siteProfile.full_address` | string | '广东省广州市天河区丽阳街12号' |
| 73 | `siteProfile.address` | string | '广东省广州市天河区天园街道朗朗桌球' |
| 74 | `siteProfile.longitude` | float | 113.360321 |
| 75 | `siteProfile.latitude` | float | 23.133629 |
| 76 | `siteProfile.tenant_site_region_id` | int | 156440100 |
| 77 | `siteProfile.tenant_id` | int | 2790683160709957 |
| 78 | `siteProfile.auto_light` | int | 1 |
| 79 | `siteProfile.attendance_distance` | int | 0 |
| 80 | `siteProfile.wifi_name` | string | '' |
| 81 | `siteProfile.wifi_password` | string | '' |
| 82 | `siteProfile.customer_service_qrcode` | string | '' |
| 83 | `siteProfile.customer_service_wechat` | string | '' |
| 84 | `siteProfile.fixed_pay_qrCode` | string | '' |
| 85 | `siteProfile.prod_env` | int | 1 |
| 86 | `siteProfile.light_status` | int | 1 |
| 87 | `siteProfile.light_type` | int | 0 |
| 88 | `siteProfile.site_type` | int | 1 |
| 89 | `siteProfile.light_token` | string | '' |
| 90 | `siteProfile.site_label` | string | 'A' |
| 91 | `siteProfile.attendance_enabled` | int | 1 |
| 92 | `siteProfile.shop_status` | int | 1 |
## 新增字段(相对本地 JSON 样本)
以下字段在最新 API 响应中出现,但本地 JSON 样本中不存在:
| 字段名 | 类型 |
|--------|------|
| `electricityAdjustMoney` | float |
| `electricityMoney` | float |
| `merVouSalesAmount` | float |
| `plCouponSaleAmount` | float |
| `realElectricityMoney` | float |
## 详细字段分析
> 以下内容迁移自旧版 `recharge_settlements-Analysis.md`,包含字段的业务含义、枚举值、跨表关联等详细说明。
二、siteProfile门店维度快照
每条记录都带一个相同的 siteProfile表示当前门店信息。字段含义与之前文件中的 siteProfile 一致:
id
类型int
含义:门店 ID。
与各 JSON 中的 site_id 一致。
org_id
类型int
含义:门店所属组织 ID类似“门店所在公司/组织”)。
shop_name
类型string
示例:"朗朗桌球"
含义:门店名称。
avatar
类型string
含义:门店头像图片 URL。
business_tel
类型string
含义:门店电话。
full_address
类型string
含义:完整门店地址。
address
类型string
含义:精简地址/展示用地址。
longitude / latitude
类型float
含义:门店经纬度。
tenant_site_region_id
类型int
含义:门店所属行政区域编码(内部编码)。
tenant_id
类型int
含义:租户/品牌 ID对应所有表里的 tenantId 或 tenant_id。
auto_light / light_status / light_type / light_token
类型int / string
含义:门店灯控相关配置(是否智能控灯、灯控类型、对接凭证等)。
attendance_distance / attendance_enabled
类型int / int
含义:考勤打卡相关配置(打卡有效范围、是否启用考勤)。
wifi_name / wifi_password
类型string
含义:门店 WiFi 信息(当前为空)。
customer_service_qrcode / customer_service_wechat
类型string
含义:客服二维码 / 客服微信。
fixed_pay_qrCode
类型string
含义:固定收款码图片 URL。
prod_env
类型int
含义环境标志1=线上环境,非测试)。
site_type
类型int
含义:门店类型(枚举,当前为 1
site_label
类型string
示例:"A"
含义:门店标签/分组标签。
shop_status
类型int
含义:门店营业状态(枚举,当前为 1=营业中)。
以上字段在本文件中值基本固定,仅起到“门店快照”作用。
三、内层 settleList单条充值结算记录字段说明
以下所有字段均来自内层 settleList即每条充值记录
为便于阅读,按“主键与关联”、“会员与卡”、“金额相关”、“优惠相关”、“状态与类型”、“时间字段”、“操作人与渠道”等分组说明。
1. 主键与关联维度字段
id
类型int
含义:本条充值结算记录的主键 ID唯一标识一条充值/撤销记录)。
唯一性74 条记录全部不同。
tenantId
类型int
当前值:同一租户 ID。
含义:租户/品牌 ID和 siteProfile.tenant_id 一致。
siteId
类型int
当前值:同一门店 ID。
含义:门店 ID和 siteProfile.id 一致。
siteName
类型string
当前值:"朗朗桌球"
含义:门店名称,与 siteProfile.shop_name 一致。
tableId
类型int
当前值:全部为 0。
含义(从命名看):原本用于关联台桌 ID。
在充值场景中未使用(全部为 0可理解为“充值记录不依附具体球台”。
serialNumber
类型int
当前值:全部为 0。
含义(推测):流水号/小票序号字段;本门店当前未启用或未写入。
settleRelateId
类型int
唯一值74 条记录全部不同。
含义(推测):关联的“结算单/业务单”ID。
根据命名,极可能等于“充值订单主表”的主键,或与支付记录里的 relate_id 相呼应,用于跨表追踪。
settleType
类型int枚举
取值及含义(由数据反推):
5settleName = "充值订单"(正常充值)
7settleName = "充值撤销"(充值撤销记录)
说明:这一枚举区分了充值 vs 撤销两类业务动作。
settleName
类型string
枚举值:
"充值订单":对应 settleType = 5
"充值撤销":对应 settleType = 7
含义:业务类型名称,用于前端展示。
settleStatus
类型int枚举
当前值:全部为 2
含义(推测):
2已完成/已结算。
说明:本次导出只保留了完成状态的充值/撤销记录,未包含未完成或待支付状态。
revokeOrderId
类型int
值分布:
对多数正常充值记录:为对应的撤销单 ID 组成的某种映射(部分为 0部分为某 ID
对撤销记录本身,一般也会有对应关系,用来指向被撤销的原始订单。
含义(推测):与撤销相关的订单 ID原订单或撤销单的指针
revokeOrderName
类型string
当前值:全部为空字符串。
含义:撤销单名称/说明,当前未使用。
revokeTime
类型string时间
当前值:全部为 ""(空字符串)。
含义:撤销发生时间。
实际撤销信息现在通过 “充值订单 + 退款金额 + 充值撤销记录” 来体现,该字段未真正使用。
从结构看,这个“充值记录”表沿用了通用“结算单”的模型,预留了多种业务场景字段(包括撤销相关的信息),但本门店实际使用方式是:
原始充值记录 settleType = 5, settleName = "充值订单"payAmount > 0。
对应的退款信息通过 refundAmount 或单独的 settleType = 7 记录负数金额体现revoke* 字段目前保持空/0。
2. 会员与会员卡相关字段
memberId
类型int
含义:会员档案的主键 ID。
关联:
对应“会员档案.json”中 tenantMemberInfos 的 id 字段(部分成员能直接匹配)。
用途:标识给哪位会员充值。
memberName
类型string
值示例:"轩哥", "羊", "夏", 以及一些手机号字符串。
含义:会员名称/昵称快照。
说明:此处记录的是当时会员名字,后续会员改名时,本记录不变(快照字段)。
memberPhone
类型string
含义:会员手机号快照,用于查找和展示。
memberCardTypeName
类型string枚举
当前值:
"储值卡" 占绝大多数
"月卡" 仅 1 条(对应一次月卡充值)
含义:本次充值针对的会员卡类型名称。
tenantMemberCardId
类型int
含义:会员卡实例 ID某张具体卡
说明:
多个充值记录可能对应同一张卡(同一个 ID 多次出现)。
这类 ID 通常对应“会员卡表”的主键(本次导出中该表未单独出现)。
isBindMember
类型bool
当前值:全部为 False
含义(结合命名推测):是否绑定为会员(或是否有绑定的推荐人/员工等)。
但由于本数据中所有充值都有 memberId而 isBindMember 全为 False实际业务含义可能已经变化或未使用需以系统配置为准。
isFirst
类型int枚举
当前值1 或 2
1 出现 11 次
2 出现 63 次
命名上很明显是“是否首次”的含义,但从现有数据看,同一会员有时只有 2说明缺失了更早的记录或编码含义稍有偏差。
建议:业务解释上视为“是否首单/首充”的标志,但具体 1/2 对应什么角色需要系统字典确认。
3. 金额相关字段(充值金额结构,不做盈利分析)
这一部分是本表的核心。
所有金额类型统一为 float单位为“元”。
3.1 充值总额与退款
payAmount
含义:本次记录对应的充值金额(含正负)。
特点:
正数实际充值金额1000, 3000, 5000, 10000, 44000 等)。
负数:撤销或冲销金额(-3000, -5000, -10000, -44000 等)。
与 settleType 的关系:
"充值订单"settleType=5绝大多数为正值少数被退款的记录仍为正值但 refundAmount>0。
"充值撤销"settleType=7金额为负值。
refundAmount
含义:针对本条充值订单所做的退款金额(通常为正数)。
分布:
大部分记录为 0。
少数记录为 10000、5000、44000、3000 等,与对应的 payAmount 完全相等。
配合观察:
有一条 "充值订单" 记录 payAmount=10000同时 refundAmount=10000。
对应存在一条 "充值撤销" 记录payAmount=-10000refundAmount=0。
结构含义:
原始充值单通过 refundAmount 标记“已被退款”,
同时生成对应的 "充值撤销" 负值记录作为记账流水。
3.2 资金来源 / 支付渠道拆分(本数据中未细分)
balanceAmount
当前值:全部为 0。
命名含义:从“账户余额”支付的金额(在充值场景中不适用,因此为 0
cardAmount
当前值:全部为 0。
命名含义:从某种“储值卡 / 会员卡余额”为消费来源的金额(本表为充值,不是消费,暂未使用)。
cashAmount
当前值:极少数记录为 3000、5000其余为 0。
含义:现金收款金额。
onlineAmount
当前值:全部为 0。
命名含义:线上支付金额(微信/支付宝等),当前门店这段时间的充值可能按统一支付方式计入 payAmount而没有拆渠道。
couponAmount
当前值:全部为 0。
含义:用券直接支付的金额(例如储值券),在本充值场景中未使用。
3.3 积分、到账金额类
pointAmount
含义(结合取值关系推断):计入会员账户的“储值金额”或“积分型金额”。
特征:
多数情况下等于 payAmount 的绝对值。
对于被完全撤销的场景:
"充值订单"payAmount>0pointAmount 仍为正值;
"充值撤销":相应记录 pointAmount=0。
因此 pointAmount 更像是“本条生效后,卡上增加的金额”,而撤销记录不再增加金额。
rechargeCardAmount
当前值:全部为 0。
命名含义:充值到卡上的金额(可能用于区分“余额型卡充值额”和“赠送/积分”等),当前没有单独拆出。
giftCardAmount
当前值:全部为 0。
含义(推测):赠送卡金额(如买 1000 送 100 的 100 部分)。
prepayMoney
当前值:全部为 0。
命名含义:预付款金额(如订金)。本门店充值没有使用该维度。
3.4 消费相关金额(在充值场景中为 0
以下字段在通用结算模型中用于“商品/台费/服务”消费金额,本表为纯充值场景,因此全部为 0仅列明用途
consumeMoney
当前值0
含义:总消费金额(消费类订单使用)。
goodsMoney
当前值0
含义:商品消费金额。
realGoodsMoney
当前值0
含义:实际商品应计金额(可能扣除折扣后的商品金额)。
tableChargeMoney
当前值0
含义:台费金额。
serviceMoney
当前值0
含义:服务类项目金额(例如助教、其他服务)。
4. 优惠、折扣、活动相关字段(当前数据几乎全 0
这些字段是通用结算模型中用于记录活动优惠、商品促销、助教促销等的金额,在本充值场景下本店未用到,全部为 0.0
activityDiscount
含义:营销活动折扣金额。
allCouponDiscount
含义:各类优惠券、团购券综合折扣金额。
goodsPromotionMoney
含义:商品促销优惠金额。
assistantPromotionMoney
含义:助教相关促销优惠金额。
assistantPdMoney
含义:助教配单金额/相关费用。
assistantCxMoney
含义:助教促销或冲销相关金额。
assistantManualDiscount
含义:助教手动减免金额。
couponSaleAmount
含义:出售券/套餐的金额(与消费类订单相关)。
memberDiscountAmount
含义:因会员折扣产生的优惠金额。
pointDiscountPrice / pointDiscountCost
含义:积分抵扣产生的价差/成本。
adjustAmount
含义:结算时手工调整金额(四舍五入以外的修正)。
roundingAmount
含义:抹零金额(尾数四舍五入处理产生的差额)。
以上字段设计说明:
充值记录数据结构复用了“结算单”的全量字段,实际场景仅使用了“充值金额、退款金额、积分/储值增加等”少数字段,其余优惠/活动相关字段在当前时间段为全 0。
5. 状态与标志字段
isActivity
类型bool
当前值:全部为 False
含义:是否关联某个营销活动(如充值满送活动)。
当前为 False说明这段时间的充值没有绑定系统内的“活动对象”。
isUseCoupon
类型bool
当前值:全部为 False
含义:本次结算是否使用优惠券。充值未用券。
isUseDiscount
类型bool
当前值:全部为 False
含义:是否使用了折扣(例如会员打折)。
充值一般是面值入账,因此为 False。
canBeRevoked
类型bool
当前值:全部为 False
含义:是否仍可进行撤销操作。
当前导出时,这 74 条记录均不可再撤销(可能是时间窗已过)。
settleStatus
已在上文说明,全部为 2已完成
6. 时间字段
createTime
类型string时间
含义:充值记录创建时间,一般即收银完成时间。
用途:作为时间轴排序和统计依据。
payTime
类型string时间
含义:支付完成时间。
特点在当前数据中createTime 与 payTime 通常非常接近或相同。
revokeTime
类型string
当前值:全部为空。
含义:撤销生效时间,当前未使用。
7. 操作员 / 营业员 / 支付方式字段
operatorId
类型int
含义:操作该笔充值的收银员/员工 ID。
operatorName
类型string
含义:操作员姓名,与 operatorId 对应,便于直接阅读。
salesManName
类型string
当前值:全部为空字符串。
含义:营业员/销售员姓名(与提成相关的角色)。充值记录未单独指定销售员。
salesManUserId
类型int
当前值:全部为 0。
含义:营业员用户 ID。
paymentMethod
类型int枚举
取值1, 2, 4 三种。
含义:支付方式编码。
具体编码→支付渠道的映射(如现金/微信/支付宝/银行卡等)需要参考系统内部“支付方式字典”;
从数据分布看:
大部分充值记录使用 4少数是 1、2实际渠道应为某几种常用支付方式。
8. 备注字段
orderRemark
类型string
当前值:全部为空字符串。
含义:充值单备注,例如手工说明,当前未使用。
四、结构关系与设计线索(不做金额/盈利分析)
从字段结构角度,可以看出以下几点重要信息:
通用“结算单模型”的复用
大量字段(商品金额、台费金额、助教金额、活动优惠、积分抵扣等)在本表都为 0仅充值相关字段有值。
说明“充值记录”不是单独设计的表,而是基于统一的“结算单/收银单结构”,通过 settleType 区分不同业务类型(台费、商品、助教、充值等)。
这也意味着:
在同一套系统中,“台费结算”“商品销售”“助教结算”“充值记录”等 JSON很可能都是同一张逻辑表不同类型的切片。
充值与撤销通过两种机制共同表达
settleType + settleName 用于区分“充值订单”与“充值撤销”。
退款信息通过两种方式表现:
原始充值单上 refundAmount > 0
单独的 "充值撤销" 记录payAmount 为负数。
这说明系统在设计上既保留了原始订单的“退款标签”,又通过负数流水记录真实冲销过程,方便对账和追溯。
会员 ID 与会员卡 ID 的关系
memberId 对应“会员档案.json”中 tenantMemberInfos.id即某个会员主体
tenantMemberCardId 对应的是具体某一张卡的 ID你这批数据没有单独的“会员卡表”但是从命名与取值分布可以看出来它比 memberId 更细一层)。
memberCardTypeName 给出了卡类型(储值卡、月卡等),说明充值记录同时向“会员主体”和“卡实例”两层维度挂钩。
表内未使用但预留的业务扩展点
activityDiscount、isActivity、isUseCoupon、allCouponDiscount 等字段在当前数据中全部为 0/False但结构上已经为“充值参与活动”“充值优惠券”“充值满送”等预留了入口。
goodsMoney、serviceMoney、tableChargeMoney 全为 0说明这张结算结构可以在别的业务场景被复用为综合结算充值 + 消费),本门店当前的充值使用方式非常简单。
门店维度的一致性
siteId / siteName 与 siteProfile.id / siteProfile.shop_name 完全一致,且所有记录都属于同一个门店。
说明该文件仅包含这一家门店的充值流水,和你给的信息“所有数据均来自同一门店”一致。
与其他 JSON 的关联线索(仅从字段命名角度)
与会员档案的关联:
memberId ↔ “会员档案.json” tenantMemberInfos.id
memberName / memberPhone 则是当时的快照。
与支付记录的潜在关联:
settleRelateId 加上 paymentMethod典型用法是在“支付记录”表中通过 relate_type=充值 + relate_id=settleRelateId 进行关联。
与其他结算类 JSON 的一致性:
字段命名和结构goodsMoney, tableChargeMoney, serviceMoney, 折扣类字段)的完整复用,说明“台费结算”“商品销售”“助教流水”“充值记录”几类 JSON是同一个结算域模型的不同“视图”或筛选条件。