CacheShelfController.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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')->whereNull('parent_id')->whereIn('station_type_id', function ($query) {
  21. /** @var Builder $query */
  22. $query->from('station_types')->selectRaw('id')->where('name', '缓存架');
  23. })->paginate(10);
  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. $station = $service->getChildStation($id);
  36. $this->success($station);
  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. if($request['stationCode'] && $request['materialBoxCode'])
  47. return $service->createStationTask($request['stationCode'],$request['materialBoxCode']);
  48. return ['success' => false,'message' => '参数错误'];
  49. }
  50. /**
  51. * @param Request $request
  52. * @return array|bool[]
  53. */
  54. public function clearTaskApi(Request $request): array
  55. {
  56. $code = $request['station'];
  57. return app(CacheShelfService::class)->clearTask($code);
  58. }
  59. }