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

19 KiB
Raw Permalink Blame History

结账记录 — GetAllOrderSettleList

模块:Site · ODS 表:settlement_records · 事实表(增量)


一、接口概述

查询门店在指定时间范围内的所有结账记录。每条记录代表一次完整的结账行为(整单维度),是台费流水、助教流水、商品销售、小票详情等多张明细表的"汇总头表"。

该接口是整个 ETL 系统中最核心的事实表数据源之一,承载了消费构成(台费/商品/助教/服务)和支付渠道(现金/线上/储值卡/礼品卡/积分等)两个维度的完整拆分。

属性
完整路径 POST /Site/GetAllOrderSettleList
Base URL https://pc.ficoo.vip/apiprod/admin/v1/
鉴权 Authorization: Bearer <token>
分页 page + limit(最大 100注意:拒绝 pageSize/pageNo,否则返回 HTTP 1400
时间范围 必须(rangeStartTime / rangeEndTime

响应结构特殊性

与大多数接口的 data.list[] 不同,本接口的响应结构为嵌套形式:

{
  "code": 200,
  "data": {
    "total": 4739,
    "settleList": [
      {
        "siteProfile": { ... },     ← 门店维度快照(当前为空壳)
        "settleList": { ... }        ← 真正的结账明细对象
      }
    ]
  }
}

外层 data.settleList 是数组,每个元素包含 siteProfile(门店快照)和内层 settleList结账明细对象两部分。ETL 抽取时需注意这一嵌套结构。


二、请求

请求体JSON

{
  "settleType": 0,
  "rangeStartTime": "2026-02-01 08:00:00",
  "rangeEndTime": "2026-02-13 08:00:00",
  "siteId": 2790685415443269,
  "siteTableAreaIdList": [],
  "page": 1,
  "limit": 100
}

参数说明

参数 类型 必填 说明
settleType int 结算类型筛选。0 = 全部,1 = 正常结账,3 = 特殊类型(挂账/补单/调整单)
rangeStartTime string 查询起始时间,格式 YYYY-MM-DD HH:MM:SS
rangeEndTime string 查询结束时间,格式 YYYY-MM-DD HH:MM:SS
siteId int 门店 ID
siteTableAreaIdList array 台桌区域 ID 列表,空数组 [] 表示全部区域
page int 页码,从 1 开始
limit int 每页条数,最大 100。禁止使用 pageSize/pageNo

三、响应结构

{
  "code": 200,
  "data": {
    "total": 4739,
    "settleList": [
      {
        "siteProfile": { ... },
        "settleList": { ... }
      }
    ]
  }
}

每个 data.settleList[] 元素由两部分组成:

  • siteProfile26 个字段):门店维度快照,当前接口中为空壳(值均为 0 或空字符串)
  • settleList66 个字段):真正的结账明细对象,所有业务字段在此

合计 92 个字段,按逻辑分组说明如下。


四、响应字段详解

A. siteProfile — 门店维度快照26 个字段)

当前接口中 siteProfile 几乎为空壳(id=0shop_name=""),真正的门店信息在内层 settleListsiteId / siteName 字段中。该结构与其他接口(如支付流水、退款流水)中的 siteProfile 完全一致。

字段 类型 示例 说明
id int 0 门店 ID当前为 0未填充
org_id int 0 组织 ID
shop_name string "" 门店名称(当前为空)
avatar string "" 门店头像 URL
business_tel string "" 门店电话
full_address string "" 门店详细地址
address string "" 门店简要地址
longitude float 0.0 经度
latitude float 0.0 纬度
tenant_site_region_id int 0 地区编码
tenant_id int 0 租户 ID
auto_light int 1 自动灯控开关
attendance_distance int 0 考勤打卡距离(米)
wifi_name string "" WiFi 名称
wifi_password string "" WiFi 密码
customer_service_qrcode string "" 客服二维码 URL
customer_service_wechat string "" 客服微信号
fixed_pay_qrCode string "" 固定收款码 URL
prod_env int 1 环境标记:1 = 生产环境
light_status int 1 灯控状态
light_type int 0 灯控类型
site_type int 1 门店类型枚举
light_token string "" 灯控设备 Token
site_label string "" 门店标签
attendance_enabled int 1 考勤功能开关:1 = 启用
shop_status int 1 门店状态:1 = 正常营业

