# 审计记录：补录 cfg_skill_type 缺失的 3 条课程类型配置

> 日期：2026-03-24 | Prompt：用户反馈千千助教绑定的客户"梅"被标记为高优先召回但实际近期到店

## 变更原因

WBI（dws_member_winback_index）到店判定逻辑中，settle_type=3 的商城订单需要通过 EXISTS 子查询检查是否关联了 BONUS 类型的助教服务记录。该检查依赖 `dws.cfg_skill_type` 配置表的 JOIN。

排查发现 `dwd_assistant_service_log` 中存在 3 个 skill_id 不在 `cfg_skill_type` 表中，导致 JOIN 失败，这些到店记录被漏掉。

典型案例：会员"梅"（member_id: 2975065345119045）实际 3/19 到店（5 天前），但 WBI 的 last_visit_time 停留在 3/8（16 天前），display_score 虚高至 9.42，错误触发高优先召回。

## 变更内容

### 数据补录（dws.cfg_skill_type）

| skill_id | skill_name | course_type_code | 影响记录数 |
|----------|-----------|-----------------|-----------|
| 2790683529513797 | 基础课 | BASE | 4860 |
| 2790683529513798 | 附加课 | BONUS | 623 |
| 3039912271463941 | 包厢课 | BASE | 42 |

总计影响：113 名会员、3766 条助教服务记录。

### 文件清单

| 文件 | 操作 |
|------|------|
| `db/etl_feiqiu/migrations/2026-03-24_add_missing_cfg_skill_type.sql` | 新建 |
| `apps/etl/connectors/feiqiu/docs/database/DWS/config/BD_manual_cfg_skill_type.md` | 新建 |

## 影响范围

- WBI/NCI 到店判定：settle_type=3 + BONUS EXISTS 检查现在能正确匹配附加课
- 助教服务统计：之前漏掉的基础课/附加课/包厢课记录将被正确统计
- 需要重跑 DWS_WINBACK_INDEX 和 DWS_NEWCONV_INDEX 任务

## 回滚

```sql
DELETE FROM dws.cfg_skill_type WHERE skill_id IN (2790683529513797, 2790683529513798, 3039912271463941);
```

## 验证 SQL

```sql
-- 1. 确认 6 条记录完整
SELECT COUNT(*) FROM dws.cfg_skill_type WHERE is_active = TRUE;
-- 期望：6

-- 2. 确认无孤立 skill_id
SELECT DISTINCT asl.skill_id
FROM dwd.dwd_assistant_service_log asl
WHERE asl.is_delete = 0
  AND NOT EXISTS (SELECT 1 FROM dws.cfg_skill_type st WHERE st.skill_id = asl.skill_id);
-- 期望：0 行

-- 3. 确认梅的到店记录被正确识别
SELECT s.pay_time, s.settle_type,
       EXISTS (
           SELECT 1 FROM dwd.dwd_assistant_service_log asl
           JOIN dws.cfg_skill_type st ON asl.skill_id = st.skill_id
             AND st.course_type_code = 'BONUS' AND st.is_active = TRUE
           WHERE asl.order_settle_id = s.order_settle_id
             AND asl.site_id = s.site_id
             AND asl.tenant_member_id = s.member_id
             AND asl.is_delete = 0
       ) AS has_bonus_service
FROM dwd.dwd_settlement_head s
WHERE s.member_id = 2975065345119045
  AND s.pay_time >= '2026-03-08'
ORDER BY s.pay_time DESC;
-- 期望：3/9, 3/13, 3/16, 3/19 的 has_bonus_service = true
```
