From d011a203738d101cc6f7d1fa10a0cd2fda6a68d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Wed, 11 Mar 2026 03:43:54 +0000 Subject: [PATCH] =?UTF-8?q?feat(gov):=20=E6=89=B9=E9=87=8F=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E8=AE=A2=E9=98=85=E5=AE=A1=E8=AE=A1=E8=A1=A5=E5=85=85?= =?UTF-8?q?=20subscription=5Fid/filters/note?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Admin/PlatformOrderController.php | 14 +++++++++++++- ...PlatformOrderBatchActivateSubscriptionsTest.php | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/PlatformOrderController.php b/app/Http/Controllers/Admin/PlatformOrderController.php index cce4411..17d98a6 100644 --- a/app/Http/Controllers/Admin/PlatformOrderController.php +++ b/app/Http/Controllers/Admin/PlatformOrderController.php @@ -858,9 +858,18 @@ class PlatformOrderController extends Controller $failed = 0; $failedReasonCounts = []; + // 筛选摘要:用于审计记录(避免每条订单都手写拼接,且便于追溯本次批量处理口径) + $filterSummaryParts = []; + foreach ($filters as $k => $v) { + if ((string) $v !== '') { + $filterSummaryParts[] = $k . '=' . (string) $v; + } + } + $filterSummary = implode('&', $filterSummaryParts); + foreach ($orders as $orderRow) { try { - $service->activateOrder($orderRow->id, $admin->id); + $subscription = $service->activateOrder($orderRow->id, $admin->id); // 轻量审计:记录批量同步动作(方便追溯) $order = PlatformOrder::query()->find($orderRow->id); @@ -873,6 +882,9 @@ class PlatformOrderController extends Controller 'scope' => $scope, 'at' => $nowStr, 'admin_id' => $admin->id, + 'subscription_id' => $subscription->id, + 'filters' => $filterSummary, + 'note' => '批量同步订阅(limit=' . $limit . ', matched=' . $matchedTotal . ', processed=' . $processed . ')', ]; data_set($meta, 'audit', $audit); diff --git a/tests/Feature/AdminPlatformOrderBatchActivateSubscriptionsTest.php b/tests/Feature/AdminPlatformOrderBatchActivateSubscriptionsTest.php index e583cbd..47ccc67 100644 --- a/tests/Feature/AdminPlatformOrderBatchActivateSubscriptionsTest.php +++ b/tests/Feature/AdminPlatformOrderBatchActivateSubscriptionsTest.php @@ -85,6 +85,9 @@ class AdminPlatformOrderBatchActivateSubscriptionsTest extends TestCase $this->assertNotNull($syncable->site_subscription_id); $this->assertNotEmpty(data_get($syncable->meta, 'subscription_activation.subscription_id')); $this->assertSame('batch_activate_subscription', data_get($syncable->meta, 'audit.0.action')); + $this->assertNotEmpty(data_get($syncable->meta, 'audit.0.subscription_id')); + $this->assertNotEmpty(data_get($syncable->meta, 'audit.0.filters')); + $this->assertNotEmpty(data_get($syncable->meta, 'audit.0.note')); } public function test_platform_admin_batch_activate_records_failure_reason_and_summary(): void