TerminalController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. public function index(TerminalRequest $request)
  12. {
  13. if (!Gate::allows('基础设置-快递打印-终端'))return redirect("/");
  14. $terminals = Terminal::query()->orderByDesc('id')->paginate($request['paginate'] ?? 50);
  15. return view('maintenance.expressPrinting.setting.terminal.index',
  16. compact('terminals')
  17. );
  18. }
  19. public function storeApi(TerminalRequest $request): array
  20. {
  21. // if (!Gate::allows('基础设置-快递打印-终端-添加'))
  22. // return ['success' => false, 'message' => '没有对应权限'];
  23. $terminal = Terminal::query()->create($request->all());
  24. return ['success' => true, 'data' => $terminal];
  25. }
  26. public function destroyApi($id): array
  27. {
  28. if (!Gate::allows('基础设置-快递打印-终端-删除'))
  29. return ['success' => false, 'message' => '没有对应权限'];
  30. $terminal = Terminal::query()->find($id);
  31. if (!$terminal) return ['success' => false , 'message' => '对应的终端不存在'];
  32. $terminal->delete();
  33. return ['success' => true];
  34. }
  35. public function updateApi(TerminalRequest $request): array
  36. {
  37. if (!Gate::allows('基础设置-快递打印-终端-编辑'))
  38. return ['success' => false, 'message' => '没有对应权限'];
  39. $terminal = Terminal::query()->find($request['id']);
  40. if (!$terminal) return ['success' => false, 'message' => '对应的终端不存在'];
  41. $terminal->update($request->all());
  42. return ['success' => true, 'data' => $terminal];
  43. }
  44. public function getTerminalApi($id) :array
  45. {
  46. $terminal = Terminal::query()->with('printers')->find($id);
  47. if (!$terminal)return ['success' => false,'message' => 'was没有记录该ip下的打印机'];
  48. return ['success' => true,'data' => $terminal];
  49. }
  50. public function getTerminalByIPApi(Request $request): array
  51. {
  52. $clientIp = $request->getClientIp();
  53. $terminal = Terminal::query()->with('printers')->where('ip')->first();
  54. return ['success' => true, 'data' => $terminal];
  55. }
  56. }