CacheShelfController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\Services\CacheShelfService;
  5. use App\Station;
  6. use Illuminate\Contracts\Foundation\Application;
  7. use Illuminate\Contracts\View\Factory;
  8. use Illuminate\Database\Eloquent\Builder;
  9. use Illuminate\Http\Request;
  10. use Illuminate\View\View;
  11. class CacheShelfController extends Controller
  12. {
  13. use AsyncResponse;
  14. /**
  15. * 缓存货架
  16. * @return Application|Factory|View
  17. */
  18. public function index()
  19. {
  20. $stations = Station::query()->with('stationType:name', 'parent:name')->whereHas('stationType', function ($query) {
  21. /** @var Builder $query */
  22. $query->where('name', '缓存架');
  23. })->paginate(100);
  24. return view('station.cachingShelf.list.index', compact('stations'));
  25. }
  26. /**
  27. * 获取缓存货架上的任务列表
  28. * @param Request $request
  29. * @param string $id
  30. * @param CacheShelfService $service
  31. */
  32. public function getTasksApi(Request $request,string $id,CacheShelfService $service)
  33. {
  34. /** @var Station $station */
  35. $service->getChildStation($id);
  36. $this->success($station['grids']);
  37. }
  38. /**
  39. * 缓存架亮灯
  40. * @param Request $request
  41. * @param CacheShelfService $service
  42. * @return mixed
  43. */
  44. public function lightOnApi(Request $request,CacheShelfService $service)
  45. {
  46. $stationCode = $request['stationCode'];
  47. $materialBoxCode = $request['materialBoxCode'];
  48. return $service->createStationTask($stationCode,$materialBoxCode);
  49. }
  50. }