初始提交:飞球 ETL 系统全量代码
This commit is contained in:
444
docs/api-reference/endpoints/assistant_cancellation_records.md
Normal file
444
docs/api-reference/endpoints/assistant_cancellation_records.md
Normal file
@@ -0,0 +1,444 @@
|
||||
# 助教撤销记录(GetAbolitionAssistant)
|
||||
|
||||
> 自动生成于 2026-02-13 | 数据来源:本地 JSON 样本
|
||||
|
||||
## 基本信息
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| 接口路径 | `AssistantPerformance/GetAbolitionAssistant` |
|
||||
| 完整 URL | `https://pc.ficoo.vip/apiprod/admin/v1/AssistantPerformance/GetAbolitionAssistant` |
|
||||
| 请求方法 | `POST` |
|
||||
| Content-Type | `application/json` |
|
||||
| 鉴权方式 | Bearer Token(`Authorization` 头) |
|
||||
| ODS 对应表 | `assistant_cancellation_records` |
|
||||
| 分页方式 | `page` + `limit`(最大 100) |
|
||||
| 时间范围 | 需要(startTime / endTime) |
|
||||
|
||||
## 请求参数
|
||||
|
||||
| 参数名 | 类型 | 示例值 | 说明 |
|
||||
|--------|------|--------|------|
|
||||
| `startTime` | string | `"2026-02-01 08:00:00"` | 查询起始时间 |
|
||||
| `endTime` | string | `"2026-02-13 08:00:00"` | 查询结束时间 |
|
||||
| `siteId` | int | `2790685415443269` | 门店 ID |
|
||||
| `page` | int | `1` | 页码(从 1 开始) |
|
||||
| `limit` | int | `100` | 每页条数(最大 100) |
|
||||
|
||||
## 响应字段(共 13 个)
|
||||
|
||||
| # | 字段名 | 类型 | 示例值 |
|
||||
|---|--------|------|--------|
|
||||
| 1 | `siteProfile` | object | {'id': 2790685415443269, 'org_id': 2790684179467077, 'sho... |
|
||||
| 2 | `createTime` | string | '2025-11-09 19:23:29' |
|
||||
| 3 | `id` | int | 2957675849518789 |
|
||||
| 4 | `siteId` | int | 2790685415443269 |
|
||||
| 5 | `tableAreaId` | int | 2791963816579205 |
|
||||
| 6 | `tableId` | int | 2793016660660357 |
|
||||
| 7 | `tableArea` | string | 'C区' |
|
||||
| 8 | `tableName` | string | 'C1' |
|
||||
| 9 | `assistantOn` | string | '27' |
|
||||
| 10 | `assistantName` | string | '泡芙' |
|
||||
| 11 | `pdChargeMinutes` | int | 214 |
|
||||
| 12 | `assistantAbolishAmount` | float | 5.83 |
|
||||
| 13 | `trashReason` | string | '' |
|
||||
|
||||
## 详细字段分析
|
||||
|
||||
> 以下内容迁移自旧版 `assistant_cancellation_records-Analysis.md`,包含字段的业务含义、枚举值、跨表关联等详细说明。
|
||||
|
||||
1. 门店相关字段
|
||||
1.1 siteProfile
|
||||
|
||||
类型:对象(Object)
|
||||
|
||||
含义:门店信息快照。
|
||||
|
||||
结构:包含以下子字段(26 个左右):
|
||||
|
||||
id:门店 ID(与其他 JSON 中的 site_id 一致)。
|
||||
|
||||
org_id:组织 ID(总部/品牌组织)。
|
||||
|
||||
shop_name:店名,如“朗朗桌球”。
|
||||
|
||||
avatar:门店头像图片 URL。
|
||||
|
||||
business_tel:门店电话。
|
||||
|
||||
full_address:详细地址。
|
||||
|
||||
address:简化地址描述。
|
||||
|
||||
longitude / latitude:经纬度。
|
||||
|
||||
tenant_site_region_id:区域行政编码。
|
||||
|
||||
tenant_id:租户 ID(品牌商户 ID)。
|
||||
|
||||
auto_light:是否自动控灯(0/1 枚举)。
|
||||
|
||||
attendance_distance:考勤打卡范围。
|
||||
|
||||
wifi_name / wifi_password:WiFi 账号和密码。
|
||||
|
||||
customer_service_qrcode / customer_service_wechat:客服二维码、微信号。
|
||||
|
||||
fixed_pay_qrCode:固定收款码。
|
||||
|
||||
prod_env:环境标记(测试/生产等)。
|
||||
|
||||
light_status / light_type / light_token:灯控相关配置。
|
||||
|
||||
site_type:门店类型枚举。
|
||||
|
||||
site_label:门店标签(如“A”)。
|
||||
|
||||
attendance_enabled:是否启用考勤(0/1)。
|
||||
|
||||
shop_status:门店状态(1=营业等)。
|
||||
|
||||
特点:
|
||||
|
||||
与其他 JSON 中的 siteProfile 完全同构,是冗余的门店信息快照。
|
||||
|
||||
真正的主键是 siteProfile.id,且与同记录的 siteId 一致。
|
||||
|
||||
1.2 siteId
|
||||
|
||||
类型:整数(long)
|
||||
|
||||
观测:所有记录均为同一值 2790685415443269。
|
||||
|
||||
含义:门店 ID,即该废除记录所在门店。
|
||||
|
||||
关联:
|
||||
|
||||
与 siteProfile.id 一致。
|
||||
|
||||
与其他 JSON 中所有 site_id 字段相同(同一门店的数据)。
|
||||
|
||||
2. 台桌维度字段
|
||||
|
||||
这几个字段描述废除发生在哪张桌、哪个区域。
|
||||
|
||||
2.1 tableId
|
||||
|
||||
类型:整数(long)
|
||||
|
||||
含义:球台/桌子的 ID。
|
||||
|
||||
关联:
|
||||
|
||||
对应 “台桌列表.json” 中的 id 字段。
|
||||
|
||||
用于定位具体哪一张台桌上发生了助教废除。
|
||||
|
||||
2.2 tableName
|
||||
|
||||
类型:字符串(string)
|
||||
|
||||
示例值:
|
||||
|
||||
"C1", "C2", "B9", "VIP1", "A4", "666", "董事办", "补时长5", "M1" 等。
|
||||
|
||||
含义:台桌名称/编号,供人阅读。
|
||||
|
||||
关系:
|
||||
|
||||
与台桌列表中的 table_name 或 table_no 文本一致。
|
||||
|
||||
作为冗余字段存在,即使不联表也能看出是哪个桌。
|
||||
|
||||
2.3 tableAreaId
|
||||
|
||||
类型:整数(long)
|
||||
|
||||
示例:2791963816579205 等。
|
||||
|
||||
含义:台桌所在区域 ID。
|
||||
|
||||
关联:
|
||||
|
||||
应对应“区域配置表”的主键(本次导出未包含该表)。
|
||||
|
||||
与其他 JSON 中出现的 tableAreaId(比如台费流水、助教流水里的区域字段)是一致的。
|
||||
|
||||
2.4 tableArea
|
||||
|
||||
类型:字符串(string)
|
||||
|
||||
示例值:
|
||||
|
||||
"C区", "B区", "A区", "VIP包厢", "K包", "补时长", "666"。
|
||||
|
||||
含义:台桌所属区域名称。
|
||||
|
||||
说明:
|
||||
|
||||
用于展示和报表分区。
|
||||
|
||||
与 tableAreaId 一起从“区域维表”中可以查出区域层级信息(本次数据未导出该表)。
|
||||
|
||||
3. 助教维度字段
|
||||
|
||||
反映是哪一个助教被废除。
|
||||
|
||||
3.1 assistantOn
|
||||
|
||||
类型:字符串(string)
|
||||
|
||||
观测值(本次 15 条记录中):
|
||||
|
||||
'2', '4', '9', '16', '23', '27', '52', '15', '99'
|
||||
|
||||
含义:助教编号(工号/序号)。
|
||||
|
||||
说明:
|
||||
|
||||
虽然是字符串,但内容上是纯数字,实际是编号,不是业务金额。
|
||||
|
||||
与 助教流水.json 中的 assistantNo 字段是一致的。
|
||||
|
||||
与“助教账号1/2.json” 中的 assistant_no 字段相同,用于识别哪位助教。
|
||||
|
||||
枚举性质:
|
||||
|
||||
在当前门店范围内,assistantOn 实际上是枚举集合(有限个编号)。
|
||||
|
||||
具体编号-姓名的映射关系在“助教账号”表中定义,不在本文件中。
|
||||
|
||||
3.2 assistantName
|
||||
|
||||
类型:字符串(string)
|
||||
|
||||
观测值(本次 15 条中):
|
||||
|
||||
'佳怡'、'璇子'、'周周'、'球球'、'泡芙'、'婉婉'、'小柔'、'七七'、'Amy'
|
||||
|
||||
含义:助教姓名/对外展示名称。
|
||||
|
||||
关系:
|
||||
|
||||
与“助教账号”档案中的 real_name / nickname 对应。
|
||||
|
||||
与 助教流水.json 里的 assistantName 字段一致。
|
||||
|
||||
注意:
|
||||
|
||||
这是被废除的那位助教,不是顾客姓名。
|
||||
|
||||
4. 时间与时长字段
|
||||
4.1 createTime
|
||||
|
||||
类型:字符串(string),格式 YYYY-MM-DD HH:MM:SS
|
||||
|
||||
示例:"2025-11-09 19:23:29"
|
||||
|
||||
含义:这条“助教废除记录”被创建的时间,即系统正式记录“废除”操作的时刻。
|
||||
|
||||
与其他时间字段关系:
|
||||
|
||||
在 助教流水.json 里有 create_time / ledger_start_time / ledger_end_time 等,本字段通常会落在这些时间点之后,表示在某次服务计时过程后发生了废除操作。
|
||||
|
||||
数据特征:
|
||||
|
||||
所有记录都有非空时间,精确到秒。
|
||||
|
||||
4.2 pdChargeMinutes
|
||||
|
||||
类型:整数(int)
|
||||
|
||||
示例值:214, 10800, 3602, 3600, 2379, 14400, 10605, 10608, 10611, 0 等。
|
||||
|
||||
含义(结构层面):
|
||||
|
||||
“已发生的计费时长(分钟)”,即这次助教服务在被废除前已经累计了多少分钟。
|
||||
|
||||
特点:
|
||||
|
||||
单位是“分钟”,不是秒。
|
||||
|
||||
绝大部分是较大的整数(如 10800 分钟这样的数字,显然系统里有异常/默认值,具体业务含义要结合上下文看,这里只从字段命名和类型说明)。
|
||||
|
||||
也有 0 的情况,表示发生废除时尚未有有效计费时间产生(例如刚排钟就撤销)。
|
||||
|
||||
与其他字段的关系(结构层面推断,不做业务结论):
|
||||
|
||||
这类字段很可能用于后续计算“应退时长”或“扣费时长”。
|
||||
|
||||
对应 助教流水 里关于 real_use_seconds、income_seconds 的记录,可用来判断“废除时已经消耗了多少时间”。
|
||||
|
||||
5. 金额字段
|
||||
5.1 assistantAbolishAmount
|
||||
|
||||
类型:浮点数(float)
|
||||
|
||||
示例值:
|
||||
|
||||
5.83, 570.0, 108.06, 190.0, 71.37, 392.0, 465.44, 318.24, 318.33, 以及 0.0。
|
||||
|
||||
含义(结构层面):
|
||||
|
||||
与“助教废除”关联的金额字段。字面上是“助教废除金额”。
|
||||
|
||||
可以理解为本次废除操作对应的一笔金额数值(是扣除、退还、补差,由业务规则决定,这里不做盈利/收益分析)。
|
||||
|
||||
特点:
|
||||
|
||||
为浮点数,单位为元。
|
||||
|
||||
存在 0 值,表示这条废除记录没有产生额外金额变动(纯记录操作)。
|
||||
|
||||
可能的用途(从字段角色角度,而不是结论):
|
||||
|
||||
后续在账务模块中,可以用 assistantAbolishAmount 这类字段与其他表(如退款记录、余额变更记录)进行金额对账和逻辑匹配。
|
||||
|
||||
6. 废除原因字段
|
||||
6.1 trashReason
|
||||
|
||||
类型:字符串(string)
|
||||
|
||||
当前数据观测:所有 15 条记录都是空字符串 ""。
|
||||
|
||||
含义:
|
||||
|
||||
用于记录“废除原因”的文本描述,例如“顾客临时有事取消”“录入错误”“更换助教”等。
|
||||
|
||||
特点:
|
||||
|
||||
可为空字符串,说明系统允许不填原因。
|
||||
|
||||
从结构上看,这是一个自由文本字段,不是枚举,不会做严格约束。
|
||||
|
||||
与其他字段的关系:
|
||||
|
||||
当配合 is_trash(在 助教流水.json 中)使用时,trashReason 可以为那条流水提供“为什么被废除”的说明。
|
||||
|
||||
本表专门记录“废除事件”的列表,因此 trashReason 是这张表记录的重要附加信息。
|
||||
|
||||
三、字段之间的结构关系与外部关联
|
||||
|
||||
虽然本文件字段不多,但从字段设计可以看出它在整个系统中的位置。这里只从“字段结构”和“关联键”的角度说明,不做业务/盈利分析。
|
||||
|
||||
1. 与门店表 / 全局维度的关系
|
||||
|
||||
siteId 与 siteProfile.id 一致,且与其他 JSON 中的 site_id 一致。
|
||||
|
||||
说明:这是典型的“门店维度外键 + 冗余快照”设计:
|
||||
|
||||
siteId 作为外键;
|
||||
|
||||
siteProfile 作为冗余快照,方便直接展示店名、地址等。
|
||||
|
||||
2. 与台桌列表(台桌列表.json)的关系
|
||||
|
||||
对应关系:
|
||||
|
||||
tableId ↔ 台桌列表中的 id
|
||||
|
||||
tableName ↔ 台桌列表中的 table_name / table_no
|
||||
|
||||
tableAreaId ↔ 台桌列表中的 area_id(通过区域表可以进一步找到区域名称)
|
||||
|
||||
tableArea ↔ 台桌列表中的 area_name
|
||||
|
||||
结论(结构层面):
|
||||
|
||||
助教废除.json 中关于桌台的四个字段,是对“台桌维度”信息的引用 + 冗余快照。
|
||||
|
||||
当用 tableId 去联查台桌列表时,可以获取更多静态信息(如台费设置、是否可预约等),本文件只保留了最基础的桌号和区域。
|
||||
|
||||
3. 与助教档案 / 助教流水的关系
|
||||
|
||||
对助教的标识字段:
|
||||
|
||||
assistantOn ↔ 助教流水中的 assistantNo ↔ 助教账号中的 assistant_no
|
||||
|
||||
assistantName ↔ 助教流水中的 assistantName ↔ 助教账号中的姓名字段
|
||||
|
||||
结构上的含义:
|
||||
|
||||
助教废除.json 可以看作是“助教服务流水”的一个特殊子集:只记录被废除的部分。
|
||||
|
||||
在 助教流水.json 中,存在字段 is_trash、trash_reason 等,它们从主流水视角记录“此条流水已经被废除”这一状态。
|
||||
|
||||
在 助教废除.json 中,則以“废除事件”为主视角,列出每一次废除操作的明细(在哪张桌、哪个助教、多少分钟、金额多少)。
|
||||
|
||||
需要注意的结构事实:
|
||||
|
||||
助教废除.json 里 没有 订单号类字段(例如 order_trade_no、order_assistant_id),因此如果要从“废除事件”反查到具体哪一条助教流水,目前只能通过组合条件关联,例如:
|
||||
|
||||
相同门店 siteId;
|
||||
|
||||
相同助教 assistantOn + assistantName;
|
||||
|
||||
相同台桌 tableId / tableName;
|
||||
|
||||
相近时间(createTime 对应助教流水的 create_time/ledger_end_time 附近)。
|
||||
|
||||
这说明系统在设计时,把“废除事件”作为独立表存储,但没有在导出中包含可直接联表的订单 ID。结构上就导致“硬外键”缺失,只能做“软匹配”。
|
||||
|
||||
4. 与资金/账户类表的潜在关系(结构层面)
|
||||
|
||||
关键金额字段:
|
||||
|
||||
assistantAbolishAmount 是本表唯一金额字段。
|
||||
|
||||
结合字段命名和位置,可以推断结构关系:
|
||||
|
||||
如果废除操作产生金额变动(例如退还部分费用或扣除违约金),那么在:
|
||||
|
||||
退款记录.json 中可能有对应一笔退款记录;
|
||||
|
||||
余额变更记录.json 中可能有对应一条会员卡余额变动(若退到卡里)。
|
||||
|
||||
这些表中不会直接有 assistantAbolishAmount 字段,但会有金额字段 + 关联 ID,结构上可能通过金额和时间进行逻辑匹配。
|
||||
|
||||
需要强调:
|
||||
|
||||
这里只指出“这个字段在系统里承担的是一个‘金额变量’的角色”,不做盈利/损益层面的任何分析或结论。
|
||||
|
||||
四、本表本身暴露出的结构性线索
|
||||
|
||||
清晰的单一职责
|
||||
助教废除.json 不包含订单号、支付信息、会员信息等字段,只保留:
|
||||
|
||||
门店/桌台维度;
|
||||
|
||||
助教维度;
|
||||
|
||||
时间、分钟数;
|
||||
|
||||
一个金额字段;
|
||||
|
||||
文本原因字段。
|
||||
说明这个表的设计就是“专门记录助教废除事件”的事件表,倾向于作为运营日志或审计用途,而不是主结算表。
|
||||
|
||||
软外键的设计取向
|
||||
|
||||
没有 order_trade_no、order_settle_id 等硬外键字段。
|
||||
|
||||
需要通过“时间 + 助教 + 桌台”的组合条件与 助教流水、订单/结算 进行软关联。
|
||||
|
||||
在迁移或对接新系统时,如果希望建立强外键,建议在新结构中给废除表补充 order_assistant_id 或 order_trade_no 之类的字段,以便直接关联。
|
||||
|
||||
分钟与秒的混用
|
||||
|
||||
pdChargeMinutes 单位是“分钟”;
|
||||
|
||||
在 助教流水.json 中,同类字段如 income_seconds / real_use_seconds 是“秒”。
|
||||
结构层面说明:系统在不同接口/表中用了不同的时间单位。
|
||||
在做结构统一或数据建模时,最好统一为一个单位(全部转为秒或全部转为分钟),否则容易出现比较/汇总混乱。
|
||||
|
||||
废除原因文本未被使用但结构预留完备
|
||||
|
||||
当前 15 条记录中,trashReason 全部为空,说明实际运营中并没有强制填写原因。
|
||||
|
||||
但结构上预留了这个字段,将来如果要做“废除原因统计”或“内部稽核”,无需修改结构,只要要求前台填写即可。
|
||||
|
||||
数量很少但字段完整
|
||||
|
||||
当前总记录数只有 15 条,但已经有完整的门店、桌台、助教、时长、金额、原因字段。
|
||||
|
||||
说明设计不是临时补的,而是参照完整流水表(助教流水)设计的一张配套表,只是当前时间范围内“废除事件”确实不多。
|
||||
Reference in New Issue
Block a user