83 lines
2.2 KiB
PHP
83 lines
2.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* 文件功能:后台座驾独立管理控制器。
|
|
*
|
|
* 提供座驾列表、新增、编辑、上下架切换与删除能力,不依赖商店商品模块。
|
|
*/
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\StoreRideRequest;
|
|
use App\Http\Requests\UpdateRideRequest;
|
|
use App\Models\Ride;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\View\View;
|
|
|
|
/**
|
|
* 后台座驾管理控制器
|
|
* 负责独立 rides 表的后台管理流程。
|
|
*/
|
|
class RideController extends Controller
|
|
{
|
|
/**
|
|
* 显示座驾管理列表页。
|
|
*/
|
|
public function index(): View
|
|
{
|
|
$rides = Ride::query()
|
|
->orderBy('sort_order')
|
|
->orderBy('id')
|
|
->get();
|
|
|
|
return view('admin.rides.index', compact('rides'));
|
|
}
|
|
|
|
/**
|
|
* 新增座驾(仅 id=1 超级站长)。
|
|
*/
|
|
public function store(StoreRideRequest $request): RedirectResponse
|
|
{
|
|
$data = $request->validated();
|
|
Ride::create($data);
|
|
|
|
return redirect()->route('admin.rides.index')->with('success', '座驾「'.$data['name'].'」创建成功!');
|
|
}
|
|
|
|
/**
|
|
* 更新座驾信息。
|
|
*/
|
|
public function update(UpdateRideRequest $request, Ride $ride): RedirectResponse
|
|
{
|
|
$ride->update($request->validated());
|
|
|
|
return redirect()->route('admin.rides.index')->with('success', '座驾「'.$ride->name.'」更新成功!');
|
|
}
|
|
|
|
/**
|
|
* 切换座驾上下架状态。
|
|
*/
|
|
public function toggle(Ride $ride): RedirectResponse
|
|
{
|
|
$ride->update(['is_active' => ! $ride->is_active]);
|
|
$status = $ride->is_active ? '上架' : '下架';
|
|
|
|
return redirect()->route('admin.rides.index')->with('success', "「{$ride->name}」已{$status}。");
|
|
}
|
|
|
|
/**
|
|
* 删除座驾(仅 id=1 超级站长)。
|
|
*/
|
|
public function destroy(Ride $ride): RedirectResponse
|
|
{
|
|
abort_unless(Auth::id() === 1, 403);
|
|
|
|
$name = $ride->name;
|
|
$ride->delete();
|
|
|
|
return redirect()->route('admin.rides.index')->with('success', "「{$name}」已删除。");
|
|
}
|
|
}
|