TerminalPrinterController.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\Printer\TerminalPrinterRequest;
  4. use App\Logistic;
  5. use App\Terminal;
  6. use App\TerminalPrinter;
  7. class TerminalPrinterController extends Controller
  8. {
  9. public function index(TerminalPrinterRequest $request)
  10. {
  11. // if (!Gate::allows('基础设置-快递打印-打印机-添加')) return redirect('/');
  12. $terminalPrinters = TerminalPrinter::query()->with('terminal','logistics')->orderByDesc('terminal_id')->orderByDesc('id')->paginate($request['paginate'] ?? 50);
  13. $terminals = Terminal::query()->get();
  14. $logistics = Logistic::query()->get();
  15. return view('maintenance/expressPrinting/setting/printer/index',
  16. compact('terminalPrinters','terminals','logistics')
  17. );
  18. }
  19. public function storeApi(TerminalPrinterRequest $request): array
  20. {
  21. // if (!Gate::allows('基础设置-快递打印-打印机-添加'))
  22. // return ['success' => false, 'message' => '没有对应权限'];
  23. $terminal_printer = TerminalPrinter::query()->create($request->all());
  24. $terminal_printer->logistics()->attach($request['logistic_ids']);
  25. $terminal_printer->loadMissing('terminal','logistics');
  26. return ['success' => true, 'data' => $terminal_printer];
  27. }
  28. public function destroyApi($id): array
  29. {
  30. // if (!Gate::allows('基础设置-快递打印-打印机-删除'))
  31. // return ['success' => false, 'message' => '没有对应权限'];
  32. $terminal_printer = TerminalPrinter::query()->find($id);
  33. if (!$terminal_printer) return ['success' => false , 'message' => '对应的打印机不存在'];
  34. $terminal_printer->logistics()->detach();
  35. $terminal_printer->delete();
  36. return ['success' => true];
  37. }
  38. public function updateApi(TerminalPrinterRequest $request): array
  39. {
  40. // if (!Gate::allows('基础设置-快递打印-打印机-编辑'))
  41. // return ['success' => false, 'message' => '没有对应权限'];
  42. $terminal_printer = TerminalPrinter::query()->find($request['id']);
  43. if (!$terminal_printer) return ['success' => false, 'message' => '对应的打印机不存在'];
  44. $terminal_printer->logistics()->sync($request['logistic_ids']);
  45. $terminal_printer->update($request->all());
  46. $terminal_printer->load(['terminal','logistics']);
  47. return ['success' => true, 'data' => $terminal_printer];
  48. }
  49. }