# 结账记录 — GetAllOrderSettleList > 模块:`Site` · ODS 表:`settlement_records` · 事实表(增量) --- ## 一、接口概述 查询门店在指定时间范围内的所有结账记录。每条记录代表一次完整的结账行为(整单维度),是台费流水、助教流水、商品销售、小票详情等多张明细表的"汇总头表"。 该接口是整个 ETL 系统中最核心的事实表数据源之一,承载了消费构成(台费/商品/助教/服务)和支付渠道(现金/线上/储值卡/礼品卡/积分等)两个维度的完整拆分。 | 属性 | 值 | |------|-----| | 完整路径 | `POST /Site/GetAllOrderSettleList` | | Base URL | `https://pc.ficoo.vip/apiprod/admin/v1/` | | 鉴权 | `Authorization: Bearer ` | | 分页 | `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) ```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[]` 元素由两部分组成: - `siteProfile`(26 个字段):门店维度快照,当前接口中为空壳(值均为 0 或空字符串) - `settleList`(66 个字段):真正的结账明细对象,所有业务字段在此 合计 92 个字段,按逻辑分组说明如下。 --- ## 四、响应字段详解 ### A. siteProfile — 门店维度快照(26 个字段) > 当前接口中 `siteProfile` 几乎为空壳(`id=0`、`shop_name=""`),真正的门店信息在内层 `settleList` 的 `siteId` / `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。若当前记录被撤销,记录对应的撤销单 ID;`0` = 无撤销 | | `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 > 0`),`false` = 散客 | | `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` | 是否参与了营销活动(活动价、满减等) | > `isBindMember` 和 `isFirst` 见 4.3 会员维度。 #### 4.9 员工 / 操作相关 | 字段 | 类型 | 示例 | 说明 | |------|------|------|------| | `operatorId` | int | `2790687322443013` | 结账操作员的用户 ID,可与员工/账号表关联 | | `operatorName` | string | `"收银员:郑丽珊"` | 操作员名称,包含角色前缀(如 `"收银员:"`) | | `salesManName` | string | `""` | 营业员/业务员名称(用于提成或业绩归属),当前未设置 | | `salesManUserId` | int | `0` | 营业员用户 ID | | `orderRemark` | string | `""` | 订单备注,收银员手工输入的特殊说明 | --- ## 五、响应样例(单条记录) ```json { "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` 列表、配送信息、会员详情等) - 两者通过 `id` ↔ `orderSettleId` 一对一关联 - 小票详情中存在大量同名字段(`couponAmount`、`giftCardAmount`、`adjustAmount` 等),数据模型中通常将结账记录作为 fact 表,小票详情作为明细扩展 ### 新增字段说明(相对旧版 JSON 样本) 以下 5 个字段在最新 API 响应中新增,旧版本地 JSON 样本中不存在: | 字段 | 说明 | |------|------| | `electricityMoney` | 电费金额 | | `realElectricityMoney` | 电费实际计入金额 | | `electricityAdjustMoney` | 电费调整金额 | | `plCouponSaleAmount` | 平台券售卖金额 | | `merVouSalesAmount` | 商户代金券售卖金额 |