B. settleList — 结账明细对象66 个字段)

4.1 主键与关联 ID / 桌台信息

字段 类型 示例 说明
id int 3092711340902597 结账记录主键 ID订单结算 ID。全系统统一的"结账单号",是多张明细表的汇总头
tenantId int 2790683160709957 租户/商户 ID品牌维度全表固定
siteId int 2790685415443269 门店 ID。与所有业务表的 site_id 对应
siteName string "朗朗桌球" 门店名称,冗余展示字段
tableId int 2956248279567557 本次结账对应的桌台 ID。对应台桌维表的 id 和台费流水的 site_table_id
settleName string "发财 发财" 结账对象名称,一般为"区域 + 桌号"组合(如 "A区 A17")。与台费流水中的 site_table_area_name + ledger_name 一致
settleRelateId int 3092230766020741 关联订单的交易号(order_trade_no)。将结账记录与台费流水、助教流水、商品明细等逻辑串联的核心外键
serialNumber int 0 结账序列号/打印序号,用于内部排序或冲正追踪。当前样本均为 0

4.2 时间与状态

字段 类型 示例 说明
createTime string "2026-02-13 04:48:42" 结账记录创建时间,对应收银端"确认结账"的时刻
payTime string "2026-02-13 04:49:48" 实际支付完成时间,通常晚于 createTime(多支付场景)
settleStatus int 2 结账状态枚举:2 = 已结算/已完成。其他可能值:待支付、已撤销(当前样本未出现)
settleType int 1 结账类型枚举:1 = 正常结账,3 = 特殊类型(挂账/补单/调整单)
paymentMethod int 0 支付方式标识(新增字段),0 = 默认/未指定
canBeRevoked bool false 是否允许撤销/冲正。true = 可撤销,false = 不可撤销(已过时限或已冲正)
revokeOrderId int 0 撤销关联单 ID。若当前记录被撤销记录对应的撤销单 ID0 = 无撤销
revokeOrderName string "" 撤销单名称/标识
revokeTime string "0001-01-01 00:00:00" 撤销时间。0001-01-01 为无效占位,表示未发生撤销

4.3 会员维度

