fix: 更新任务调度频率并增强错误处理逻辑
- 将 `lottery:draw-tick` 命令的调度频率从每分钟更新为每10秒,以提高抽奖数据处理的及时性。 - 在 `AdminSettlementBatchPayoutController` 中增强异常处理,提供更具体的错误信息,特别是针对未批准的结算批次。 - 在多语言文件中添加相应的错误信息翻译,确保用户友好的反馈。
This commit is contained in:
@@ -63,7 +63,7 @@ php artisan serve
|
|||||||
php artisan reverb:start
|
php artisan reverb:start
|
||||||
```
|
```
|
||||||
|
|
||||||
**终端 3 — 任务调度(`draw.countdown` 每秒 + `lottery:draw-tick` 每分钟)**
|
**终端 3 — 任务调度(`draw.countdown` 每秒 + `lottery:draw-tick` 每 10 秒)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
php artisan schedule:work
|
php artisan schedule:work
|
||||||
|
|||||||
@@ -17,8 +17,14 @@ final class AdminSettlementBatchPayoutController extends Controller
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$updated = $this->service->payout($batch);
|
$updated = $this->service->payout($batch);
|
||||||
} catch (\RuntimeException) {
|
} catch (\RuntimeException $e) {
|
||||||
return ApiResponse::error(trans('api.client_error'), ErrorCode::ClientHttpError->value, null, 409);
|
$reason = $e->getMessage();
|
||||||
|
$msg = match ($reason) {
|
||||||
|
'settlement_not_approved' => trans('api.settlement_not_approved'),
|
||||||
|
default => trans('api.client_error'),
|
||||||
|
};
|
||||||
|
|
||||||
|
return ApiResponse::error($msg, ErrorCode::ClientHttpError->value, ['reason' => $reason], 409);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ApiResponse::success([
|
return ApiResponse::success([
|
||||||
|
|||||||
@@ -169,7 +169,8 @@ return Application::configure(basePath: dirname(__DIR__))
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
->withSchedule(function (Schedule $schedule): void {
|
->withSchedule(function (Schedule $schedule): void {
|
||||||
$schedule->command('lottery:draw-tick')->everyMinute();
|
/** 开奖时刻后尽快跑 RNG/冷静期,避免大厅在 0:00 卡住最多 1 分钟 */
|
||||||
|
$schedule->command('lottery:draw-tick')->everyTenSeconds();
|
||||||
$schedule->command('lottery:wallet-transfer-reconcile --lookback-hours=24 --stale-minutes=15 --limit=1000')
|
$schedule->command('lottery:wallet-transfer-reconcile --lookback-hours=24 --stale-minutes=15 --limit=1000')
|
||||||
->everyTenMinutes()
|
->everyTenMinutes()
|
||||||
->withoutOverlapping();
|
->withoutOverlapping();
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
return [
|
return [
|
||||||
'validation_failed' => 'The given data was invalid.',
|
'validation_failed' => 'The given data was invalid.',
|
||||||
'client_error' => 'This request could not be completed.',
|
'client_error' => 'This request could not be completed.',
|
||||||
|
'settlement_not_approved' => 'Settlement batch is not approved for payout (both status and review_status must be approved).',
|
||||||
'not_found' => 'The requested resource was not found.',
|
'not_found' => 'The requested resource was not found.',
|
||||||
'too_many_requests' => 'Too many requests. Please try again later.',
|
'too_many_requests' => 'Too many requests. Please try again later.',
|
||||||
'server_error' => 'Something went wrong. Please try again later.',
|
'server_error' => 'Something went wrong. Please try again later.',
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
return [
|
return [
|
||||||
'validation_failed' => 'दिइएको डाटा अमान्य छ।',
|
'validation_failed' => 'दिइएको डाटा अमान्य छ।',
|
||||||
'client_error' => 'यो अनुरोध पूरा गर्न सकिएन।',
|
'client_error' => 'यो अनुरोध पूरा गर्न सकिएन।',
|
||||||
|
'settlement_not_approved' => 'सेटलमेन्ट ब्याच पेमेन्टका लागि स्वीकृत छैन (status र review_status दुवै approved हुनुपर्छ)।',
|
||||||
'not_found' => 'अनुरोध गरिएको स्रोत फेला परेन।',
|
'not_found' => 'अनुरोध गरिएको स्रोत फेला परेन।',
|
||||||
'too_many_requests' => 'धेरै अनुरोधहरू। कृपया पछि प्रयास गर्नुहोस्।',
|
'too_many_requests' => 'धेरै अनुरोधहरू। कृपया पछि प्रयास गर्नुहोस्।',
|
||||||
'server_error' => 'केही गडबड भयो। कृपया पछि प्रयास गर्नुहोस्।',
|
'server_error' => 'केही गडबड भयो। कृपया पछि प्रयास गर्नुहोस्।',
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
return [
|
return [
|
||||||
'validation_failed' => '请求参数校验未通过。',
|
'validation_failed' => '请求参数校验未通过。',
|
||||||
'client_error' => '请求无法完成。',
|
'client_error' => '请求无法完成。',
|
||||||
|
'settlement_not_approved' => '结算批次尚未审核通过,无法派彩(需 status 与 review_status 均为 approved)。',
|
||||||
'not_found' => '请求的资源不存在。',
|
'not_found' => '请求的资源不存在。',
|
||||||
'too_many_requests' => '请求过于频繁,请稍后再试。',
|
'too_many_requests' => '请求过于频繁,请稍后再试。',
|
||||||
'server_error' => '服务暂时不可用,请稍后再试。',
|
'server_error' => '服务暂时不可用,请稍后再试。',
|
||||||
|
|||||||
Reference in New Issue
Block a user