Browse Source

订单状态

shish 5 years ago
parent
commit
fdbafbb77a
1 changed files with 87 additions and 86 deletions
  1. 87 86
      biz-hd/order/classes/OrderSendClass.php

+ 87 - 86
biz-hd/order/classes/OrderSendClass.php

@@ -2,6 +2,7 @@
 
 namespace bizHd\order\classes;
 
+use biz\shop\models\Shop;
 use biz\sj\classes\MerchantAssetClass;
 use biz\sj\classes\MerchantClass;
 use bizHd\message\classes\InformAdminClass;
@@ -17,90 +18,90 @@ use bizHd\base\classes\BaseClass;
 
 class OrderSendClass extends BaseClass
 {
-	
-	public static $baseFile = '\bizHd\order\models\OrderSend';
-	
-	//流程id与名称
-	public static $actionId = ['placeOrder' => 10, 'printOrder' => 20, 'deliver' => 30, 'reach' => 40];
-	public static $action = [
-		10 => ['name' => '下单', 'sign' => 'placeOrder'],
-		20 => ['name' => '制单', 'sign' => 'printOrder',],
-		30 => ['name' => '发货', 'sign' => 'deliver'],
-		40 => ['name' => '送达', 'sign' => 'reach']
-	];
-	
-	//下单操作完成 ssh 2019.12.13
-	public static function placeOrder($data)
-	{
-		//下单完成
-		$orderId = $data['orderId'];
-		$payTime = $data['payTime'];
-		$actionId = self::$actionId;
-		$placeOrderId = $actionId['placeOrder'];
-		$time = time();
-		$data = ['actionId' => $placeOrderId, 'orderId' => $orderId, 'finishTime' => $payTime, 'addTime' => $time, 'inTurn' => $placeOrderId];
-		self::add($data);
-		
-		OrderClass::updateById($orderId, ['currentFlow' => 1]);
-		
-		//制单未开始
-		$printOrderId = $actionId['printOrder'];
-		$data = ['actionId' => $printOrderId, 'orderId' => $orderId, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $printOrderId];
-		self::add($data);
-	}
-	
-	//当前待执行的动作 ssh 2019.12.16
-	public static function toDoActionId($orderSn)
-	{
-		$action = self::getByCondition(['orderSn' => $orderSn], false, 'inTurn DESC');
-		$actionId = 0;
-		if (empty($action['finishTime'])) {
-			$actionId = $action['actionId'];
-		}
-		return $actionId;
-	}
-	
-	//免发货流程的处理 ssh 2020.3.12
-	public static function withoutSend($order)
-	{
-		$id = $order['id'];
-		if ($order['status'] == OrderClass::ORDER_STATUS_COMPLETE) {
-			util::fail('订单已完成');
-		}
-		self::deleteByCondition(['orderId' => $id]);
-		//订单状态变更
-		OrderClass::updateById($id, ['sendType' => 1, 'totalFlow' => OrderClass::ORDER_TOTAL_FLOW, 'currentFlow' => OrderClass::ORDER_TOTAL_FLOW]);
-		OrderClass::complete($order, OrderClass::ORDER_TOTAL_FLOW);
-		
-		//待发货订单-1,完成订单+1
-		$merchantId = $order['merchantId'];
-		$asset = MerchantAssetClass::getByMerchantId($merchantId, true);
-		$asset->finishOrder += 1;
-		$asset->unSendOrder -= 1;
-		$asset->save();
-		
-		return OrderClass::ORDER_TOTAL_FLOW;
-	}
-	
-	//送达 ssh 2020.6.1
-	public static function reach($order)
-	{
-		$id = $order['id'];
-		//1 确认送达
-		$option = 1;
-		$time = time();
-		$actionIdList = self::$actionId;
-		$reachId = $actionIdList['reach'];
-		OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $reachId], ['option' => $option, 'finishTime' => $time]);
-		
-		$userId = $order['userId'];
-		$user = UserClass::getById($userId);
-		$merchantId = $order['merchantId'];
-		$merchant = MerchantClass::getById($merchantId);
-		//完成通知客户
-		InformUserClass::sendComplete($user, $order, $merchant);
-		//完成通知管理员
-		InformAdminClass::sendComplete($order);
-	}
-	
+
+    public static $baseFile = '\bizHd\order\models\OrderSend';
+
+    //流程id与名称
+    public static $actionId = ['placeOrder' => 10, 'printOrder' => 20, 'deliver' => 30, 'reach' => 40];
+    public static $action = [
+        10 => ['name' => '下单', 'sign' => 'placeOrder'],
+        20 => ['name' => '制单', 'sign' => 'printOrder',],
+        30 => ['name' => '发货', 'sign' => 'deliver'],
+        40 => ['name' => '送达', 'sign' => 'reach']
+    ];
+
+    //下单操作完成 ssh 2019.12.13
+    public static function placeOrder($data)
+    {
+        //下单完成
+        $orderId = $data['orderId'];
+        $payTime = $data['payTime'];
+        $actionId = self::$actionId;
+        $placeOrderId = $actionId['placeOrder'];
+        $time = time();
+        $data = ['actionId' => $placeOrderId, 'orderId' => $orderId, 'finishTime' => $payTime, 'addTime' => $time, 'inTurn' => $placeOrderId];
+        self::add($data);
+
+        OrderClass::updateById($orderId, ['currentFlow' => 1]);
+
+        //制单未开始
+        $printOrderId = $actionId['printOrder'];
+        $data = ['actionId' => $printOrderId, 'orderId' => $orderId, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $printOrderId];
+        self::add($data);
+    }
+
+    //当前待执行的动作 ssh 2019.12.16
+    public static function toDoActionId($orderSn)
+    {
+        $action = self::getByCondition(['orderSn' => $orderSn], false, 'inTurn DESC');
+        $actionId = 0;
+        if (empty($action['finishTime'])) {
+            $actionId = $action['actionId'];
+        }
+        return $actionId;
+    }
+
+    //免发货流程的处理 ssh 2020.3.12
+    public static function withoutSend($order)
+    {
+        $id = $order['id'];
+        if ($order['status'] == OrderClass::ORDER_STATUS_COMPLETE) {
+            util::fail('订单已完成');
+        }
+        self::deleteByCondition(['orderId' => $id]);
+        //订单状态变更
+        OrderClass::updateById($id, ['sendType' => 1, 'totalFlow' => OrderClass::ORDER_TOTAL_FLOW, 'currentFlow' => OrderClass::ORDER_TOTAL_FLOW]);
+        OrderClass::complete($order, OrderClass::ORDER_TOTAL_FLOW);
+
+        //待发货订单-1,完成订单+1
+        $shopId = $order['shopId'];
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
+        $shop->finishOrder += 1;
+        $shop->unSendOrder -= 1;
+        $shop->save();
+
+        return OrderClass::ORDER_TOTAL_FLOW;
+    }
+
+    //送达 ssh 2020.6.1
+    public static function reach($order)
+    {
+        $id = $order['id'];
+        //1 确认送达
+        $option = 1;
+        $time = time();
+        $actionIdList = self::$actionId;
+        $reachId = $actionIdList['reach'];
+        OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $reachId], ['option' => $option, 'finishTime' => $time]);
+
+        $userId = $order['userId'];
+        $user = UserClass::getById($userId);
+        $merchantId = $order['merchantId'];
+        $merchant = MerchantClass::getById($merchantId);
+        //完成通知客户
+        InformUserClass::sendComplete($user, $order, $merchant);
+        //完成通知管理员
+        InformAdminClass::sendComplete($order);
+    }
+
 }