微信小程序页面迁移校验之前 P5任务处理之前
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# 团购套餐详情(QueryPackageCouponInfo) → group_buy_package_details 字段映射
|
||||
|
||||
> 生成时间:2026-03-05
|
||||
|
||||
## 端点信息
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| 接口路径 | `PackageCoupon/QueryPackageCouponInfo` |
|
||||
| 请求方法 | POST |
|
||||
| 请求参数 | `{ "couponId": <id> }`(从 `ods.group_buy_packages.id` 获取) |
|
||||
| ODS 对应表 | `ods.group_buy_package_details` |
|
||||
| JSON 数据路径 | `data` |
|
||||
| 调用方式 | 二级详情拉取(`ODS_GROUP_PACKAGE` 任务的 `detail_endpoint` 子流程) |
|
||||
|
||||
## 响应结构
|
||||
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"groupPurchasePackage": {
|
||||
"id": 123,
|
||||
"packageName": "...",
|
||||
"duration": 3600,
|
||||
"startTime": "...",
|
||||
"endTime": "...",
|
||||
"addStartClock": "00:00:00",
|
||||
"addEndClock": "1.00:00:00",
|
||||
"isEnabled": 1,
|
||||
"isDelete": 0,
|
||||
"siteId": 456,
|
||||
"tenantId": 789,
|
||||
"createTime": "...",
|
||||
"creatorName": "...",
|
||||
"tableAreaId": [1, 2, 3],
|
||||
"tableAreaNameList": ["A区", "B区"]
|
||||
},
|
||||
"packageCouponAssistants": [...],
|
||||
"grouponSiteInfos": [...],
|
||||
"packagePackageService": [...],
|
||||
"packageCouponDetailsList": [...]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 字段映射
|
||||
|
||||
### 结构化字段(来自 data.groupPurchasePackage)
|
||||
|
||||
| JSON 路径 | ODS 列名 | 类型转换 | 说明 |
|
||||
|-----------|----------|----------|------|
|
||||
| data.groupPurchasePackage.id | coupon_id | int→BIGINT | 团购套餐 ID,主键 |
|
||||
| data.groupPurchasePackage.packageName | package_name | string→TEXT | 套餐名称 |
|
||||
| data.groupPurchasePackage.duration | duration | int→INTEGER | 台费计时时长(秒) |
|
||||
| data.groupPurchasePackage.startTime | start_time | string→TIMESTAMPTZ | 可用日期开始 |
|
||||
| data.groupPurchasePackage.endTime | end_time | string→TIMESTAMPTZ | 可用日期结束 |
|
||||
| data.groupPurchasePackage.addStartClock | add_start_clock | string→TEXT | 可用时段开始 |
|
||||
| data.groupPurchasePackage.addEndClock | add_end_clock | string→TEXT | 可用时段结束 |
|
||||
| data.groupPurchasePackage.isEnabled | is_enabled | int→INTEGER | 是否启用 |
|
||||
| data.groupPurchasePackage.isDelete | is_delete | int→INTEGER | 是否已删除 |
|
||||
| data.groupPurchasePackage.siteId | site_id | int→BIGINT | 店铺 ID |
|
||||
| data.groupPurchasePackage.tenantId | tenant_id | int→BIGINT | 租户 ID |
|
||||
| data.groupPurchasePackage.createTime | create_time | string→TIMESTAMPTZ | 创建时间 |
|
||||
| data.groupPurchasePackage.creatorName | creator_name | string→TEXT | 创建人 |
|
||||
|
||||
### JSONB 数组字段
|
||||
|
||||
| JSON 路径 | ODS 列名 | 类型转换 | 说明 |
|
||||
|-----------|----------|----------|------|
|
||||
| data.groupPurchasePackage.tableAreaId | table_area_ids | array→JSONB | 可用台区 ID 列表 |
|
||||
| data.groupPurchasePackage.tableAreaNameList | table_area_names | array→JSONB | 可用台区名称列表 |
|
||||
| data.packageCouponAssistants | assistant_services | array→JSONB | 助教服务关联(含 skillId/assistantLevel/assistantDuration) |
|
||||
| data.grouponSiteInfos | groupon_site_infos | array→JSONB | 关联门店信息(含 siteId/siteName) |
|
||||
| data.packagePackageService | package_services | array→JSONB | 套餐服务数组(待调研,可能为空) |
|
||||
| data.packageCouponDetailsList | coupon_details_list | array→JSONB | 券明细数组(待调研,可能为空) |
|
||||
|
||||
## ETL 补充字段
|
||||
|
||||
| ODS 列名 | 生成逻辑 |
|
||||
|-----------|----------|
|
||||
| content_hash | 基于原始 payload + is_delete 计算 SHA-256 |
|
||||
| payload | 完整原始 JSON 响应(`data` 节点) |
|
||||
| fetched_at | ETL 拉取时间戳(`DEFAULT now()`) |
|
||||
|
||||
## 写入策略
|
||||
|
||||
- 全量快照模式(`SnapshotMode.FULL_TABLE`)
|
||||
- UPSERT on `coupon_id`,每次运行覆盖全部记录
|
||||
- 通过 `content_hash` 去重,内容未变则跳过写入
|
||||
Reference in New Issue
Block a user