feat(gov): 批量同步订阅审计补充 subscription_id/filters/note
This commit is contained in:
@@ -858,9 +858,18 @@ class PlatformOrderController extends Controller
|
|||||||
$failed = 0;
|
$failed = 0;
|
||||||
$failedReasonCounts = [];
|
$failedReasonCounts = [];
|
||||||
|
|
||||||
|
// 筛选摘要:用于审计记录(避免每条订单都手写拼接,且便于追溯本次批量处理口径)
|
||||||
|
$filterSummaryParts = [];
|
||||||
|
foreach ($filters as $k => $v) {
|
||||||
|
if ((string) $v !== '') {
|
||||||
|
$filterSummaryParts[] = $k . '=' . (string) $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$filterSummary = implode('&', $filterSummaryParts);
|
||||||
|
|
||||||
foreach ($orders as $orderRow) {
|
foreach ($orders as $orderRow) {
|
||||||
try {
|
try {
|
||||||
$service->activateOrder($orderRow->id, $admin->id);
|
$subscription = $service->activateOrder($orderRow->id, $admin->id);
|
||||||
|
|
||||||
// 轻量审计:记录批量同步动作(方便追溯)
|
// 轻量审计:记录批量同步动作(方便追溯)
|
||||||
$order = PlatformOrder::query()->find($orderRow->id);
|
$order = PlatformOrder::query()->find($orderRow->id);
|
||||||
@@ -873,6 +882,9 @@ class PlatformOrderController extends Controller
|
|||||||
'scope' => $scope,
|
'scope' => $scope,
|
||||||
'at' => $nowStr,
|
'at' => $nowStr,
|
||||||
'admin_id' => $admin->id,
|
'admin_id' => $admin->id,
|
||||||
|
'subscription_id' => $subscription->id,
|
||||||
|
'filters' => $filterSummary,
|
||||||
|
'note' => '批量同步订阅(limit=' . $limit . ', matched=' . $matchedTotal . ', processed=' . $processed . ')',
|
||||||
];
|
];
|
||||||
data_set($meta, 'audit', $audit);
|
data_set($meta, 'audit', $audit);
|
||||||
|
|
||||||
|
|||||||
@@ -85,6 +85,9 @@ class AdminPlatformOrderBatchActivateSubscriptionsTest extends TestCase
|
|||||||
$this->assertNotNull($syncable->site_subscription_id);
|
$this->assertNotNull($syncable->site_subscription_id);
|
||||||
$this->assertNotEmpty(data_get($syncable->meta, 'subscription_activation.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->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
|
public function test_platform_admin_batch_activate_records_failure_reason_and_summary(): void
|
||||||
|
|||||||
Reference in New Issue
Block a user