OrderFreezeService.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Services;
  3. use App\Traits\ServiceAppAop;
  4. use Illuminate\Support\Facades\Cache;
  5. class OrderFreezeService
  6. {
  7. use ServiceAppAop;
  8. /**
  9. * 获取冻结信息
  10. */
  11. public function getFreezes()
  12. {
  13. return app(CacheService::class)->getOrExecute("order_freeze_condition_pool",function (){
  14. return \App\OrderFreeze::query()
  15. ->with(["logistic:id,name","province:id,name","city:id,name","location:id,name"])
  16. ->where("status",0)
  17. ->get(["logistic_id","province_id","city_id","location_id"])->each(function (&$freeze){
  18. $freeze["logistic_name"] = $freeze->logistic ? $freeze->logistic->name : '';
  19. $freeze["province_name"] = $freeze->province ? $freeze->province->name : '';
  20. $freeze["city_name"] = $freeze->city ? $freeze->city->name : '';
  21. $freeze["location_name"] = $freeze->location ? $freeze->location->name : '';
  22. unset($freeze->logistic,$freeze->province,$freeze->city,$freeze->location);
  23. })->toArray();
  24. },config("cache.expirations.rarelyChange"));
  25. }
  26. /**
  27. * 刷新冻结信息
  28. */
  29. public function refreshFreezes()
  30. {
  31. if (Cache::has("order_freeze_condition_pool")){
  32. $val = \App\OrderFreeze::query()
  33. ->with(["logistic:id,name", "province:id,name", "city:id,name", "location:id,name"])
  34. ->where("status", 0)
  35. ->get()->each(function (&$freeze) {
  36. $freeze["logistic_name"] = $freeze->logistic ? $freeze->logistic->name : '';
  37. $freeze["province_name"] = $freeze->province ? $freeze->province->name : '';
  38. $freeze["city_name"] = $freeze->city ? $freeze->city->name : '';
  39. $freeze["location_name"] = $freeze->location ? $freeze->location->name : '';
  40. });
  41. Cache::put("order_freeze_condition_pool",$val);
  42. }
  43. }
  44. }