# 结账记录（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），并非简单的“总折扣”。

从纯结构角度，这个设计为后续做“多维折扣分析 / 审计 / 对账”提供了足够信息，但同时也增加了建模复杂度，需要在模型中清晰标注每个字段代表“折扣来源”还是“支付渠道”。
