OrderFreezeService.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. protected $modelClass=OrderFreeze::class;
  9. /**
  10. * 获取冻结信息
  11. */
  12. public function getFreezes()
  13. {
  14. return app(CacheService::class)->getOrExecute("order_freeze_condition_pool",function (){
  15. return $this->get();
  16. },config("cache.expirations.rarelyChange"));
  17. }
  18. /**
  19. * 刷新冻结信息
  20. */
  21. public function refreshFreezes()
  22. {
  23. if (Cache::has("order_freeze_condition_pool")) Cache::put("order_freeze_condition_pool",$this->get());
  24. }
  25. /**
  26. * 获取所有冻结条件
  27. *
  28. */
  29. public function get()
  30. {
  31. return \App\OrderFreeze::query()
  32. ->with(["logistic:id,name","province:id,name","city:id,name","district:id,name","town:id,name","street:id,name"])
  33. ->where("status",0)
  34. ->get(["logistic_id","province_id","city_id","district_id","town_id","street_id","thawed_at"])->each(function (&$freeze){
  35. $freeze["logistic_name"] = $freeze->logistic ? $freeze->logistic->name : '';
  36. $freeze["province_name"] = $freeze->province ? $freeze->province->name : '';
  37. $freeze["city_name"] = $freeze->city ? $freeze->city->name : '';
  38. $freeze["district_name"] = $freeze->district ? $freeze->district->name : '';
  39. $freeze["town_name"] = $freeze->town ? $freeze->town->name : '';
  40. $freeze["street_name"] = $freeze->street ? $freeze->street->name : '';
  41. unset($freeze->logistic,$freeze->province,$freeze->city,$freeze->district,$freeze->town,$freeze->street);
  42. })->toArray();
  43. }
  44. }