23 KiB
结账记录(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": { ...结账明细... } }
即“门店快照 + 单条结账记录”组合。
- 外层记录结构
每个 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 个)
为便于理解,按维度分组说明。
- 主键与关联 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)
含义(推测):结账序列号 / 打印序号,用于内部排序或冲正追踪。
- 时间与状态字段
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"(无效时间)
含义:撤销时间。当记录发生撤销时将写入真实时间,当前数据尚未出现此场景。
- 会员维度字段
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,但结构上这是“会员折扣”维度的金额字段,后续可与其他优惠字段一起分层统计。
- 消费构成(台费/商品/助教/服务)
这些字段是在“消费侧”拆解每一笔结账的构成(不涉及付款方式)。
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
含义:服务费/其他服务类收费金额,结构上单独列出一个维度,便于区分台费、商品、助教之外的服务收入。
- 支付与资金构成(按渠道拆分)
这些字段描述“钱从哪来/怎么付”的分配,不是消费项目构成。
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
含义:预付金(定金)部分金额。用于记录提前预付在本单中使用的金额。
- 优惠 / 折扣 / 活动等金额字段
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
含义:专门针对助教服务进行的人工减免金额(区别于普通商品/台费的折扣)。
- 积分相关字段
pointAmount
类型:float
示例:10.0, 215.0 等
含义(结构层面):
代表与积分相关的一个金额或数量指标。结合字段命名,可能有两种用途:
本单“获得的积分数量”;
本单“用积分抵扣了多少金额”。
具体业务含义需要结合系统配置,不在本次结构分析范围内。
pointDiscountPrice
类型:float
示例:当前样本为 0.0
含义:积分抵扣对应的金额(售价侧)。
pointDiscountCost
类型:float
示例:0.0
含义:积分抵扣对应的成本金额(成本侧)。
- 布尔标志位(优惠/活动使用情况)
isUseCoupon
类型:bool
当前样本:全部 False
含义:本次结账是否使用了优惠券。
True:使用;
False:未使用。
isUseDiscount
类型:bool
当前样本:False
含义:是否使用了折扣(比如会员折扣、整单打折等)。
isActivity
类型:bool
当前样本:False
含义:是否参与了营销活动(活动价、满减活动等)。
- 员工 / 操作相关字段
operatorId
类型:int
示例:2790687322443013
含义:结账操作员的用户 ID。
关联:可与员工/账号表中的 id 对应。
operatorName
类型:string
示例:"收银员:郑丽珊"
含义:结账操作员名称,包含角色前缀(如“收银员:”)。
salesManName
类型:string
当前样本:为空字符串
含义:营业员/业务员名称(用于提成或业绩归属)。
说明:样本中未单独设置营业员,字段留空。
salesManUserId
类型:int
当前样本:0
含义:营业员对应的用户 ID。
orderRemark
类型:string
当前样本:为空字符串
含义:订单备注,由收银员手工输入,记录特殊说明(例如“客人反映XX”、“活动赠送”等)。
三、字段级结构关系与重要线索(只谈结构,不做业务结论)
从字段结构和跨表关系来看,结账记录.json 在整个系统中的定位非常清晰,主要有以下关键点:
- 结账记录是多张明细表的“汇总头”
关键外键映射关系已经非常明确:
结账.id = 台费流水的 order_settle_id = 助教流水的 order_settle_id = 小票详情的 orderSettleId → 结账记录是这些明细表的“结算头表”。
结账.settleRelateId = 台费流水 / 助教流水 / 其他订单明细中的 order_trade_no → 表示的是同一笔“交易号”,可跨不同业务明细汇总。
结论(结构层面): 结账记录.json 是所有消费行为(台费、助教、商品、服务)在“订单维度”上的整合节点。
- 桌台维度的绑定
tableId ↔ 台费流水的 site_table_id ↔ 台桌列表的 id
settleName 与台费流水中的 site_table_area_name + ledger_name 一致。 结构上表明:“结账”是针对于具体某张桌和某个区域的。
- 与助教流水的金额映射
对于含助教的结账记录:
assistantPdMoney = 对应订单下助教流水的 ledger_amount 汇总(原价侧金额)。
助教流水中的 projected_income 则是助教部分在核算侧的实际计入金额。 在本表中不出现 projected_income,而是用一系列折扣、调价、券金额等字段从其他角度拆分。
结构层面: 本表承担“按项目类型(台费/商品/助教/服务)+ 按优惠来源(券、活动、会员、抹零、调价…)”两个维度的汇总拆分。
- 与会员卡 / 积分体系的连接点
memberId ↔ 会员卡 JSON (tenantMemberCards) 中的 tenant_member_id。
多个金额字段专门为会员卡和积分预留:
balanceAmount、rechargeCardAmount、giftCardAmount → 不同卡/余额类型的资金来源。
memberDiscountAmount、pointAmount、pointDiscountPrice、pointDiscountCost → 会员折扣与积分收益/抵扣的金额维度。
结构上,这说明:
结账记录不仅仅是“收了多少钱”,而是同时承载了“会员体系如何参与本单”的信息,且与会员卡与积分的专门表有外键可以联动。
- 小票详情与结账记录的一对一关系
在“小票详情.json”(你那边是 orderSettleId + data 那个文件)中:
orderSettleId 与本表的 id 完全一致。
小票详情中也存在大量与本表同名字段(couponAmount、giftCardAmount、adjustAmount 等)。
结构层面:
结账记录.json 是一个“汇总视图”,字段较为精简。
“小票详情.json” 是更细粒度的结构(包含 orderItem 列表、配送信息、会员详情等)。
这意味着如果你要做字段级的数据模型,通常会把结账记录作为 fact 表的一部分,小票详情作为明细扩展。
- 优惠维度设计的全面性
从字段命名可以看出系统在优惠维度上做了非常细的拆分:
按来源:会员折扣、活动折扣、商品促销、助教促销、券优惠、积分优惠、人工调价、抹零。
每一个维度都对应独立的金额字段(多为 float),并非简单的“总折扣”。
从纯结构角度,这个设计为后续做“多维折扣分析 / 审计 / 对账”提供了足够信息,但同时也增加了建模复杂度,需要在模型中清晰标注每个字段代表“折扣来源”还是“支付渠道”。