# assistant_service_records 助教服务记录

> 生成时间：2026-02-14

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | ods |
| 表名 | assistant_service_records |
| 主键 | id, content_hash |
| 数据来源 | export/test-json-doc/assistant_service_records.json |
| 说明 | 助教服务流水 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 说明 |
|------|--------|------|------|------|
| 1 | id | BIGINT | NO | 本条助教流水记录的主键 ID（流水唯一标识） |
| 2 | tenant_id | BIGINT | YES | 租户/品牌 ID |
| 3 | site_id | BIGINT | YES | 门店 ID，本数据中指“朗朗桌球”这一家门店 |
| 4 | siteprofile | JSONB | YES | （待补充） |
| 5 | site_table_id | BIGINT | YES | 球台 ID |
| 6 | order_settle_id | BIGINT | YES | 订单结算 ID，相当于“结账单号”的内部主键 |
| 7 | order_trade_no | TEXT | YES | 订单交易号，整个订单层面的编号 |
| 8 | order_pay_id | BIGINT | YES | 关联到“支付记录”的主键 ID |
| 9 | order_assistant_id | BIGINT | YES | 订单中“助教项目明细”的内部 ID |
| 10 | order_assistant_type | INTEGER | YES | 来自 JSON 导出的原始字段，用于保留业务取值 |
| 11 | assistantname | TEXT | YES | （待补充） |
| 12 | assistantno | TEXT | YES | （待补充） |
| 13 | assistant_level | TEXT | YES | 助教等级名称，与 assistant_level 一一对应（初级/中级/高级/助教管理） |
| 14 | levelname | TEXT | YES | 名称字段，用于展示与辅助识别 |
| 15 | site_assistant_id | BIGINT | YES | 门店维度的助教 ID |
| 16 | skill_id | BIGINT | YES | 助教服务“课程/技能”ID |
| 17 | skillname | TEXT | YES | 名称字段，用于展示与辅助识别 |
| 18 | system_member_id | BIGINT | YES | 系统级会员 ID（全集团统一 ID） |
| 19 | tablename | TEXT | YES | 名称字段，用于展示与辅助识别 |
| 20 | tenant_member_id | BIGINT | YES | 商户维度会员 ID（门店/品牌内的会员主键） |
| 21 | user_id | BIGINT | YES | 助教对应的“用户账号 ID”（系统级用户） |
| 22 | assistant_team_id | BIGINT | YES | 助教所属团队 ID |
| 23 | nickname | TEXT | YES | 助教对外昵称，如“佳怡”“周周”“球球”等 |
| 24 | ledger_name | TEXT | YES | 名称字段，用于展示与辅助识别 |
| 25 | ledger_group_name | TEXT | YES | 助教项目所属的“计费分组/套餐分组名称”，例如某种助教套餐或业务组名称 |
| 26 | ledger_amount | NUMERIC(18,2) | YES | 按标准单价计算出来的应收金额（近似 = ledger_unit_price × income_seconds / 3600） |
| 27 | ledger_count | NUMERIC(18,4) | YES | 台账记录的计时总秒数 |
| 28 | ledger_unit_price | NUMERIC(18,4) | YES | 助教服务 标准单价（通常是标价：每小时、每节课的单价） |
| 29 | ledger_status | INTEGER | YES | 来自 JSON 导出的原始字段，用于保留业务取值 |
| 30 | ledger_start_time | TIMESTAMP | YES | 台账层面记录的开始时间 |
| 31 | ledger_end_time | TIMESTAMP | YES | 台账层面的结束时间 |
| 32 | manual_discount_amount | NUMERIC(18,2) | YES | 收银员手动给予的减免金额（人工改价） |
| 33 | member_discount_amount | NUMERIC(18,2) | YES | 由会员卡折扣产生的优惠金额 |
| 34 | coupon_deduct_money | NUMERIC(18,2) | YES | 由“优惠券/代金券/团购券”等 直接抵扣到这条助教服务上的金额 |
| 35 | service_money | NUMERIC(18,2) | YES | 用于记录与助教结算的金额（平台预留的“成本/分成”字段） |
| 36 | projected_income | NUMERIC(18,2) | YES | 实际结算计入门店的金额（已经考虑折扣、卡权益、券等后的结果） |
| 37 | real_use_seconds | INTEGER | YES | 实际使用时长（秒） |
| 38 | income_seconds | INTEGER | YES | 计费秒数 / 应计收入对应的时间 |
| 39 | start_use_time | TIMESTAMP | YES | 助教实际开始服务时间 |
| 40 | last_use_time | TIMESTAMP | YES | 最后一次使用（实际服务）时间 |
| 41 | create_time | TIMESTAMP | YES | 这条助教流水记录创建时间（一般接近结算/下单时间） |
| 42 | is_single_order | INTEGER | YES | 布尔/开关字段，用于表示权限、可用性或状态开关 |
| 43 | is_delete | INTEGER | YES | 逻辑删除标志 |
| 44 | is_trash | INTEGER | YES | 布尔/开关字段，用于表示权限、可用性或状态开关 |
| 45 | trash_reason | TEXT | YES | 废除原因（文本说明），例如“顾客取消”“录入错误”等 |
| 46 | trash_applicant_id | BIGINT | YES | 提出废除申请的员工 ID（通常是操作员/管理员） |
| 47 | trash_applicant_name | TEXT | YES | 废除申请人姓名 |
| 48 | operator_id | BIGINT | YES | 操作员 ID（录入/结算这条助教服务的员工） |
| 49 | operator_name | TEXT | YES | 操作员姓名，与 operator_id 一起使用，便于直接阅读 |
| 50 | salesman_name | TEXT | YES | 关联的“营业员/销售员姓名”，用于提成归属 |
| 51 | salesman_org_id | BIGINT | YES | 营业员所属组织/部门 ID |
| 52 | salesman_user_id | BIGINT | YES | 营业员用户 ID |
| 53 | person_org_id | BIGINT | YES | 助教所属“人事组织/部门 ID” |
| 54 | add_clock | INTEGER | YES | 加钟秒数，即在原有预约/服务基础上临时追加的时长 |
| 55 | returns_clock | INTEGER | YES | 退钟秒数（取消加钟或提前结束退回的时间） |
| 56 | composite_grade | NUMERIC(10,2) | YES | 综合评分（例如技能+服务加权后的平均分），当前数据没有实际评分 |
| 57 | composite_grade_time | TIMESTAMP | YES | 助教服务所在的球台名称（如 "A17"、"S1"） |
| 58 | skill_grade | NUMERIC(10,2) | YES | 顾客对“技能表现”的评分（整数或打分等级） |
| 59 | service_grade | NUMERIC(10,2) | YES | 顾客对“服务态度”的评分 |
| 60 | sum_grade | NUMERIC(10,2) | YES | 累计评分总和（可能用于计算平均分），当前为 0 |
| 61 | grade_status | INTEGER | YES | 1 = 未评价/正常 |
| 62 | get_grade_times | INTEGER | YES | 该条记录对应的评价次数（或该助教被评价次数快照） |
| 63 | is_not_responding | INTEGER | YES | 布尔/开关字段，用于表示权限、可用性或状态开关 |
| 64 | is_confirm | INTEGER | YES | 布尔/开关字段，用于表示权限、可用性或状态开关 |
| 65 | payload | JSONB | NO | ETL 元数据：完整原始 JSON 记录快照，用于回溯与二次解析 |
| 66 | source_file | TEXT | YES | ETL 元数据：原始导出文件名，用于数据追溯 |
| 67 | source_endpoint | TEXT | YES | ETL 元数据：采集来源（接口/文件路径），用于数据追溯 |
| 68 | fetched_at | TIMESTAMPTZ | YES | ETL 元数据：采集/入库时间戳，用于口径对齐与增量处理 |
| 69 | content_hash | TEXT | NO | ETL 元数据：对业务字段计算 SHA256，用于变更检测与去重 |
| 70 | assistantteamname | TEXT | YES | 助教团队名称 |
| 71 | real_service_money | NUMERIC(18,2) | YES | 实际服务费金额 |

## 使用说明

```sql
-- 查询最新入库的记录
SELECT * FROM ods.assistant_service_records
ORDER BY fetched_at DESC
LIMIT 10;
```

```sql
-- 按业务主键查询某条记录的所有版本
SELECT * FROM ods.assistant_service_records
WHERE id = <value>
ORDER BY fetched_at DESC;
```

## ETL 元数据字段

| 字段名 | 类型 | 说明 |
|--------|------|------|
| content_hash | TEXT | 对业务字段计算 SHA256，用于变更检测与去重 |
| source_file | TEXT | 原始导出文件名，用于数据追溯 |
| source_endpoint | TEXT | 采集来源（接口/文件路径），用于数据追溯 |
| fetched_at | TIMESTAMPTZ | 采集/入库时间戳，用于口径对齐与增量处理 |
| payload | JSONB | 完整原始 JSON 记录快照，用于回溯与二次解析 |

## 可回溯性

| 项目 | 说明 |
|------|------|
| 可回溯 | ✅ 完全可回溯（保留 payload 原始 JSON） |
| 数据来源 | export/test-json-doc/assistant_service_records.json |
