diff --git a/app/Http/Controllers/Admin/SiteSubscriptionController.php b/app/Http/Controllers/Admin/SiteSubscriptionController.php index e1795f0..30a17ce 100644 --- a/app/Http/Controllers/Admin/SiteSubscriptionController.php +++ b/app/Http/Controllers/Admin/SiteSubscriptionController.php @@ -182,13 +182,29 @@ class SiteSubscriptionController extends Controller ->where('ends_at', '<', now()->addDays(7)); } }) - ->when($filters['keyword'] !== '', function (Builder $builder) use ($filters) { - $keyword = $filters['keyword']; + ->when($filters['keyword'] !== '', function (Builder $builder) use ($filters) { + // 关键词搜索:订阅号 / 站点 / 套餐 / 计费周期 + $keyword = trim((string) ($filters['keyword'] ?? '')); + if ($keyword === '') { + return; + } - $builder->where(function (Builder $subQuery) use ($keyword) { - $subQuery->where('subscription_no', 'like', '%' . $keyword . '%') + $builder->where(function (Builder $q) use ($keyword) { + $q->where('subscription_no', 'like', '%' . $keyword . '%') ->orWhere('plan_name', 'like', '%' . $keyword . '%') - ->orWhere('billing_cycle', 'like', '%' . $keyword . '%'); + ->orWhere('billing_cycle', 'like', '%' . $keyword . '%') + ->orWhereHas('merchant', function (Builder $mq) use ($keyword) { + $mq->where('name', 'like', '%' . $keyword . '%') + ->orWhere('slug', 'like', '%' . $keyword . '%'); + }) + ->orWhereHas('plan', function (Builder $pq) use ($keyword) { + $pq->where('name', 'like', '%' . $keyword . '%') + ->orWhere('code', 'like', '%' . $keyword . '%'); + }); + + if (ctype_digit($keyword)) { + $q->orWhere('id', (int) $keyword); + } }); }); } diff --git a/resources/views/admin/platform_orders/index.blade.php b/resources/views/admin/platform_orders/index.blade.php index 4f2f992..f327bb5 100644 --- a/resources/views/admin/platform_orders/index.blade.php +++ b/resources/views/admin/platform_orders/index.blade.php @@ -24,6 +24,18 @@ @endforeach + + - +