refactor:拆分 API 路由与请求校验,统一 final 类和代码风格

This commit is contained in:
2026-05-13 11:54:40 +08:00
parent 5d2dbdbe1d
commit 805847954d
281 changed files with 1886 additions and 1308 deletions

View File

@@ -2,20 +2,20 @@
namespace App\Http\Controllers\Api\V1\Ticket;
use App\Http\Controllers\Controller;
use App\Models\Draw;
use App\Models\Player;
use App\Models\TicketCombination;
use App\Models\TicketItem;
use App\Services\Draw\DrawResultViewService;
use App\Support\ApiResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Models\TicketCombination;
use Illuminate\Http\JsonResponse;
use App\Http\Controllers\Controller;
use App\Services\Draw\DrawResultViewService;
/**
* `GET /api/v1/ticket/draws/{draw_no}/my-match` 当期本人号码与已发布开奖 23 格的交集(用于开奖页高亮)。
*/
class TicketDrawMyMatchController extends Controller
final class TicketDrawMyMatchController extends Controller
{
public function __construct(
private readonly DrawResultViewService $drawResultView,

View File

@@ -2,19 +2,19 @@
namespace App\Http\Controllers\Api\V1\Ticket;
use App\Http\Controllers\Controller;
use App\Lottery\ErrorCode;
use App\Models\Player;
use App\Lottery\ErrorCode;
use App\Models\TicketItem;
use App\Services\Draw\DrawResultViewService;
use App\Support\ApiResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use App\Http\Controllers\Controller;
use App\Services\Draw\DrawResultViewService;
/**
* `GET /api/v1/ticket/items/{ticket_no}` 注单详情(单注项 + 组合 + 结算摘要)。
*/
class TicketItemShowController extends Controller
final class TicketItemShowController extends Controller
{
public function __construct(
private readonly DrawResultViewService $drawResultView,

View File

@@ -2,25 +2,28 @@
namespace App\Http\Controllers\Api\V1\Ticket;
use App\Http\Controllers\Controller;
use App\Models\Player;
use App\Models\TicketItem;
use App\Support\ApiResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Support\PaginationTrait;
use Illuminate\Http\JsonResponse;
use App\Http\Controllers\Controller;
/**
* `GET /api/v1/ticket/items` 我的注单(注项列表,支持 `draw_no` 筛选)。
*/
class TicketItemsIndexController extends Controller
final class TicketItemsIndexController extends Controller
{
use PaginationTrait;
public function __invoke(Request $request): JsonResponse
{
/** @var Player $player */
$player = $request->attributes->get('lottery_player');
$perPage = max(1, min(50, (int) $request->query('per_page', 20)));
$page = max(1, (int) $request->query('page', 1));
$perPage = $this->perPage($request, 'per_page', 20, 50);
$page = $this->page($request);
$drawNo = $request->query('draw_no');
$query = TicketItem::query()

View File

@@ -2,13 +2,13 @@
namespace App\Http\Controllers\Api\V1\Ticket;
use App\Exceptions\TicketOperationException;
use App\Http\Controllers\Controller;
use App\Http\Requests\Ticket\TicketPlaceRequest;
use App\Services\Ticket\TicketPlacementService;
use App\Support\ApiResponse;
use App\Support\LotteryMessage;
use Illuminate\Http\JsonResponse;
use App\Http\Controllers\Controller;
use App\Exceptions\TicketOperationException;
use App\Services\Ticket\TicketPlacementService;
use App\Http\Requests\Ticket\TicketPlaceRequest;
final class TicketPlaceController extends Controller
{

View File

@@ -2,13 +2,13 @@
namespace App\Http\Controllers\Api\V1\Ticket;
use App\Exceptions\TicketOperationException;
use App\Http\Controllers\Controller;
use App\Http\Requests\Ticket\TicketPreviewRequest;
use App\Services\Ticket\TicketPreviewService;
use App\Support\ApiResponse;
use App\Support\LotteryMessage;
use Illuminate\Http\JsonResponse;
use App\Http\Controllers\Controller;
use App\Exceptions\TicketOperationException;
use App\Services\Ticket\TicketPreviewService;
use App\Http\Requests\Ticket\TicketPreviewRequest;
final class TicketPreviewController extends Controller
{