初始提交:飞球 ETL 系统全量代码
This commit is contained in:
874
docs/api-reference/endpoints/recharge_settlements.md
Normal file
874
docs/api-reference/endpoints/recharge_settlements.md
Normal file
@@ -0,0 +1,874 @@
|
||||
# 充值结算记录(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(枚举)
|
||||
|
||||
取值及含义(由数据反推):
|
||||
|
||||
5:settleName = "充值订单"(正常充值)
|
||||
|
||||
7:settleName = "充值撤销"(充值撤销记录)
|
||||
|
||||
说明:这一枚举区分了充值 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=-10000,refundAmount=0。
|
||||
|
||||
结构含义:
|
||||
|
||||
原始充值单通过 refundAmount 标记“已被退款”,
|
||||
|
||||
同时生成对应的 "充值撤销" 负值记录作为记账流水。
|
||||
|
||||
3.2 资金来源 / 支付渠道拆分(本数据中未细分)
|
||||
|
||||
balanceAmount
|
||||
|
||||
当前值:全部为 0。
|
||||
|
||||
命名含义:从“账户余额”支付的金额(在充值场景中不适用,因此为 0)。
|
||||
|
||||
cardAmount
|
||||
|
||||
当前值:全部为 0。
|
||||
|
||||
命名含义:从某种“储值卡 / 会员卡余额”为消费来源的金额(本表为充值,不是消费,暂未使用)。
|
||||
|
||||
cashAmount
|
||||
|
||||
当前值:极少数记录为 3000、5000,其余为 0。
|
||||
|
||||
含义:现金收款金额。
|
||||
|
||||
onlineAmount
|
||||
|
||||
当前值:全部为 0。
|
||||
|
||||
命名含义:线上支付金额(微信/支付宝等),当前门店这段时间的充值可能按统一支付方式计入 payAmount,而没有拆渠道。
|
||||
|
||||
couponAmount
|
||||
|
||||
当前值:全部为 0。
|
||||
|
||||
含义:用券直接支付的金额(例如储值券),在本充值场景中未使用。
|
||||
|
||||
3.3 积分、到账金额类
|
||||
|
||||
pointAmount
|
||||
|
||||
含义(结合取值关系推断):计入会员账户的“储值金额”或“积分型金额”。
|
||||
|
||||
特征:
|
||||
|
||||
多数情况下等于 payAmount 的绝对值。
|
||||
|
||||
对于被完全撤销的场景:
|
||||
|
||||
"充值订单":payAmount>0,pointAmount 仍为正值;
|
||||
|
||||
"充值撤销":相应记录 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,是同一个结算域模型的不同“视图”或筛选条件。
|
||||
Reference in New Issue
Block a user