chore: init saasshop repo + sql migrations runner + gitee go

This commit is contained in:
萝卜
2026-03-10 11:31:02 +00:00
commit 50f15cdea8
210 changed files with 29534 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Http\Controllers\Concerns;
use App\Models\Admin;
use App\Models\Merchant;
use Illuminate\Http\Request;
trait ResolvesMerchantContext
{
protected function merchantId(Request $request): int
{
return (int) $request->session()->get('admin_merchant_id');
}
protected function merchant(Request $request): Merchant
{
return Merchant::query()->findOrFail($this->merchantId($request));
}
protected function merchantAdmin(Request $request): Admin
{
return Admin::query()->findOrFail((int) $request->session()->get('admin_id'));
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Http\Controllers\Concerns;
use App\Models\Admin;
use Illuminate\Http\Request;
trait ResolvesPlatformAdminContext
{
protected function platformAdmin(Request $request): ?Admin
{
$adminId = $request->session()->get('admin_id');
if (! $adminId) {
return null;
}
$admin = Admin::query()->find($adminId);
return $admin && $admin->isPlatformAdmin() ? $admin : null;
}
protected function platformAdminId(Request $request): ?int
{
return $this->platformAdmin($request)?->id;
}
protected function ensurePlatformAdmin(Request $request): Admin
{
$admin = $this->platformAdmin($request);
abort_unless($admin, 403, '当前账号没有总台管理访问权限');
return $admin;
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Http\Controllers\Concerns;
use App\Models\Admin;
use App\Models\Merchant;
use Illuminate\Http\Request;
trait ResolvesSiteContext
{
protected function siteId(Request $request): int
{
return (int) ($request->session()->get('admin_site_id') ?: $request->session()->get('admin_merchant_id'));
}
protected function site(Request $request): Merchant
{
return Merchant::query()->findOrFail($this->siteId($request));
}
protected function siteAdmin(Request $request): Admin
{
return Admin::query()->findOrFail((int) $request->session()->get('admin_id'));
}
}