訂單者查詢不出快遞信息或查詢報錯如下:
解決方法 :
1、修改app\common\repositories\store\order\StoreOrderRepository.php直接替換方法即可
public function express(int $orderId,? int $merId)
{
$order = $this->dao->get($orderId);
if ($merId && $order['mer_id'] != $merId) throw new ValidateException('訂單信息不存在');
if (!in_array($order['delivery_type'],[1,4])) throw new ValidateException('訂單狀態錯誤');
return ExpressService::express($order->delivery_id, $order->delivery_name, $order->user_phone);
}
2、修改app\controller\admin\order\Order.php 這里的參數傳入,或者直接替換整個方法
public function express($id)
{
if (!$this->repository->getWhereCount(['order_id' => $id, 'delivery_type' => 1]))
return app('json')->fail('訂單信息或狀態錯誤');
return app('json')->success($this->repository->express($id,null));
}
3、修改移動端app\controller\api\store\order\StoreOrder.php,替換整個方法
public function express($id)
{
$order = $this->repository->getWhere(['order_id' => $id, 'is_del' => 0]);
if (!$order)
return app('json')->fail('訂單不存在');
if (!$order->delivery_type || !$order->delivery_id)
return app('json')->fail('訂單未發貨');
$express = $this->repository->express($id,null);
$order->append(['orderProduct']);
return app('json')->success(compact('express', 'order'));
}
4、刪除crmeb\services\ExpressService.php部分驗證代碼
5、修改退款查詢快遞部分 app\common\repositories\store\order\StoreRefundOrderRepository.php,替換整個方法
public function express($ordertId)
{
$refundOrder = $this->dao->get($ordertId);
return ExpressService::express($refundOrder->delivery_id, $refundOrder->delivery_name, $refundOrder->delivery_phone);
}
然后重啟一下swoole服務