fix: 更新任务调度频率并增强错误处理逻辑

- 将 `lottery:draw-tick` 命令的调度频率从每分钟更新为每10秒,以提高抽奖数据处理的及时性。
- 在 `AdminSettlementBatchPayoutController` 中增强异常处理,提供更具体的错误信息,特别是针对未批准的结算批次。
- 在多语言文件中添加相应的错误信息翻译,确保用户友好的反馈。
This commit is contained in:
2026-05-25 16:43:51 +08:00
parent 5f1d2d79ce
commit 770fd8950d
6 changed files with 14 additions and 4 deletions

View File

@@ -63,7 +63,7 @@ php artisan serve
php artisan reverb:start
```
**终端 3 — 任务调度(`draw.countdown` 每秒 + `lottery:draw-tick`分钟**
**终端 3 — 任务调度(`draw.countdown` 每秒 + `lottery:draw-tick` 10 秒**
```bash
php artisan schedule:work

View File

@@ -17,8 +17,14 @@ final class AdminSettlementBatchPayoutController extends Controller
{
try {
$updated = $this->service->payout($batch);
} catch (\RuntimeException) {
return ApiResponse::error(trans('api.client_error'), ErrorCode::ClientHttpError->value, null, 409);
} catch (\RuntimeException $e) {
$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([

View File

@@ -169,7 +169,8 @@ return Application::configure(basePath: dirname(__DIR__))
});
})
->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')
->everyTenMinutes()
->withoutOverlapping();

View File

@@ -3,6 +3,7 @@
return [
'validation_failed' => 'The given data was invalid.',
'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.',
'too_many_requests' => 'Too many requests. Please try again later.',
'server_error' => 'Something went wrong. Please try again later.',

View File

@@ -3,6 +3,7 @@
return [
'validation_failed' => 'दिइएको डाटा अमान्य छ।',
'client_error' => 'यो अनुरोध पूरा गर्न सकिएन।',
'settlement_not_approved' => 'सेटलमेन्ट ब्याच पेमेन्टका लागि स्वीकृत छैन (status र review_status दुवै approved हुनुपर्छ)।',
'not_found' => 'अनुरोध गरिएको स्रोत फेला परेन।',
'too_many_requests' => 'धेरै अनुरोधहरू। कृपया पछि प्रयास गर्नुहोस्।',
'server_error' => 'केही गडबड भयो। कृपया पछि प्रयास गर्नुहोस्।',

View File

@@ -3,6 +3,7 @@
return [
'validation_failed' => '请求参数校验未通过。',
'client_error' => '请求无法完成。',
'settlement_not_approved' => '结算批次尚未审核通过,无法派彩(需 status 与 review_status 均为 approved。',
'not_found' => '请求的资源不存在。',
'too_many_requests' => '请求过于频繁,请稍后再试。',
'server_error' => '服务暂时不可用,请稍后再试。',