Express.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace addons\shopro\controller\order;
  3. use addons\shopro\controller\Common;
  4. use app\admin\model\shopro\order\Express as OrderExpressModel;
  5. use addons\shopro\library\express\Express as ExpressLib;
  6. use think\Db;
  7. //物流
  8. class Express extends Common
  9. {
  10. protected $noNeedLogin = ['push'];
  11. protected $noNeedRight = ['*'];
  12. public function index()
  13. {
  14. $user = auth_user();
  15. $order_id = $this->request->param('order_id');
  16. // 更新包裹信息(5分钟缓存)
  17. (new ExpressLib)->updateOrderExpress($order_id);
  18. $expresses = OrderExpressModel::with(['logs'/*, 'items' => function ($query) use ($order_id) {
  19. return $query->where('order_id', $order_id);
  20. }*/])->where('user_id', $user->id)->where('order_id', $order_id)->select();
  21. $address = Db::name('shopro_order_address')->where('order_id',$order_id)->find();
  22. $order_sn = Db::name('shopro_order')->where('id',$order_id)->value('order_sn');
  23. $result = [
  24. 'order_sn' => $order_sn,
  25. 'address' => $address,
  26. 'expresses' => $expresses,
  27. ];
  28. $this->success('获取成功', $result);
  29. }
  30. public function detail()
  31. {
  32. $user = auth_user();
  33. $id = $this->request->param('id');
  34. $order_id = $this->request->param('order_id');
  35. // 更新包裹信息(5分钟缓存)
  36. (new ExpressLib)->updateOrderExpress($order_id);
  37. $express = OrderExpressModel::with(['logs', 'items' => function ($query) use ($order_id) {
  38. return $query->where('order_id', $order_id);
  39. }])->where('user_id', $user->id)->where('order_id', $order_id)->where('id', $id)->find();
  40. $this->success('获取成功', $express);
  41. }
  42. /**
  43. * 接受物流推送
  44. *
  45. * @param Request $request
  46. * @return void
  47. */
  48. public function push()
  49. {
  50. $data = $this->request->param();
  51. $expressLib = new ExpressLib();
  52. $result = $expressLib->push($data);
  53. return response($result, 200, [], 'json');
  54. }
  55. }