execute(function () use ($request, $service) { $data = $request->validate([ 'page' => ['nullable', 'integer', 'min:1'], 'limit' => ['nullable', 'integer', 'min:1', 'max:100'], 'keyword' => ['nullable', 'string', 'max:255'], 'status' => ['nullable', 'in:0,1'], 'usage' => ['nullable', 'in:in_use,available'], 'agent_id' => ['nullable', 'integer'], 'agent_username' => ['nullable', 'string', 'max:64'], ]); return $service->paginate($data); }); } public function options(AgentDomainPoolService $service) { return $this->execute(fn () => $service->options()); } public function create(Request $request, AgentDomainPoolService $service) { return $this->execute(function () use ($request, $service) { $data = $request->validate([ // 数组,或多行文本(每行一个) 'domains' => ['required'], 'remark' => ['nullable', 'string', 'max:255'], ]); $domains = is_array($data['domains']) ? $data['domains'] : preg_split('/[\r\n,,]+/u', (string) $data['domains']); return $service->create($domains, trim((string) ($data['remark'] ?? '')), (int) request()->user->id); }); } public function update(Request $request, AgentDomainPoolService $service) { return $this->execute(function () use ($request, $service) { $data = $request->validate([ 'id' => ['required', 'integer'], 'domain' => ['nullable', 'string', 'max:255'], 'status' => ['nullable', 'in:0,1'], 'remark' => ['nullable', 'string', 'max:255'], ]); return $service->update((int) $data['id'], $data); }); } public function delete(Request $request, AgentDomainPoolService $service) { return $this->execute(function () use ($request, $service) { $data = $request->validate(['id' => ['required', 'integer']]); $service->delete((int) $data['id']); return []; }); } }