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

@@ -4,7 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class AdminMenu extends Model
final class AdminMenu extends Model
{
protected $table = 'admin_menus';
}

View File

@@ -5,7 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class AdminMenuAction extends Model
final class AdminMenuAction extends Model
{
protected $table = 'admin_menu_actions';

View File

@@ -2,18 +2,18 @@
namespace App\Models;
use Illuminate\Support\Facades\DB;
use App\Support\AdminPermissionBridge;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Support\Facades\DB;
class AdminRole extends Model
final class AdminRole extends Model
{
protected $table = 'admin_roles';
protected static function booted(): void
{
static::creating(function (AdminRole $role): void {
self::creating(function (AdminRole $role): void {
if (($role->code ?? '') === '' && is_string($role->slug) && $role->slug !== '') {
$role->code = $role->slug;
}

View File

@@ -2,14 +2,14 @@
namespace App\Models;
use App\Support\AdminPermissionBridge;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\DB;
use Laravel\Sanctum\HasApiTokens;
use Illuminate\Support\Facades\DB;
use App\Support\AdminPermissionBridge;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class AdminUser extends Authenticatable
final class AdminUser extends Authenticatable
{
use HasApiTokens;
use Notifiable;

View File

@@ -6,7 +6,7 @@ use App\Services\AuditLogger;
use Illuminate\Database\Eloquent\Model;
/** 运维/后台动作留痕表 audit_logs写入请走 {@see AuditLogger})。 */
class AuditLog extends Model
final class AuditLog extends Model
{
public const UPDATED_AT = null;

View File

@@ -5,7 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/** 币种枚举表 {@see currencies} */
class Currency extends Model
final class Currency extends Model
{
protected $fillable = [
'code',

View File

@@ -7,7 +7,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
/** 彩票期号 {@see draws} */
class Draw extends Model
final class Draw extends Model
{
protected $fillable = [
'draw_no',

View File

@@ -4,11 +4,11 @@ namespace App\Models;
use App\Lottery\DrawResultBatchStatus;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 开奖结果批次(含 RNG 种子摘要、审核人) {@see draw_result_batches} */
class DrawResultBatch extends Model
final class DrawResultBatch extends Model
{
public $timestamps = true;

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 单条中奖号码行(与界面文档奖项分区对应) {@see draw_result_items} */
class DrawResultItem extends Model
final class DrawResultItem extends Model
{
public const UPDATED_AT = null;

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 单注对 Jackpot 的蓄水 {@see jackpot_contributions} */
class JackpotContribution extends Model
final class JackpotContribution extends Model
{
protected $fillable = [
'jackpot_pool_id',

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** Jackpot 爆池派发记录 {@see jackpot_payout_logs} */
class JackpotPayoutLog extends Model
final class JackpotPayoutLog extends Model
{
public const UPDATED_AT = null;

View File

@@ -3,11 +3,11 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** Jackpot 奖池配置与当前水位 {@see jackpot_pools} */
class JackpotPool extends Model
final class JackpotPool extends Model
{
protected $fillable = [
'currency_code',

View File

@@ -6,7 +6,7 @@ use App\Services\LotterySettings;
use Illuminate\Database\Eloquent\Model;
/** 运行期 KV 配置行,对应表 lottery_settings读业务请优先用 {@see LotterySettings})。 */
class LotterySetting extends Model
final class LotterySetting extends Model
{
protected $fillable = [
'setting_key',

View File

@@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
*
* `odds_value`:整数,**赔率乘数 × 10000**(例如 19500 表示 1.9500 倍)。
*/
class OddsItem extends Model
final class OddsItem extends Model
{
protected $fillable = [
'version_id',

View File

@@ -4,11 +4,11 @@ namespace App\Models;
use App\Lottery\ConfigVersionStatus;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** {@see odds_versions} */
class OddsVersion extends Model
final class OddsVersion extends Model
{
protected $fillable = [
'version_no',
@@ -29,7 +29,7 @@ class OddsVersion extends Model
protected static function booted(): void
{
static::saving(function (OddsVersion $m): void {
self::saving(function (OddsVersion $m): void {
if ($m->status === null || $m->status === '') {
$m->status = ConfigVersionStatus::Draft->value;
}

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** {@see play_config_items} — 与 {@see PlayType::play_code} 对齐。 */
class PlayConfigItem extends Model
final class PlayConfigItem extends Model
{
protected $fillable = [
'version_id',

View File

@@ -4,11 +4,11 @@ namespace App\Models;
use App\Lottery\ConfigVersionStatus;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** {@see play_config_versions} */
class PlayConfigVersion extends Model
final class PlayConfigVersion extends Model
{
protected $fillable = [
'version_no',
@@ -29,7 +29,7 @@ class PlayConfigVersion extends Model
protected static function booted(): void
{
static::saving(function (PlayConfigVersion $m): void {
self::saving(function (PlayConfigVersion $m): void {
if ($m->status === null || $m->status === '') {
$m->status = ConfigVersionStatus::Draft->value;
}

View File

@@ -5,7 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/** 玩法主数据目录 {@see play_types}(与版本化配置 items 通过 play_code 关联)。 */
class PlayType extends Model
final class PlayType extends Model
{
protected $fillable = [
'play_code',

View File

@@ -8,7 +8,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
/**
* 主站玩家在本地映射账号(表 players SSO JWT site_code + site_player_id 对应。
*/
class Player extends Model
final class Player extends Model
{
protected $fillable = [
'site_code',

View File

@@ -8,7 +8,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* 彩票侧余额(表 player_wallets player + wallet_type + currency 唯一。
*/
class PlayerWallet extends Model
final class PlayerWallet extends Model
{
protected $fillable = [
'player_id',

View File

@@ -5,7 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class ReconcileItem extends Model
final class ReconcileItem extends Model
{
protected $table = 'reconcile_items';

View File

@@ -3,10 +3,10 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class ReconcileJob extends Model
final class ReconcileJob extends Model
{
protected $table = 'reconcile_jobs';

View File

@@ -5,7 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class ReportJob extends Model
final class ReportJob extends Model
{
protected $table = 'report_jobs';

View File

@@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
*
* `cap_amount`:与钱包一致的最小货币单位(整数)。
*/
class RiskCapItem extends Model
final class RiskCapItem extends Model
{
protected $fillable = [
'version_id',

View File

@@ -4,11 +4,11 @@ namespace App\Models;
use App\Lottery\ConfigVersionStatus;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** {@see risk_cap_versions} */
class RiskCapVersion extends Model
final class RiskCapVersion extends Model
{
protected $fillable = [
'version_no',
@@ -29,7 +29,7 @@ class RiskCapVersion extends Model
protected static function booted(): void
{
static::saving(function (RiskCapVersion $m): void {
self::saving(function (RiskCapVersion $m): void {
if ($m->status === null || $m->status === '') {
$m->status = ConfigVersionStatus::Draft->value;
}

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 赔付池事实表 {@see risk_pools} */
class RiskPool extends Model
final class RiskPool extends Model
{
protected $fillable = [
'draw_id',

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 风险池占用日志 {@see risk_pool_lock_logs} */
class RiskPoolLockLog extends Model
final class RiskPoolLockLog extends Model
{
public $timestamps = false;

View File

@@ -4,11 +4,11 @@ namespace App\Models;
use App\Lottery\SettlementBatchStatus;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 单期单次结算批次 {@see settlement_batches} */
class SettlementBatch extends Model
final class SettlementBatch extends Model
{
protected $fillable = [
'draw_id',

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 注项展开组合 {@see ticket_combinations} */
class TicketCombination extends Model
final class TicketCombination extends Model
{
public $timestamps = false;

View File

@@ -3,12 +3,12 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 注项明细 {@see ticket_items} */
class TicketItem extends Model
final class TicketItem extends Model
{
protected $fillable = [
'ticket_no',

View File

@@ -3,11 +3,11 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 下注订单头 {@see ticket_orders} */
class TicketOrder extends Model
final class TicketOrder extends Model
{
protected $fillable = [
'order_no',

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 注单项结算明细 {@see ticket_settlement_details} */
class TicketSettlementDetail extends Model
final class TicketSettlementDetail extends Model
{
protected $fillable = [
'settlement_batch_id',

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 主站 ↔ 彩票划转订单 {@see transfer_orders} */
class TransferOrder extends Model
final class TransferOrder extends Model
{
protected $fillable = [
'transfer_no',

View File

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/** 彩票钱包流水 {@see wallet_txns} */
class WalletTxn extends Model
final class WalletTxn extends Model
{
protected $fillable = [
'txn_no',