63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* 文件功能:百家乐买单活动后台控制器
|
|
*
|
|
* 提供聊天室管理员在输入框上方快捷创建活动、
|
|
* 查看当前活动并手动结束活动的 JSON 接口。
|
|
*/
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\StoreBaccaratLossCoverEventRequest;
|
|
use App\Models\BaccaratLossCoverEvent;
|
|
use App\Services\BaccaratLossCoverService;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class BaccaratLossCoverEventController extends Controller
|
|
{
|
|
/**
|
|
* 注入百家乐买单活动服务。
|
|
*/
|
|
public function __construct(
|
|
private readonly BaccaratLossCoverService $lossCoverService,
|
|
) {}
|
|
|
|
/**
|
|
* 创建新的百家乐买单活动。
|
|
*/
|
|
public function store(StoreBaccaratLossCoverEventRequest $request): JsonResponse
|
|
{
|
|
try {
|
|
$event = $this->lossCoverService->createEvent($request->user(), $request->validated());
|
|
} catch (\RuntimeException $exception) {
|
|
return response()->json([
|
|
'ok' => false,
|
|
'message' => $exception->getMessage(),
|
|
], 422);
|
|
}
|
|
|
|
return response()->json([
|
|
'ok' => true,
|
|
'message' => "活动「{$event->title}」已创建成功。",
|
|
'event_id' => $event->id,
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 手动结束或取消一场百家乐买单活动。
|
|
*/
|
|
public function close(Request $request, BaccaratLossCoverEvent $event): JsonResponse
|
|
{
|
|
$event = $this->lossCoverService->forceCloseEvent($event, $request->user());
|
|
|
|
return response()->json([
|
|
'ok' => true,
|
|
'message' => '活动状态已更新。',
|
|
'status' => $event->status,
|
|
]);
|
|
}
|
|
}
|