| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- namespace App\Http\Controllers\admin;
- use App\Http\Controllers\AgentApiController;
- use App\Services\Agent\AgentDomainPoolService;
- use Illuminate\Http\Request;
- /** 总后台「代理域名管理」:可用域名、使用情况、绑定到哪个代理。 */
- class AgentDomainPool extends AgentApiController
- {
- public function index(Request $request, AgentDomainPoolService $service)
- {
- return $this->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 [];
- });
- }
- }
|