TestController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\Components\ErrorPush;
  5. use App\ErrorTemp;
  6. use App\Feature;
  7. use App\MaterialBoxModel;
  8. use App\Owner;
  9. use App\OwnerFeeDetail;
  10. use App\OwnerPriceOperation;
  11. use App\RejectedBill;
  12. use App\Services\ForeignHaiRoboticsService;
  13. use App\Station;
  14. use App\StationTask;
  15. use App\StationTaskMaterialBox;
  16. use App\TaskTransaction;
  17. use App\Unit;
  18. use Illuminate\Http\Request;
  19. use Illuminate\Support\Facades\Cache;
  20. use Illuminate\Support\Facades\DB;
  21. use Illuminate\Support\Facades\Http;
  22. class TestController extends Controller
  23. {
  24. use AsyncResponse,ErrorPush;
  25. const ASNREFERENCE_2 = 'ASNREFERENCE2';
  26. private $data = [];
  27. public function __construct()
  28. {
  29. $this->data["active_test"] = "active";
  30. }
  31. public function method(Request $request, $method)
  32. {
  33. return call_user_func([$this, $method], $request);
  34. }
  35. public function lightUp()
  36. {
  37. app("CacheShelfService")->lightUp('HAIB1-02-02','3','0');
  38. }
  39. public function lightOff()
  40. {
  41. $params = [
  42. "areaCode" => "1004",
  43. 'locCode' => "HAIB1-02-02",
  44. 'PTLAction' => 0,
  45. ];
  46. $response = Http::post(config('api.haiq.storage.light'), $params);
  47. return json_decode($response->body());
  48. }
  49. private $key = "CACHE_SHELF_AVAILABLE";
  50. public function test()
  51. {
  52. TaskTransaction::query()->where("id",23)->update([
  53. "to_station_id" => 10,
  54. "status" => 0,
  55. "updated_at" => date("Y-m-d H:i:s")
  56. ]);
  57. TaskTransaction::query()->where("id",27)->update([
  58. "to_station_id" => 24,
  59. "status" => 0,
  60. "updated_at" => date("Y-m-d H:i:s")
  61. ]);
  62. dd("OK");
  63. $ar = StationTaskMaterialBox::query()->whereIn("id",[66124,66125,66126,66127,66128])->get();
  64. foreach ($ar as $stationTaskMaterialBox){
  65. $stationTaskMaterialBox->materialBox['status']='在缓存架';
  66. $stationTaskMaterialBox->materialBox->update();
  67. $stationTaskMaterialBox->loadMissing("station"); //提前加载站,后续都需要站信息来处理
  68. app("StorageService")->putCacheShelf($stationTaskMaterialBox);
  69. app("StorageService")->releaseOccupation($stationTaskMaterialBox); //释放库位占用
  70. $this->set($stationTaskMaterialBox,[
  71. 'id' => $stationTaskMaterialBox['station_id'],
  72. 'status' => '完成',
  73. ]);
  74. if (!$stationTaskMaterialBox->station_task_id)return;
  75. $task = StationTaskMaterialBox::query()->select(DB::raw(1))
  76. ->where("station_task_id",$stationTaskMaterialBox->station_task_id)
  77. ->where("status","!=","完成")->first();
  78. if (!$task)StationTask::query()->where("id",$stationTaskMaterialBox->station_task_id)
  79. ->update(["status"=>"完成"]);
  80. }
  81. }
  82. function set($target,array $kvPairs){
  83. $update = $target->update($kvPairs);
  84. Cache::forget($this->cachingKey($kvPairs));
  85. if(isset($kvPairs['id'])){
  86. Cache::forget($this->cachingKey(['id'=>$kvPairs['id']]));
  87. }
  88. return $update;
  89. }
  90. protected $modelClass=StationTaskMaterialBox::class;
  91. protected function cachingKey(array $kvPairs): string
  92. {
  93. ksort($kvPairs);
  94. return $this->modelClass.md5(json_encode($kvPairs));
  95. }
  96. }