訂單配送訂閱消息參數(shù)有誤修改
修改文件:app\services\order\StoreOrderDeliveryServices
修改方法:doDelivery()
public function doDelivery(int $id, $orderInfo, array $data)
{
$type = (int)$data['type'];
unset($data['type']);
//獲取購物車內(nèi)的商品標(biāo)題
/** @var StoreOrderCartInfoServices $orderInfoServices */
$orderInfoServices = app()->make(StoreOrderCartInfoServices::class);
$storeName = $orderInfoServices->getCarIdByProductTitle((int)$orderInfo['id']);
//修改返回?cái)?shù)據(jù)
$res = [];
switch ($type) {
case 1://快遞發(fā)貨
$res = $this->orderDeliverGoods($id, $data, $orderInfo, $storeName);
if (isset($res['kuaidinum']) && $res['kuaidinum']) {
$data['delivery_id'] = $res['kuaidinum'];
}
break;
case 2://配送
$data['delivery_name'] = $data['sh_delivery_name'];
$data['delivery_id'] = $data['sh_delivery_id'];
$data['delivery_uid'] = $data['sh_delivery_uid'];
$this->orderDelivery($id, $data, $orderInfo);
break;
case 3://虛擬發(fā)貨
$this->orderVirtualDelivery($id, $data);
break;
case 4://門店收銀訂單自動(dòng)發(fā)貨
$this->dao->update($orderInfo['id'], ['delivery_type' => 'cashier']);
/** @var StoreOrderStatusServices $statusService */
$statusService = app()->make(StoreOrderStatusServices::class);
$statusService->save([
'oid' => $orderInfo['id'],
'change_type' => 'delivery_cashier',
'change_message' => '門店收銀臺(tái)核銷',
'change_time' => time()
]);
break;
default:
throw new ValidateException('暫時(shí)不支持其他發(fā)貨類型');
}
//跟新完成后重新賦值訂單信息
$orderInfo = $this->dao->get($id, ['*'], ['pink']);
event('order.delivery', [$orderInfo, $storeName, $data, $type]);
return $res;
}
修改文件:app\services\order\StoreOrderDeliveryServices
修改方法:orderDelivery()
public function orderDelivery(int $id, array $data, $orderInfo = [])
{
$delivery_type = $data['delivery_type'] ?? 1;
$delivery_type = $delivery_type ? $delivery_type : 1;
$station_type = $data['station_type'] ?? 1;
unset($data['delivery_type'], $data['station_type']);
switch ($delivery_type) {
case 1://自己配送
if (!$data['delivery_name']) {
throw new ValidateException('請(qǐng)輸入送貨人姓名');
}
if (!$data['delivery_id']) {
throw new ValidateException('請(qǐng)輸入送貨人電話號(hào)碼');
}
if (!$data['delivery_uid']) {
throw new ValidateException('請(qǐng)輸入送貨人信息');
}
if (!check_phone($data['delivery_id'])) {
throw new ValidateException('請(qǐng)輸入正確的送貨人電話號(hào)碼');
}
//獲取核銷碼
/** @var StoreOrderCreateServices $storeOrderCreateService */
$storeOrderCreateService = app()->make(StoreOrderCreateServices::class);
$data['verify_code'] = $storeOrderCreateService->getStoreCode();
$data['delivery_type'] = 'send';
break;
case 2://第三方配送
if (!isset($data['cargo_weight']) || !$data['cargo_weight']) {
throw new ValidateException('請(qǐng)?zhí)顚懪渌蜕唐分亓?);
}
$data['delivery_type'] = 'city_delivery';
/** @var StoreDeliveryOrderServices $storeDeliverOrderServices */
$storeDeliverOrderServices = app()->make(StoreDeliveryOrderServices::class);
$storeDeliverOrderServices->create($id, $data, $station_type, $orderInfo);
break;
}
$data['status'] = 1;
unset($data['sh_delivery_name'], $data['sh_delivery_id'], $data['sh_delivery_uid'], $data['delivery_remark']);
/** @var StoreOrderStatusServices $services */
$services = app()->make(StoreOrderStatusServices::class);
$this->transaction(function () use ($id, $data, $services, $delivery_type, $station_type) {
//修改訂單發(fā)貨信息
$this->dao->update($id, $data);
if ($delivery_type == 1) {
$message = '已配送 發(fā)貨人:' . $data['delivery_name'] . ' 發(fā)貨人電話:' . $data['delivery_id'];
} else {
$message = '已'. ($station_type == 1 ? '達(dá)達(dá)' : 'UU跑腿') .'同城配送';
}
//記錄訂單狀態(tài)
$services->save([
'oid' => $id,
'change_type' => $delivery_type == 1 ? 'delivery' : 'city_delivery',
'change_time' => time(),
'change_message' => $message
]);
});
return true;
}