订阅详情:失败原因Top3过长不生成keyword链接(护栏)+测试

This commit is contained in:
萝卜
2026-03-14 14:43:34 +00:00
parent 2aba99f6d1
commit 739c0eb53a
4 changed files with 224 additions and 5 deletions

View File

@@ -333,13 +333,32 @@
<div class="card">
<h3>BMPA 失败原因Top3</h3>
@php $bmpaFailedReasonStats = $bmpaFailedReasonStats ?? []; @endphp
@php
$bmpaFailedReasonStats = $bmpaFailedReasonStats ?? [];
// 避免 URL 过长/特殊字符破坏 query原因过长则不生成 keyword 链接
$FAILED_REASON_KEYWORD_MAX_LEN = 80;
@endphp
@if(count($bmpaFailedReasonStats) > 0)
<div class="muted mt-6">
@foreach($bmpaFailedReasonStats as $item)
@php $reason = (string) ($item['reason'] ?? ''); @endphp
@php
$reason = (string) ($item['reason'] ?? '');
$reasonUrl = '';
if ($reason !== '' && mb_strlen($reason) <= $FAILED_REASON_KEYWORD_MAX_LEN) {
$reasonUrl = $makePlatformOrderUrl([
'site_subscription_id' => $subscription->id,
'bmpa_failed_only' => '1',
'bmpa_error_keyword' => $reason,
]);
}
@endphp
<div>
<a class="link" href="{!! $makePlatformOrderUrl(['site_subscription_id' => $subscription->id, 'bmpa_failed_only' => '1', 'bmpa_error_keyword' => $reason]) !!}">{{ $reason }}</a>
@if($reasonUrl)
<a class="link" href="{!! $reasonUrl !!}">{{ $reason }}</a>
@else
<span>{{ $reason }}</span>
<span class="muted muted-xs">(原因过长,请复制到筛选框)</span>
@endif
<span class="muted">{{ $item['count'] }}</span>
</div>
@endforeach
@@ -355,9 +374,24 @@
@if(count($failedReasonStats) > 0)
<div class="muted mt-6">
@foreach($failedReasonStats as $item)
@php $reason = (string) ($item['reason'] ?? ''); @endphp
@php
$reason = (string) ($item['reason'] ?? '');
$reasonUrl = '';
if ($reason !== '' && mb_strlen($reason) <= $FAILED_REASON_KEYWORD_MAX_LEN) {
$reasonUrl = $makePlatformOrderUrl([
'site_subscription_id' => $subscription->id,
'sync_status' => 'failed',
'sync_error_keyword' => $reason,
]);
}
@endphp
<div>
<a class="link" href="{!! $makePlatformOrderUrl(['site_subscription_id' => $subscription->id, 'sync_status' => 'failed', 'sync_error_keyword' => $reason]) !!}">{{ $reason }}</a>
@if($reasonUrl)
<a class="link" href="{!! $reasonUrl !!}">{{ $reason }}</a>
@else
<span>{{ $reason }}</span>
<span class="muted muted-xs">(原因过长,请复制到筛选框)</span>
@endif
<span class="muted">{{ $item['count'] }}</span>
</div>
@endforeach