字段 类型 示例 说明
memberId int 2799207522600709 会员主键 ID。与会员卡表的 tenant_member_id 一致。0 = 散客
memberName string "" 会员姓名快照(当前接口未填充)
memberPhone string "" 会员手机号快照(当前接口未填充)
tenantMemberCardId int 0 会员卡账户 ID预留"结账记录 → 会员卡账户表"的外键(当前未使用)
memberCardTypeName string "" 会员卡类型名称,如"储值卡""次卡"等。对应会员卡表的 member_card_type_name
isBindMember bool false 本次结账是否绑定会员。true = 会员单(memberId > 0false = 散客
isFirst int 0 是否首单(新客首单):0 = 否,1 = 是
memberDiscountAmount float 0.0 会员折扣产生的优惠金额(元)

4.4 消费构成(台费 / 商品 / 助教 / 服务 / 电费)

这些字段从"消费侧"拆解每笔结账的项目构成,不涉及付款方式。

金额关系(近似):consumeMoney ≈ tableChargeMoney + goodsMoney + assistantPdMoney + assistantCxMoney + serviceMoney + electricityMoney ± 调价/抹零

字段 类型 示例 说明
consumeMoney float 5567.77 本次结账消费总额(所有项目金额汇总,不区分支付方式/优惠)
tableChargeMoney float 2564.45 台费金额(桌台计费部分)
goodsMoney float 2357.0 商品销售金额(原始金额)
realGoodsMoney float 2357.0 商品实际计入金额(扣除折扣/促销后)。通常 realGoodsMoney ≤ goodsMoney
assistantPdMoney float 646.32 助教"排钟/上课"应计金额(原价)。与助教流水的 ledger_amount 汇总对齐
assistantCxMoney float 0.0 助教"次课/套餐/持续课"金额。与 assistantPdMoney 一起将助教项目区分为不同计费类型
serviceMoney float 0.0 服务费/其他服务类收费金额,区分于台费、商品、助教之外的服务收入
electricityMoney float 0.0 电费金额(新增字段)。灯控/电力计费场景
realElectricityMoney float 0.0 电费实际计入金额(新增字段)。扣除调整后的电费
electricityAdjustMoney float 0.0 电费调整金额(新增字段)。电费维度的人工调价

4.5 支付与资金构成(按渠道拆分)

这些字段描述"钱从哪来/怎么付"的分配,是支付渠道维度,不是消费项目构成。

字段 类型 示例 说明
payAmount float 0.0 本次结账实付金额(顾客实际支付总额),不含券面值、积分等非现金部分
cashAmount float 0.0 现金支付金额
cardAmount float 0.0 刷卡支付金额(信用卡/银行卡),也可能是会员卡支付的一种编码
balanceAmount float 4285.55 会员余额账户扣除金额(储值卡余额消费)
onlineAmount float 0.0 线上支付金额汇总(微信/支付宝/云闪付等通道总和),不细分通道
rechargeCardAmount float 4285.55 充值卡抵扣金额。与 balanceAmount 可能存在重叠(视系统配置)
giftCardAmount int/float 0 礼品卡/代金卡支付金额
refundAmount float 0.0 本次结账涉及的退款金额(退款单或部分退单时为正数)
prepayMoney float 0.0 预付金(定金)部分金额,记录提前预付在本单中使用的金额

4.6 优惠 / 折扣 / 活动金额

系统在优惠维度上做了非常细的拆分,按来源区分:会员折扣、活动折扣、商品促销、助教促销、券优惠、积分优惠、人工调价、抹零。每个维度对应独立的金额字段。

字段 类型 示例 说明
couponAmount float 0.0 优惠券(代金券/团购券等)实际抵扣金额
couponSaleAmount float 0.0 优惠券本身的售卖金额/成本金额(顾客为购券支付的金额)
plCouponSaleAmount float 0.0 平台券售卖金额(新增字段)。区分于商户自有券
merVouSalesAmount float 0.0 商户代金券售卖金额(新增字段)
allCouponDiscount float 0.0 所有券类优惠折扣的汇总金额
goodsPromotionMoney float 0.0 商品促销优惠金额(买赠、满减分摊到商品部分)
assistantPromotionMoney float 0.0 助教项目促销优惠金额
activityDiscount float 0.0 活动折扣金额(整单打折、满减等归集)
adjustAmount float 1282.22 人工调价金额(总和),包括整单减免、特殊调整。值较大时说明存在明显的人工改价
assistantManualDiscount float 0.0 助教服务专项人工减免金额(区别于普通商品/台费折扣)
roundingAmount float 0.0 抹零金额/舍入差值(四舍五入或按角、分抹零产生的调整)

4.7 积分相关

字段 类型 示例 说明
pointAmount float 0.0 积分相关金额/数量。可能表示本单获得的积分数量,或用积分抵扣的金额(视系统配置)
pointDiscountPrice float 0.0 积分抵扣对应的金额(售价侧)
pointDiscountCost float 0.0 积分抵扣对应的成本金额(成本侧)

4.8 布尔标志位(优惠/活动使用情况)

字段 类型 示例 说明
isUseCoupon bool false 本次结账是否使用了优惠券
isUseDiscount bool false 是否使用了折扣(会员折扣、整单打折等)
isActivity bool false 是否参与了营销活动(活动价、满减等)

isBindMemberisFirst 见 4.3 会员维度。

4.9 员工 / 操作相关

字段 类型 示例 说明
operatorId int 2790687322443013 结账操作员的用户 ID可与员工/账号表关联
operatorName string "收银员:郑丽珊" 操作员名称,包含角色前缀(如 "收银员:"
salesManName string "" 营业员/业务员名称(用于提成或业绩归属),当前未设置
salesManUserId int 0 营业员用户 ID
orderRemark string "" 订单备注,收银员手工输入的特殊说明

五、响应样例(单条记录)

{
  "siteProfile": {
    "id": 0,
    "org_id": 0,
    "shop_name": "",
    "avatar": "",
    "business_tel": "",
    "full_address": "",
    "address": "",
    "longitude": 0.0,
    "latitude": 0.0,
    "tenant_site_region_id": 0,
    "tenant_id": 0,
    "auto_light": 1,
    "attendance_distance": 0,
    "wifi_name": "",
    "wifi_password": "",
    "customer_service_qrcode": "",
    "customer_service_wechat": "",
    "fixed_pay_qrCode": "",
    "prod_env": 1,
    "light_status": 1,
    "light_type": 0,
    "site_type": 1,
    "light_token": "",
    "site_label": "",
    "attendance_enabled": 1,
    "shop_status": 1
  },
  "settleList": {
    "id": 3092711340902597,
    "tenantId": 2790683160709957,
    "siteId": 2790685415443269,
    "siteName": "朗朗桌球",
    "balanceAmount": 4285.55,
    "cardAmount": 0.0,
    "cashAmount": 0.0,
    "couponAmount": 0.0,
    "createTime": "2026-02-13 04:48:42",
    "memberId": 2799207522600709,
    "memberName": "",
    "tenantMemberCardId": 0,
    "memberCardTypeName": "",
    "memberPhone": "",
    "tableId": 2956248279567557,
    "consumeMoney": 5567.77,
    "onlineAmount": 0.0,
    "operatorId": 2790687322443013,
    "operatorName": "收银员:郑丽珊",
    "revokeOrderId": 0,
    "revokeOrderName": "",
    "revokeTime": "0001-01-01 00:00:00",
    "payAmount": 0.0,
    "pointAmount": 0.0,
    "refundAmount": 0.0,
    "settleName": "发财 发财",
    "settleRelateId": 3092230766020741,
    "settleStatus": 2,
    "settleType": 1,
    "payTime": "2026-02-13 04:49:48",
    "roundingAmount": 0.0,
    "paymentMethod": 0,
    "adjustAmount": 1282.22,
    "assistantCxMoney": 0.0,
    "assistantPdMoney": 646.32,
    "couponSaleAmount": 0.0,
    "plCouponSaleAmount": 0.0,
    "merVouSalesAmount": 0.0,
    "memberDiscountAmount": 0.0,
    "tableChargeMoney": 2564.45,
    "goodsMoney": 2357.0,
    "realGoodsMoney": 2357.0,
    "serviceMoney": 0.0,
    "prepayMoney": 0.0,
    "salesManName": "",
    "orderRemark": "",
    "salesManUserId": 0,
    "canBeRevoked": false,
    "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,
    "isFirst": 0,
    "rechargeCardAmount": 4285.55,
    "giftCardAmount": 0,
    "electricityMoney": 0.0,
    "realElectricityMoney": 0.0,
    "electricityAdjustMoney": 0.0
  }
}

六、跨表关联

结账记录是多张明细表的"汇总头"

本表字段 关联表 关联字段 说明
id 台费流水 table_fee_transactions order_settle_id 结账单号 → 台费明细
id 助教流水 assistant_service_records order_settle_id 结账单号 → 助教明细
id 小票详情 settlement_ticket_details orderSettleId 结账单号 → 小票明细
settleRelateId 台费流水 order_trade_no 交易号,跨明细表汇总的核心外键
settleRelateId 助教流水 order_trade_no 同上

桌台维度

本表字段 关联表 关联字段 说明
tableId 台桌主数据 site_tables_master id 桌台 ID
tableId 台费流水 site_table_id 桌台 ID
settleName 台费流水 site_table_area_name + ledger_name 区域 + 桌号组合

会员维度

本表字段 关联表 关联字段 说明
memberId 会员储值卡 member_stored_value_cards tenant_member_id 会员 ID
tenantMemberCardId 会员储值卡 id 会员卡账户 ID预留外键

助教金额映射

  • assistantPdMoney = 对应订单下助教流水的 ledger_amount 汇总(应收金额)
  • 助教流水中的 projected_income 是核算侧的实际计入金额,本表不直接体现

与小票详情的关系

  • 结账记录是"汇总视图",字段较精简
  • 小票详情是更细粒度的结构(含 orderItem 列表、配送信息、会员详情等)
  • 两者通过 idorderSettleId 一对一关联
  • 小票详情中存在大量同名字段(couponAmountgiftCardAmountadjustAmount 等),数据模型中通常将结账记录作为 fact 表,小票详情作为明细扩展

新增字段说明(相对旧版 JSON 样本)

以下 5 个字段在最新 API 响应中新增,旧版本地 JSON 样本中不存在:

字段 说明
electricityMoney 电费金额
realElectricityMoney 电费实际计入金额
electricityAdjustMoney 电费调整金额
plCouponSaleAmount 平台券售卖金额
merVouSalesAmount 商户代金券售卖金额