|
|
@@ -0,0 +1,85 @@
|
|
|
+<?php
|
|
|
+/**
|
|
|
+ * User: admin
|
|
|
+ * Date Time: 2022/7/24 22:03
|
|
|
+ */
|
|
|
+
|
|
|
+namespace bizGhs\express\services;
|
|
|
+
|
|
|
+use bizGhs\express\classes\DeliveryOrderClass;
|
|
|
+use bizHd\base\services\BaseService;
|
|
|
+use common\components\util;
|
|
|
+use Yii;
|
|
|
+class DeliveryOrderServices extends BaseService
|
|
|
+{
|
|
|
+ public static $baseFile = '\bizGhs\express\classes\DeliveryOrderClass';
|
|
|
+
|
|
|
+ //新增即时配送订单
|
|
|
+ public static function addOrder($sjId,$shopId,$expressId, $shopNo, $orderSn, $openId, $sender, $receiver, $cargo, $orderInfo, $shop)
|
|
|
+ {
|
|
|
+ $res = MiniExpressService::addOrder($expressId,$shopNo,$orderSn,$openId,$sender,$receiver,$cargo,$orderInfo,$shop);
|
|
|
+
|
|
|
+ $expressData = MiniExpressService::getExpressInfo($expressId);
|
|
|
+ $data = $res;
|
|
|
+ $data['sjId'] = $sjId;
|
|
|
+ $data['shopId'] = $shopId;
|
|
|
+ $data['orderSn'] = $orderSn;
|
|
|
+ $data['deliveryId'] = $expressData['deliveryId'];
|
|
|
+ $data['deliveryName'] = $expressData['deliveryName'];
|
|
|
+ $data['waybillId'] = $res['waybill_id'];
|
|
|
+ $data['orderStatus'] = $res['order_status'];
|
|
|
+ $data['finishCode'] = $res['finish_code'];
|
|
|
+ $data['pickupCode'] = $res['pickup_code'];
|
|
|
+ $data['dispatchDuration'] = $res['dispatch_duration'];
|
|
|
+ $order = DeliveryOrderClass::addOrder($data);
|
|
|
+ return $order;
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单状态变更
|
|
|
+ public static function updateOrder($shopId,$waybillId,$orderSn,array $data)
|
|
|
+ {
|
|
|
+ $orderStatus = $data['order_status'];
|
|
|
+ $actionMsg = $data['action_msg']??'';
|
|
|
+ $riderName = $data['rider_name']??'';
|
|
|
+ $ridePhone = $data['ride_phone']??'';
|
|
|
+ $expectedDeliveryTime = $data['expected_delivery_time']??false;
|
|
|
+ $isPhoneEncrypted = $data['expected_delivery_time']??false;
|
|
|
+ // 日志记录
|
|
|
+ Yii::info("订单状态变更 : waybillId". $waybillId . " data= " . json_encode($data));
|
|
|
+ if(!$orderStatus){
|
|
|
+ util::fail("订单状态错误");
|
|
|
+ }
|
|
|
+ $orderStatusMap = array_keys(MiniExpressService::$orderStatusMap);
|
|
|
+ if(!in_array($orderStatus,$orderStatusMap)){
|
|
|
+ util::fail("订单状态异常");
|
|
|
+ }
|
|
|
+ $upData = [];
|
|
|
+ $upData['orderStatus'] = $orderStatus;
|
|
|
+ if($actionMsg){
|
|
|
+ $upData['actionMsg'] = $actionMsg;
|
|
|
+ }
|
|
|
+ if($riderName){
|
|
|
+ $upData['riderName'] = $riderName;
|
|
|
+ }
|
|
|
+ if($ridePhone){
|
|
|
+ $upData['ridePhone'] = $ridePhone;
|
|
|
+ }
|
|
|
+ if($expectedDeliveryTime!==false){
|
|
|
+ $upData['expectedDeliveryTime'] = $expectedDeliveryTime;
|
|
|
+ }
|
|
|
+ if($isPhoneEncrypted!==false){
|
|
|
+ $upData['isPhoneEncrypted'] = $isPhoneEncrypted;
|
|
|
+ }
|
|
|
+ $where = [];
|
|
|
+ $where['shopId'] = $shopId;
|
|
|
+ $where['orderSn'] = $orderSn;
|
|
|
+ $where['waybillId'] = $waybillId;
|
|
|
+
|
|
|
+ $check = DeliveryOrderClass::getByCondition($where);
|
|
|
+ if(!$check){
|
|
|
+ util::fail("订单不存在");
|
|
|
+ }
|
|
|
+ $res = DeliveryOrderClass::getById($check['id'],$upData);
|
|
|
+ return $res;
|
|
|
+ }
|
|
|
+}
|