TerminalController.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\Http\Requests\Printer\TerminalRequest;
  5. use App\Http\Requests\Request;
  6. use App\Terminal;
  7. use Illuminate\Support\Facades\Gate;
  8. class TerminalController extends Controller
  9. {
  10. use AsyncResponse;
  11. // index 页面
  12. public function index(TerminalRequest $request)
  13. {
  14. if (Gate::denies('基础设置-快递打印-终端'))return redirect("/");
  15. $terminals = Terminal::query()->orderByDesc('id')->paginate($request['paginate'] ?? 50);
  16. return view('maintenance.expressPrinting.setting.terminal.index',
  17. compact('terminals')
  18. );
  19. }
  20. public function storeApi(TerminalRequest $request): array
  21. {
  22. if (Gate::denies('基础设置-快递打印-终端-添加'))
  23. return ['success' => false, 'message' => '没有对应权限'];
  24. $terminal = Terminal::query()->create($request->all());
  25. return ['success' => true, 'data' => $terminal];
  26. }
  27. public function destroyApi($id): array
  28. {
  29. if (Gate::denies('基础设置-快递打印-终端-删除'))
  30. return ['success' => false, 'message' => '没有对应权限'];
  31. $terminal = Terminal::query()->find($id);
  32. if (!$terminal) return ['success' => false , 'message' => '对应的终端不存在'];
  33. $terminal->delete();
  34. return ['success' => true];
  35. }
  36. public function updateApi(TerminalRequest $request): array
  37. {
  38. if (Gate::denies('基础设置-快递打印-终端-编辑'))
  39. return ['success' => false, 'message' => '没有对应权限'];
  40. $terminal = Terminal::query()->find($request['id']);
  41. if (!$terminal) return ['success' => false, 'message' => '对应的终端不存在'];
  42. $terminal->update($request->all());
  43. return ['success' => true, 'data' => $terminal];
  44. }
  45. public function getTerminalApi($id) :array
  46. {
  47. $terminal = Terminal::query()->with('printers')->find($id);
  48. if (!$terminal)return ['success' => false,'message' => 'was没有记录该ip下的打印机'];
  49. return ['success' => true,'data' => $terminal];
  50. }
  51. public function getTerminalByIPApi(Request $request): array
  52. {
  53. $clientIp = $request->getClientIp();
  54. $terminal = Terminal::query()->with('printers')->where('ip')->first();
  55. return ['success' => true, 'data' => $terminal];
  56. }
  57. }