feat(platform): 线索可查看关联订单(platform_orders 按 lead_id 筛选)

This commit is contained in:
萝卜
2026-03-14 04:05:11 +00:00
parent 35200e4803
commit b6d6b06593
3 changed files with 139 additions and 1 deletions

View File

@@ -205,6 +205,8 @@ class PlatformOrderController extends Controller
'refund_status' => trim((string) $request->query('refund_status', '')),
// 退款数据不一致(可治理):基于 refund_summary.total_amount 与 paid_amount 对比
'refund_inconsistent' => (string) $request->query('refund_inconsistent', ''),
// 线索联动:用于从开通线索跳转查看关联订单
'lead_id' => trim((string) $request->query('lead_id', '')),
];
@@ -1054,6 +1056,8 @@ class PlatformOrderController extends Controller
'refund_status' => trim((string) $request->query('refund_status', '')),
// 退款数据不一致(可治理):基于 refund_summary.total_amount 与 paid_amount 对比
'refund_inconsistent' => (string) $request->query('refund_inconsistent', ''),
// 线索联动:用于从开通线索跳转查看关联订单
'lead_id' => trim((string) $request->query('lead_id', '')),
];
@@ -2067,6 +2071,20 @@ class PlatformOrderController extends Controller
});
});
}
})
->when(($filters['lead_id'] ?? '') !== '', function (Builder $builder) use ($filters) {
// 线索联动仅看指定线索关联的订单meta.platform_lead_id = lead_id
$leadId = (int) ($filters['lead_id'] ?? 0);
if ($leadId <= 0) {
return;
}
$driver = $builder->getQuery()->getConnection()->getDriverName();
if ($driver === 'sqlite') {
$builder->whereRaw("JSON_EXTRACT(meta, '$.platform_lead_id') = ?", [$leadId]);
} else {
$builder->whereRaw("CAST(JSON_UNQUOTE(JSON_EXTRACT(meta, '$.platform_lead_id')) AS UNSIGNED) = ?", [$leadId]);
}
});
}