初始提交:飞球 ETL 系统全量代码
This commit is contained in:
919
docs/api-reference/endpoints/settlement_records.md
Normal file
919
docs/api-reference/endpoints/settlement_records.md
Normal file
@@ -0,0 +1,919 @@
|
||||
# 结账记录(GetAllOrderSettleList)
|
||||
|
||||
> 自动生成于 2026-02-13 | 数据来源:实时 API
|
||||
|
||||
## 基本信息
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| 接口路径 | `Site/GetAllOrderSettleList` |
|
||||
| 完整 URL | `https://pc.ficoo.vip/apiprod/admin/v1/Site/GetAllOrderSettleList` |
|
||||
| 请求方法 | `POST` |
|
||||
| Content-Type | `application/json` |
|
||||
| 鉴权方式 | Bearer Token(`Authorization` 头) |
|
||||
| ODS 对应表 | `settlement_records` |
|
||||
| 分页方式 | `page` + `limit`(最大 100) |
|
||||
| 时间范围 | 需要(rangeStartTime / rangeEndTime) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 示例值 | 说明 |
|
||||
|--------|------|--------|------|
|
||||
| `settleType` | int | `0` | 结算类型(0=全部) |
|
||||
| `rangeStartTime` | string | `"2026-02-01 08:00:00"` | 查询起始时间 |
|
||||
| `rangeEndTime` | string | `"2026-02-13 08:00:00"` | 查询结束时间 |
|
||||
| `siteId` | int | `2790685415443269` | 门店 ID |
|
||||
| `siteTableAreaIdList` | array | `[]` | 台桌区域 ID 列表(空=全部) |
|
||||
| `page` | int | `1` | 页码(从 1 开始) |
|
||||
| `limit` | int | `100` | 每页条数(最大 100) |
|
||||
|
||||
## 响应字段(共 92 个)
|
||||
|
||||
| # | 字段名 | 类型 | 示例值 |
|
||||
|---|--------|------|--------|
|
||||
| 1 | `id` | int | 3092711340902597 |
|
||||
| 2 | `tenantId` | int | 2790683160709957 |
|
||||
| 3 | `siteId` | int | 2790685415443269 |
|
||||
| 4 | `siteName` | string | '朗朗桌球' |
|
||||
| 5 | `balanceAmount` | float | 4285.55 |
|
||||
| 6 | `cardAmount` | float | 0.0 |
|
||||
| 7 | `cashAmount` | float | 0.0 |
|
||||
| 8 | `couponAmount` | float | 0.0 |
|
||||
| 9 | `createTime` | string | '2026-02-13 04:48:42' |
|
||||
| 10 | `memberId` | int | 2799207522600709 |
|
||||
| 11 | `memberName` | string | '' |
|
||||
| 12 | `tenantMemberCardId` | int | 0 |
|
||||
| 13 | `memberCardTypeName` | string | '' |
|
||||
| 14 | `memberPhone` | string | '' |
|
||||
| 15 | `tableId` | int | 2956248279567557 |
|
||||
| 16 | `consumeMoney` | float | 5567.77 |
|
||||
| 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 | 0.0 |
|
||||
| 24 | `pointAmount` | float | 0.0 |
|
||||
| 25 | `refundAmount` | float | 0.0 |
|
||||
| 26 | `settleName` | string | '发财 发财' |
|
||||
| 27 | `settleRelateId` | int | 3092230766020741 |
|
||||
| 28 | `settleStatus` | int | 2 |
|
||||
| 29 | `settleType` | int | 1 |
|
||||
| 30 | `payTime` | string | '2026-02-13 04:49:48' |
|
||||
| 31 | `roundingAmount` | float | 0.0 |
|
||||
| 32 | `paymentMethod` | int | 0 |
|
||||
| 33 | `adjustAmount` | float | 1282.22 |
|
||||
| 34 | `assistantCxMoney` | float | 0.0 |
|
||||
| 35 | `assistantPdMoney` | float | 646.32 |
|
||||
| 36 | `couponSaleAmount` | float | 0.0 |
|
||||
| 37 | `plCouponSaleAmount` | float | 0.0 |
|
||||
| 38 | `merVouSalesAmount` | float | 0.0 |
|
||||
| 39 | `memberDiscountAmount` | float | 0.0 |
|
||||
| 40 | `tableChargeMoney` | float | 2564.45 |
|
||||
| 41 | `goodsMoney` | float | 2357.0 |
|
||||
| 42 | `realGoodsMoney` | float | 2357.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 | 0 |
|
||||
| 62 | `rechargeCardAmount` | float | 4285.55 |
|
||||
| 63 | `giftCardAmount` | int | 0 |
|
||||
| 64 | `electricityMoney` | float | 0.0 |
|
||||
| 65 | `realElectricityMoney` | float | 0.0 |
|
||||
| 66 | `electricityAdjustMoney` | float | 0.0 |
|
||||
| 67 | `siteProfile.id` | int | 0 |
|
||||
| 68 | `siteProfile.org_id` | int | 0 |
|
||||
| 69 | `siteProfile.shop_name` | string | '' |
|
||||
| 70 | `siteProfile.avatar` | string | '' |
|
||||
| 71 | `siteProfile.business_tel` | string | '' |
|
||||
| 72 | `siteProfile.full_address` | string | '' |
|
||||
| 73 | `siteProfile.address` | string | '' |
|
||||
| 74 | `siteProfile.longitude` | float | 0.0 |
|
||||
| 75 | `siteProfile.latitude` | float | 0.0 |
|
||||
| 76 | `siteProfile.tenant_site_region_id` | int | 0 |
|
||||
| 77 | `siteProfile.tenant_id` | int | 0 |
|
||||
| 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 | '' |
|
||||
| 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 |
|
||||
|
||||
## 详细字段分析
|
||||
|
||||
> 以下内容迁移自旧版 `settlement_records-Analysis.md`,包含字段的业务含义、枚举值、跨表关联等详细说明。
|
||||
|
||||
data.total
|
||||
|
||||
类型:int
|
||||
|
||||
含义:本次查询命中的结账记录总数,这里是 4739。
|
||||
|
||||
注意:每页只返回最多 100 条记录,total 是全量总数。
|
||||
|
||||
data.settleList
|
||||
|
||||
类型:数组
|
||||
|
||||
含义:当前页的结账记录列表。
|
||||
|
||||
每个元素结构为:
|
||||
|
||||
{
|
||||
"siteProfile": { ... },
|
||||
"settleList": { ...结账明细... }
|
||||
}
|
||||
|
||||
|
||||
即“门店快照 + 单条结账记录”组合。
|
||||
|
||||
2. 外层记录结构
|
||||
|
||||
每个 data.settleList 元素包含两个字段:
|
||||
|
||||
siteProfile
|
||||
|
||||
settleList(内层真正的结账明细对象)
|
||||
|
||||
2.1 siteProfile
|
||||
|
||||
类型:object
|
||||
|
||||
本文件中 siteProfile 字段结构与其他 JSON 一致,但内容多为 0 或空字符串:
|
||||
|
||||
id:门店 ID(这里为 0,说明该接口没有填充真实门店快照)。
|
||||
|
||||
org_id:组织 ID。
|
||||
|
||||
shop_name:店名,这里为空。
|
||||
|
||||
avatar:门店头像 URL。
|
||||
|
||||
business_tel:门店电话。
|
||||
|
||||
full_address / address:门店详细地址 / 简要地址。
|
||||
|
||||
longitude / latitude:经纬度。
|
||||
|
||||
tenant_site_region_id:地区编码。
|
||||
|
||||
tenant_id:租户 ID。
|
||||
|
||||
auto_light / light_status / light_type / light_token:灯控相关配置。
|
||||
|
||||
site_type:门店类型枚举。
|
||||
|
||||
site_label:门店标签。
|
||||
|
||||
attendance_enabled / attendance_distance:考勤开关及距离。
|
||||
|
||||
customer_service_qrcode / customer_service_wechat:客服信息。
|
||||
|
||||
fixed_pay_qrCode:固定收款码。
|
||||
|
||||
prod_env:环境标记。
|
||||
|
||||
shop_status:门店状态。
|
||||
|
||||
结构用途:
|
||||
字段设计上与其它文件相同,用作“门店维度快照”;但当前导出中几乎是空壳,真正的门店信息在结账记录的内层字段 siteId / siteName 以及其他 JSON 的门店档案里。
|
||||
|
||||
2.2 settleList(内层结算对象)
|
||||
|
||||
类型:object
|
||||
|
||||
含义:本次结账的一条汇总记录(整单维度),真正的业务字段都在这个对象里。
|
||||
|
||||
下文所有字段说明,都是针对这个内层 settleList。
|
||||
|
||||
二、内层结账记录字段逐个说明(共 61 个)
|
||||
|
||||
为便于理解,按维度分组说明。
|
||||
|
||||
1. 主键与关联 ID / 桌台信息
|
||||
|
||||
id
|
||||
|
||||
类型:int
|
||||
|
||||
示例:2957922914357125
|
||||
|
||||
含义:结账记录主键 ID(订单结算 ID)。
|
||||
|
||||
结构关联:
|
||||
|
||||
与台费流水(siteTableUseDetailsList)中的 order_settle_id 一致。
|
||||
|
||||
与小票详情(orderSettleId)一致。
|
||||
|
||||
即:这是全系统统一的“结账单号”。
|
||||
|
||||
tenantId
|
||||
|
||||
类型:int
|
||||
|
||||
示例:2790683160709957(全表固定)
|
||||
|
||||
含义:租户/商户 ID(品牌维度)。
|
||||
|
||||
siteId
|
||||
|
||||
类型:int
|
||||
|
||||
示例:2790685415443269(朗朗桌球)
|
||||
|
||||
含义:门店 ID。
|
||||
|
||||
关联:
|
||||
|
||||
与其他所有 JSON 中的 site_id 对应。
|
||||
|
||||
与门店档案中的 id 对应。
|
||||
|
||||
siteName
|
||||
|
||||
类型:string
|
||||
|
||||
示例:"朗朗桌球"
|
||||
|
||||
含义:门店名称,冗余展示字段。
|
||||
|
||||
tableId
|
||||
|
||||
类型:int
|
||||
|
||||
示例:2793003705192517
|
||||
|
||||
含义:本次结账对应的桌台 ID。
|
||||
|
||||
关联:
|
||||
|
||||
对应台桌维表或台费流水中的 site_table_id。
|
||||
|
||||
用于定位具体是哪张桌。
|
||||
|
||||
settleName
|
||||
|
||||
类型:string
|
||||
|
||||
示例:"A区 A17", "A区 A4"
|
||||
|
||||
含义:结账对象名称,一般是“区域 + 桌号”的组合。
|
||||
|
||||
结构关系:
|
||||
|
||||
与台费流水中的 site_table_area_name + ledger_name 一致(如 A区 + A17)。
|
||||
|
||||
便于报表和前端展示。
|
||||
|
||||
settleRelateId
|
||||
|
||||
类型:int
|
||||
|
||||
示例:2957858167230149
|
||||
|
||||
含义:关联订单的“交易号”(order_trade_no)。
|
||||
|
||||
结构关联:
|
||||
|
||||
与台费流水(order_trade_no)、助教流水(order_trade_no)中的该字段完全一致。
|
||||
|
||||
这一字段将“结账记录”与“各类明细表(台费、助教、商品等)”逻辑上串起来。
|
||||
|
||||
serialNumber
|
||||
|
||||
类型:int
|
||||
|
||||
示例:0(当前样本均为 0)
|
||||
|
||||
含义(推测):结账序列号 / 打印序号,用于内部排序或冲正追踪。
|
||||
|
||||
2. 时间与状态字段
|
||||
|
||||
createTime
|
||||
|
||||
类型:string(时间字符串)
|
||||
|
||||
格式:"YYYY-MM-DD HH:MM:SS"
|
||||
|
||||
示例:"2025-11-09 23:34:49"
|
||||
|
||||
含义:结账记录创建时间,一般对应收银端点“确认结账”的时间。
|
||||
|
||||
payTime
|
||||
|
||||
类型:string
|
||||
|
||||
示例:"2025-11-09 23:35:57"
|
||||
|
||||
含义:实际支付完成时间。通常晚于 createTime(比如多支付场景)。
|
||||
|
||||
settleStatus
|
||||
|
||||
类型:int(枚举)
|
||||
|
||||
当前样本:全部为 2
|
||||
|
||||
含义(推测):结账状态枚举。
|
||||
|
||||
2 很可能表示“已结算/已完成”。
|
||||
|
||||
其它枚举值(未出现在本数据中)可能为“待支付”、“已撤销”等。
|
||||
|
||||
settleType
|
||||
|
||||
类型:int(枚举)
|
||||
|
||||
当前样本值:1、3
|
||||
|
||||
含义(结构层面):
|
||||
|
||||
代表结账类型,比如:
|
||||
|
||||
1:正常结账;
|
||||
|
||||
3:特殊类型(例如挂账、补单、某类调整单)。
|
||||
|
||||
具体含义依赖系统配置,但可以确定这是“结账类型”的枚举字段。
|
||||
|
||||
canBeRevoked
|
||||
|
||||
类型:bool
|
||||
|
||||
当前样本:全部为 False
|
||||
|
||||
含义:是否允许被撤销/冲正。
|
||||
|
||||
True:当前结账记录仍可做撤销或冲正操作;
|
||||
|
||||
False:不能再撤销(例如已过撤销时限、已经被冲正)。
|
||||
|
||||
revokeOrderId
|
||||
|
||||
类型:int
|
||||
|
||||
当前样本:全为 0
|
||||
|
||||
含义:若当前记录是“被撤销的单”,则记录对应的“撤销单 ID”;或反过来记录“原单 ID”。
|
||||
|
||||
结构上:作为撤销关系的外键使用,目前样本中未出现实际撤销记录。
|
||||
|
||||
revokeOrderName
|
||||
|
||||
类型:string
|
||||
|
||||
当前样本:全为空字符串
|
||||
|
||||
含义:撤销单名称/标识,用于辅助说明撤销关系。
|
||||
|
||||
revokeTime
|
||||
|
||||
类型:string(时间)
|
||||
|
||||
当前样本:全为 "0001-01-01 00:00:00"(无效时间)
|
||||
|
||||
含义:撤销时间。当记录发生撤销时将写入真实时间,当前数据尚未出现此场景。
|
||||
|
||||
3. 会员维度字段
|
||||
|
||||
memberId
|
||||
|
||||
类型:int
|
||||
|
||||
示例:0 或 2799207363643141 等
|
||||
|
||||
含义:会员主键 ID。
|
||||
|
||||
结构关联:
|
||||
|
||||
与“会员卡列表(tenantMemberCards)”中的 tenant_member_id 一致。
|
||||
|
||||
即:这是“租户维度的会员卡 ID”。
|
||||
|
||||
memberName
|
||||
|
||||
类型:string
|
||||
|
||||
当前样本:均为空字符串
|
||||
|
||||
含义:会员姓名快照。
|
||||
|
||||
说明:当前导出中未填充,但结构上就是成员名称。
|
||||
|
||||
memberPhone
|
||||
|
||||
类型:string
|
||||
|
||||
当前样本:均为空
|
||||
|
||||
含义:会员手机号快照。
|
||||
|
||||
tenantMemberCardId
|
||||
|
||||
类型:int
|
||||
|
||||
当前样本:均为 0
|
||||
|
||||
含义(推测):会员卡账户 ID(与 memberId、会员卡表的 id 之间存在映射)。
|
||||
|
||||
当前导出未实际使用,但结构上预留了“结账记录 → 会员卡账户表”的外键。
|
||||
|
||||
memberCardTypeName
|
||||
|
||||
类型:string
|
||||
|
||||
当前样本:空
|
||||
|
||||
含义:会员卡类型名称,如“储值卡”“次卡”“活动抵用券”等。
|
||||
|
||||
对应会员卡表中的 member_card_type_name 字段。
|
||||
|
||||
isBindMember
|
||||
|
||||
类型:bool
|
||||
|
||||
当前样本:全部为 False
|
||||
|
||||
含义:本次结账是否绑定了会员。
|
||||
|
||||
True:本单关联会员(即 memberId > 0);
|
||||
|
||||
False:散客。
|
||||
|
||||
isFirst
|
||||
|
||||
类型:int(0/1 枚举的可能性较大)
|
||||
|
||||
当前样本:全部为 0
|
||||
|
||||
含义(推测):是否首单(新客首单)。
|
||||
|
||||
0:否;
|
||||
|
||||
1:是。
|
||||
当前导出中未出现首单记录,值全部为 0。
|
||||
|
||||
memberDiscountAmount
|
||||
|
||||
类型:float
|
||||
|
||||
当前样本:全部为 0.0
|
||||
|
||||
含义:会员折扣产生的优惠金额(元)。
|
||||
|
||||
虽然值全为 0,但结构上这是“会员折扣”维度的金额字段,后续可与其他优惠字段一起分层统计。
|
||||
|
||||
4. 消费构成(台费/商品/助教/服务)
|
||||
|
||||
这些字段是在“消费侧”拆解每一笔结账的构成(不涉及付款方式)。
|
||||
|
||||
consumeMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:58.0, 96.0, 362.82 等
|
||||
|
||||
含义:本次结账消费总额(不考虑支付方式/优惠结构的前后顺序,单纯汇总项目金额)。
|
||||
|
||||
结构关系(从金额结构角度):
|
||||
|
||||
近似可表示为:
|
||||
consumeMoney ≈ tableChargeMoney + goodsMoney + assistantPdMoney + assistantCxMoney + serviceMoney ± 各类调价/抹零
|
||||
这里不展开计算,只指出这是综合金额。
|
||||
|
||||
tableChargeMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:48.0, 96.0, 85.72 等
|
||||
|
||||
含义:台费(桌台计费部分)的金额。
|
||||
|
||||
goodsMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:10.0, 0.0, 8.0 等
|
||||
|
||||
含义:商品销售金额(原始商品金额)。
|
||||
|
||||
realGoodsMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:10.0, 0.0, 6.0 等
|
||||
|
||||
含义:商品实际计入金额(可能已扣除某些折扣、促销)。
|
||||
|
||||
结构上:realGoodsMoney 通常是 goodsMoney 调整后的结果。
|
||||
|
||||
assistantPdMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0, 206.67, 194.99 等
|
||||
|
||||
含义:助教“排钟/上课”应计金额(原价)。
|
||||
|
||||
结构关联:
|
||||
|
||||
与 助教流水.json 中对应订单的 ledger_amount 一致(应收金额)。
|
||||
|
||||
与该订单下所有助教明细合计后对齐。
|
||||
|
||||
assistantCxMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0, 1330.0, 2280.0
|
||||
|
||||
含义(推测):助教“次课/套餐/持续课”等另一类助教项目的金额。
|
||||
|
||||
从结构看,这是对助教收入的另一种拆分维度,和 assistantPdMoney 一起将助教项目区分为不同类型。
|
||||
|
||||
serviceMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:当前样本全为 0.0
|
||||
|
||||
含义:服务费/其他服务类收费金额,结构上单独列出一个维度,便于区分台费、商品、助教之外的服务收入。
|
||||
|
||||
5. 支付与资金构成(按渠道拆分)
|
||||
|
||||
这些字段描述“钱从哪来/怎么付”的分配,不是消费项目构成。
|
||||
|
||||
payAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:10.0, 58.0, 0.0 等
|
||||
|
||||
含义:本次结账“实付金额”(顾客实际支付的总金额),不包括券面值、积分等非现金部分。
|
||||
|
||||
cashAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0, 8.0 等
|
||||
|
||||
含义:现金支付部分金额。
|
||||
|
||||
cardAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0, 8.0, 14.0 等(样本中主要为 0)
|
||||
|
||||
含义(推测):非储值卡类的刷卡金额(例如信用卡/银行卡)。也可能是“会员卡支付”的一种编码方式,视系统定义而定。
|
||||
|
||||
balanceAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0, 120.0, 144.0 等
|
||||
|
||||
含义:从会员余额账户扣除的金额(储值卡余额消费)。
|
||||
|
||||
onlineAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0, 8.0, 352.0 等
|
||||
|
||||
含义:线上支付金额汇总(微信/支付宝/云闪付等通道的总和),具体通道细分不在本表中体现。
|
||||
|
||||
rechargeCardAmount
|
||||
|
||||
类型:float / int(大部分 0,少数为 float)
|
||||
|
||||
示例:0, 120.0, 114.61, 1194.0
|
||||
|
||||
含义(推测):与“充值卡”相关的支付额,可能表示本次使用充值卡抵扣的金额。
|
||||
|
||||
giftCardAmount
|
||||
|
||||
类型:float / int
|
||||
|
||||
示例:0, 41.0, 18.0, 500.0, 100.0
|
||||
|
||||
含义:礼品卡/代金卡的支付金额。
|
||||
|
||||
refundAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:目前样本中多为 0.0
|
||||
|
||||
含义:本次结账中涉及的退款金额(如果是退款单或部分退单,则为正数)。
|
||||
|
||||
prepayMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0
|
||||
|
||||
含义:预付金(定金)部分金额。用于记录提前预付在本单中使用的金额。
|
||||
|
||||
6. 优惠 / 折扣 / 活动等金额字段
|
||||
|
||||
couponAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:48.0, 96.0, 0.0 等
|
||||
|
||||
含义:本单实际由优惠券(代金券/团购券等)抵扣的金额。
|
||||
|
||||
couponSaleAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:当前样本为 0.0
|
||||
|
||||
含义(推测):优惠券本身的售卖金额/成本金额(比如顾客为购券支付的金额)。
|
||||
|
||||
allCouponDiscount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0
|
||||
|
||||
含义:归集所有券类优惠折扣的金额,作为汇总字段,便于统计“总券优惠”。
|
||||
|
||||
goodsPromotionMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:当前样本为 0.0
|
||||
|
||||
含义:商品促销产生的优惠金额(如买赠、满减分摊到商品部分)。
|
||||
|
||||
assistantPromotionMoney
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0
|
||||
|
||||
含义:助教项目参与活动或促销产生的优惠金额。
|
||||
|
||||
activityDiscount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0
|
||||
|
||||
含义:活动折扣金额(如整单打折、满减等归集)。
|
||||
|
||||
memberDiscountAmount
|
||||
|
||||
前文已提(会员维度),本质也是优惠金额字段,只是专属于会员折扣。
|
||||
|
||||
roundingAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0, 0.33, 0.01 等
|
||||
|
||||
含义:抹零金额/舍入差值。如四舍五入或按角、分抹零产生的调整。
|
||||
|
||||
adjustAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0, 148.15, 120.0, 38.34, 18.0 等
|
||||
|
||||
含义:人工调价金额(总和),包括整单减免、特殊调整等。
|
||||
|
||||
在某些记录中,该值较大,说明存在明显的人工改价行为,但这里不做业务解释,仅说明字段角色是“可调整浮动金额”。
|
||||
|
||||
assistantManualDiscount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:当前样本为 0.0
|
||||
|
||||
含义:专门针对助教服务进行的人工减免金额(区别于普通商品/台费的折扣)。
|
||||
|
||||
7. 积分相关字段
|
||||
|
||||
pointAmount
|
||||
|
||||
类型:float
|
||||
|
||||
示例:10.0, 215.0 等
|
||||
|
||||
含义(结构层面):
|
||||
|
||||
代表与积分相关的一个金额或数量指标。结合字段命名,可能有两种用途:
|
||||
|
||||
本单“获得的积分数量”;
|
||||
|
||||
本单“用积分抵扣了多少金额”。
|
||||
|
||||
具体业务含义需要结合系统配置,不在本次结构分析范围内。
|
||||
|
||||
pointDiscountPrice
|
||||
|
||||
类型:float
|
||||
|
||||
示例:当前样本为 0.0
|
||||
|
||||
含义:积分抵扣对应的金额(售价侧)。
|
||||
|
||||
pointDiscountCost
|
||||
|
||||
类型:float
|
||||
|
||||
示例:0.0
|
||||
|
||||
含义:积分抵扣对应的成本金额(成本侧)。
|
||||
|
||||
8. 布尔标志位(优惠/活动使用情况)
|
||||
|
||||
isUseCoupon
|
||||
|
||||
类型:bool
|
||||
|
||||
当前样本:全部 False
|
||||
|
||||
含义:本次结账是否使用了优惠券。
|
||||
|
||||
True:使用;
|
||||
|
||||
False:未使用。
|
||||
|
||||
isUseDiscount
|
||||
|
||||
类型:bool
|
||||
|
||||
当前样本:False
|
||||
|
||||
含义:是否使用了折扣(比如会员折扣、整单打折等)。
|
||||
|
||||
isActivity
|
||||
|
||||
类型:bool
|
||||
|
||||
当前样本:False
|
||||
|
||||
含义:是否参与了营销活动(活动价、满减活动等)。
|
||||
|
||||
9. 员工 / 操作相关字段
|
||||
|
||||
operatorId
|
||||
|
||||
类型:int
|
||||
|
||||
示例:2790687322443013
|
||||
|
||||
含义:结账操作员的用户 ID。
|
||||
|
||||
关联:可与员工/账号表中的 id 对应。
|
||||
|
||||
operatorName
|
||||
|
||||
类型:string
|
||||
|
||||
示例:"收银员:郑丽珊"
|
||||
|
||||
含义:结账操作员名称,包含角色前缀(如“收银员:”)。
|
||||
|
||||
salesManName
|
||||
|
||||
类型:string
|
||||
|
||||
当前样本:为空字符串
|
||||
|
||||
含义:营业员/业务员名称(用于提成或业绩归属)。
|
||||
|
||||
说明:样本中未单独设置营业员,字段留空。
|
||||
|
||||
salesManUserId
|
||||
|
||||
类型:int
|
||||
|
||||
当前样本:0
|
||||
|
||||
含义:营业员对应的用户 ID。
|
||||
|
||||
orderRemark
|
||||
|
||||
类型:string
|
||||
|
||||
当前样本:为空字符串
|
||||
|
||||
含义:订单备注,由收银员手工输入,记录特殊说明(例如“客人反映XX”、“活动赠送”等)。
|
||||
|
||||
三、字段级结构关系与重要线索(只谈结构,不做业务结论)
|
||||
|
||||
从字段结构和跨表关系来看,结账记录.json 在整个系统中的定位非常清晰,主要有以下关键点:
|
||||
|
||||
1. 结账记录是多张明细表的“汇总头”
|
||||
|
||||
关键外键映射关系已经非常明确:
|
||||
|
||||
结账.id = 台费流水的 order_settle_id = 助教流水的 order_settle_id = 小票详情的 orderSettleId
|
||||
→ 结账记录是这些明细表的“结算头表”。
|
||||
|
||||
结账.settleRelateId = 台费流水 / 助教流水 / 其他订单明细中的 order_trade_no
|
||||
→ 表示的是同一笔“交易号”,可跨不同业务明细汇总。
|
||||
|
||||
结论(结构层面):
|
||||
结账记录.json 是所有消费行为(台费、助教、商品、服务)在“订单维度”上的整合节点。
|
||||
|
||||
2. 桌台维度的绑定
|
||||
|
||||
tableId ↔ 台费流水的 site_table_id ↔ 台桌列表的 id
|
||||
|
||||
settleName 与台费流水中的 site_table_area_name + ledger_name 一致。
|
||||
结构上表明:“结账”是针对于具体某张桌和某个区域的。
|
||||
|
||||
3. 与助教流水的金额映射
|
||||
|
||||
对于含助教的结账记录:
|
||||
|
||||
assistantPdMoney = 对应订单下助教流水的 ledger_amount 汇总(原价侧金额)。
|
||||
|
||||
助教流水中的 projected_income 则是助教部分在核算侧的实际计入金额。
|
||||
在本表中不出现 projected_income,而是用一系列折扣、调价、券金额等字段从其他角度拆分。
|
||||
|
||||
结构层面:
|
||||
本表承担“按项目类型(台费/商品/助教/服务)+ 按优惠来源(券、活动、会员、抹零、调价…)”两个维度的汇总拆分。
|
||||
|
||||
4. 与会员卡 / 积分体系的连接点
|
||||
|
||||
memberId ↔ 会员卡 JSON (tenantMemberCards) 中的 tenant_member_id。
|
||||
|
||||
多个金额字段专门为会员卡和积分预留:
|
||||
|
||||
balanceAmount、rechargeCardAmount、giftCardAmount → 不同卡/余额类型的资金来源。
|
||||
|
||||
memberDiscountAmount、pointAmount、pointDiscountPrice、pointDiscountCost → 会员折扣与积分收益/抵扣的金额维度。
|
||||
|
||||
结构上,这说明:
|
||||
|
||||
结账记录不仅仅是“收了多少钱”,而是同时承载了“会员体系如何参与本单”的信息,且与会员卡与积分的专门表有外键可以联动。
|
||||
|
||||
5. 小票详情与结账记录的一对一关系
|
||||
|
||||
在“小票详情.json”(你那边是 orderSettleId + data 那个文件)中:
|
||||
|
||||
orderSettleId 与本表的 id 完全一致。
|
||||
|
||||
小票详情中也存在大量与本表同名字段(couponAmount、giftCardAmount、adjustAmount 等)。
|
||||
|
||||
结构层面:
|
||||
|
||||
结账记录.json 是一个“汇总视图”,字段较为精简。
|
||||
|
||||
“小票详情.json” 是更细粒度的结构(包含 orderItem 列表、配送信息、会员详情等)。
|
||||
|
||||
这意味着如果你要做字段级的数据模型,通常会把结账记录作为 fact 表的一部分,小票详情作为明细扩展。
|
||||
|
||||
6. 优惠维度设计的全面性
|
||||
|
||||
从字段命名可以看出系统在优惠维度上做了非常细的拆分:
|
||||
|
||||
按来源:会员折扣、活动折扣、商品促销、助教促销、券优惠、积分优惠、人工调价、抹零。
|
||||
|
||||
每一个维度都对应独立的金额字段(多为 float),并非简单的“总折扣”。
|
||||
|
||||
从纯结构角度,这个设计为后续做“多维折扣分析 / 审计 / 对账”提供了足够信息,但同时也增加了建模复杂度,需要在模型中清晰标注每个字段代表“折扣来源”还是“支付渠道”。
|
||||
Reference in New Issue
Block a user