- 添加ensureSuperAdmin方法,限制管理员设置操作权限 - 在AdminSettingController接口中新增权限检查,防止非超级管理员操作 - AdminPlayerIndexController新增direct agent筛选支持 - AdminPlayerUpdateController新增对信用玩家默认币别变更的拒绝逻辑 - 新增WalletSettlementBillsController,实现玩家信用盘账期账单摘要接口 - AgentProfileService调整,新增返点限额和分享比例自动下调机制,保持子代理及玩家配置不超父级 - AgentProfileService增加can_grant_extra_rebate权限继承限制,阻止无权限代理开启 - AgentSettlementPeriodCloseService增加玩家账单回水信用释放逻辑,确保信用额度同步 - PlayerCreditService新增释放账单回水对应信用逻辑,维护账期信用一致性 - TicketPlacementService和TicketPreviewService新增信用玩家投注币别匹配校验,防止币别不符 - PlayerLedgerLogsService优化信用额度计算,增加可用额度上下限限制,防止负值和超限 - 调整后台管理导航,仅超管可见设置入口,强化权限隔离 - 路由新增玩家信用账单查询接口 - 补充多项AgentProfile相关单元测试覆盖额度限制、返点继承、返点下调场景及权限限制 - 增加站点管理员登录测试,验证系统设置菜单不可见,提升用户权限体验
53 lines
2.4 KiB
PHP
53 lines
2.4 KiB
PHP
<?php
|
||
|
||
use Illuminate\Support\Facades\Route;
|
||
use App\Http\Controllers\Api\V1\Player\MeController;
|
||
use App\Http\Controllers\Api\V1\Wallet\WalletLogsController;
|
||
use App\Http\Controllers\Api\V1\Ticket\TicketPlaceController;
|
||
use App\Http\Controllers\Api\V1\Ticket\TicketPreviewController;
|
||
use App\Http\Controllers\Api\V1\Wallet\WalletBalanceController;
|
||
use App\Http\Controllers\Api\V1\Wallet\WalletSettlementBillsController;
|
||
use App\Http\Controllers\Api\V1\Ticket\TicketItemShowController;
|
||
use App\Http\Controllers\Api\V1\Ticket\TicketItemsIndexController;
|
||
use App\Http\Controllers\Api\V1\Wallet\WalletTransferInController;
|
||
use App\Http\Controllers\Api\V1\Ticket\TicketDrawMyMatchController;
|
||
use App\Http\Controllers\Api\V1\Wallet\WalletTransferOutController;
|
||
|
||
/**
|
||
* 玩家端路由(需 middleware lottery.player)。
|
||
*/
|
||
Route::middleware('lottery.player')->group(function (): void {
|
||
// 当前登录玩家信息
|
||
Route::prefix('player')
|
||
->name('api.v1.player.')
|
||
->group(function (): void {
|
||
Route::get('me', MeController::class)->name('me');
|
||
});
|
||
|
||
// 钱包
|
||
Route::prefix('wallet')
|
||
->name('api.v1.wallet.')
|
||
->group(function (): void {
|
||
Route::get('balance', WalletBalanceController::class)->name('balance');
|
||
Route::get('logs', WalletLogsController::class)->name('logs');
|
||
Route::get('settlement-bills', WalletSettlementBillsController::class)->name('settlement-bills');
|
||
Route::post('transfer-in', WalletTransferInController::class)->name('transfer-in');
|
||
Route::post('transfer-out', WalletTransferOutController::class)->name('transfer-out');
|
||
});
|
||
|
||
// 注单
|
||
Route::prefix('ticket')
|
||
->name('api.v1.ticket.')
|
||
->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');
|
||
});
|
||
});
|