feat: 添加结算功能,更新 TicketItem 模型以支持最新结算详情,增强 DrawTickService 以自动处理结算,更新 TicketWalletService 以支持派彩入账,扩展 API 路由以管理结算批次和奖池

This commit is contained in:
2026-05-11 15:34:34 +08:00
parent 6a55fa9592
commit 19003f5041
50 changed files with 3604 additions and 3 deletions

View File

@@ -21,6 +21,11 @@ use App\Http\Controllers\Api\V1\Admin\Draw\AdminDrawIndexController;
use App\Http\Controllers\Api\V1\Admin\Draw\AdminDrawResultBatchesIndexController;
use App\Http\Controllers\Api\V1\Admin\Draw\AdminDrawShowController;
use App\Http\Controllers\Api\V1\Admin\Draw\DrawResultBatchPublishController;
use App\Http\Controllers\Api\V1\Admin\Draw\DrawSettlementRunController;
use App\Http\Controllers\Api\V1\Admin\Jackpot\AdminJackpotContributionIndexController;
use App\Http\Controllers\Api\V1\Admin\Jackpot\AdminJackpotPayoutLogIndexController;
use App\Http\Controllers\Api\V1\Admin\Jackpot\AdminJackpotPoolIndexController;
use App\Http\Controllers\Api\V1\Admin\Jackpot\AdminJackpotPoolUpdateController;
use App\Http\Controllers\Api\V1\Admin\PingController as AdminPingController;
use App\Http\Controllers\Api\V1\Admin\Player\PlayerWalletShowController;
use App\Http\Controllers\Api\V1\Admin\PlayTypeIndexController;
@@ -28,15 +33,22 @@ use App\Http\Controllers\Api\V1\Admin\PlayTypePatchController;
use App\Http\Controllers\Api\V1\Admin\Risk\AdminRiskPoolIndexController;
use App\Http\Controllers\Api\V1\Admin\Risk\AdminRiskPoolLockLogIndexController;
use App\Http\Controllers\Api\V1\Admin\Risk\AdminRiskPoolShowController;
use App\Http\Controllers\Api\V1\Admin\Settlement\AdminSettlementBatchDetailsController;
use App\Http\Controllers\Api\V1\Admin\Settlement\AdminSettlementBatchIndexController;
use App\Http\Controllers\Api\V1\Admin\Settlement\AdminSettlementBatchShowController;
use App\Http\Controllers\Api\V1\Admin\Wallet\TransferOrderListController;
use App\Http\Controllers\Api\V1\Admin\Wallet\WalletTransactionListController;
use App\Http\Controllers\Api\V1\Draw\DrawCurrentController;
use App\Http\Controllers\Api\V1\Draw\DrawResultShowController;
use App\Http\Controllers\Api\V1\Draw\DrawResultsIndexController;
use App\Http\Controllers\Api\V1\HealthController;
use App\Http\Controllers\Api\V1\Jackpot\JackpotSummaryController;
use App\Http\Controllers\Api\V1\Play\PlayEffectiveCatalogController;
use App\Http\Controllers\Api\V1\Player\MeController;
use App\Http\Controllers\Api\V1\Player\PingController as PlayerPingController;
use App\Http\Controllers\Api\V1\Ticket\TicketDrawMyMatchController;
use App\Http\Controllers\Api\V1\Ticket\TicketItemShowController;
use App\Http\Controllers\Api\V1\Ticket\TicketItemsIndexController;
use App\Http\Controllers\Api\V1\Ticket\TicketPlaceController;
use App\Http\Controllers\Api\V1\Ticket\TicketPreviewController;
use App\Http\Controllers\Api\V1\Wallet\WalletBalanceController;
@@ -61,6 +73,8 @@ Route::prefix('v1')->group(function (): void {
->where('draw_no', '[0-9]{8}-[0-9]{3}')
->name('api.v1.draw.results.show');
Route::get('jackpot/summary', JackpotSummaryController::class)->name('api.v1.jackpot.summary');
// 名称:生效玩法 / 赔率 / 封顶目录(阶段 4公开
Route::get('play/effective', PlayEffectiveCatalogController::class)->name('api.v1.play.effective');
@@ -97,6 +111,13 @@ Route::prefix('v1')->group(function (): void {
->group(function (): void {
Route::post('preview', TicketPreviewController::class)->name('preview');
Route::post('place', TicketPlaceController::class)->name('place');
Route::get('items', TicketItemsIndexController::class)->name('items.index');
Route::get('items/{ticket_no}', TicketItemShowController::class)
->where('ticket_no', 'TK[0-9]+')
->name('items.show');
Route::get('draws/{draw_no}/my-match', TicketDrawMyMatchController::class)
->where('draw_no', '[0-9]{8}-[0-9]{3}')
->name('draws.my-match');
});
});
@@ -139,6 +160,22 @@ Route::prefix('v1')->group(function (): void {
'draws/{draw}/result-batches/{batch}/publish',
DrawResultBatchPublishController::class,
)->name('draws.result-batches.publish');
Route::post('draws/{draw}/settlement/run', DrawSettlementRunController::class)
->name('draws.settlement.run');
Route::get('settlement-batches', AdminSettlementBatchIndexController::class)
->name('settlement-batches.index');
Route::get('settlement-batches/{batch}', AdminSettlementBatchShowController::class)
->name('settlement-batches.show');
Route::get('settlement-batches/{batch}/details', AdminSettlementBatchDetailsController::class)
->name('settlement-batches.details');
Route::get('jackpot/pools', AdminJackpotPoolIndexController::class)->name('jackpot.pools.index');
Route::put('jackpot/pools/{pool}', AdminJackpotPoolUpdateController::class)->name('jackpot.pools.update');
Route::get('jackpot/payout-logs', AdminJackpotPayoutLogIndexController::class)
->name('jackpot.payout-logs.index');
Route::get('jackpot/contributions', AdminJackpotContributionIndexController::class)
->name('jackpot.contributions.index');
// 阶段 4玩法目录 + 赔率 + 风控封顶(版本化管理)
Route::get('play-types', PlayTypeIndexController::class)->name('play-types.index');