You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.1 KiB

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Services\WechatHomeVisitService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class SystemSettingController extends Controller
{
public function visitStats(WechatHomeVisitService $visits): JsonResponse
{
return response()->json($visits->visitStatsPayload());
}
public function updateVisitStats(Request $request, WechatHomeVisitService $visits): JsonResponse
{
$this->ensureSuperAdmin($request);
$data = $request->validate([
'display_total' => ['required', 'integer', 'min:0'],
'display_today' => ['required', 'integer', 'min:0'],
]);
$visits->updateDisplayValues(
(int) $data['display_total'],
(int) $data['display_today'],
);
return response()->json($visits->visitStatsPayload());
}
private function ensureSuperAdmin(Request $request): void
{
abort_unless($request->user()?->isSuperAdmin(), 403, '仅超级管理员可操作');
}
}