OrderFreezeController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\OrderFreeze;
  5. class OrderFreezeController extends Controller
  6. {
  7. use AsyncResponse;
  8. public function index()
  9. {
  10. $this->gate("订单管理-自动冻结");
  11. $freezes = OrderFreeze::query()->with(["logistic:id,name","province:id,name","city:id,name","district:id,name","town:id,name","street:id,name"])
  12. ->orderByDesc("id")->where("status",0)
  13. ->paginate(request("paginate") ?? 50);
  14. return view("order.index.freeze",compact("freezes"));
  15. }
  16. public function store()
  17. {
  18. $this->gate("订单管理-自动冻结");
  19. $freeze = OrderFreeze::query()->where("logistic_id",request("logistic_id"))->where("status",0);
  20. if (request("province_id"))$freeze->where("province_id",request("province_id"));
  21. else $freeze->whereNull("province_id");
  22. if (request("city_id"))$freeze->where("city_id",request("city_id"));
  23. else $freeze->whereNull("city_id");
  24. if (request("district_id"))$freeze->where("district_id",request("district_id"));
  25. else $freeze->whereNull("district_id");
  26. if (request("town_id"))$freeze->where("town_id",request("town_id"));
  27. else $freeze->whereNull("town_id");
  28. if (request("street_id"))$freeze->where("street_id",request("street_id"));
  29. else $freeze->whereNull("street_id");
  30. $freeze = $freeze->first();
  31. if ($freeze && $freeze->id!=request("id"))$this->error("已存在冻结选项,无需重复录入");
  32. $obj = [
  33. "logistic_id" => request("logistic_id"),
  34. "province_id" => request("province_id"),
  35. "city_id" => request("city_id"),
  36. "district_id" => request("district_id"),
  37. "town_id" => request("town_id"),
  38. "street_id" => request("street_id"),
  39. ];
  40. if (request("id")){
  41. $freeze = OrderFreeze::query()->find(request("id"));
  42. $freeze->update($obj);
  43. }else $freeze = OrderFreeze::query()->create($obj);
  44. app("OrderFreezeService")->refreshFreezes();
  45. $freeze->load(["logistic:id,name","province:id,name","city:id,name","district:id,name","town:id,name","street:id,name"]);
  46. $this->success($freeze);
  47. }
  48. public function delFreeze()
  49. {
  50. $this->gate("订单管理-自动冻结");
  51. if (!request("id"))$this->error("非法参数");
  52. OrderFreeze::query()->where("id",request("id"))->update(["status"=>1]);
  53. app("OrderFreezeService")->refreshFreezes();
  54. $this->success();
  55. }
  56. }