Răsfoiți Sursa

订单数量变化控制

shish 6 ani în urmă
părinte
comite
bb92a892de

+ 0 - 1
app/shop/controllers/OrderSendController.php

@@ -6,7 +6,6 @@ use biz\order\services\OrderSendService;
 use biz\order\services\OrderService;
 use Yii;
 use common\components\util;
-use common\components\stringUtil;
 
 class OrderSendController extends BaseController
 {

+ 70 - 61
biz/order/classes/OrderSendClass.php

@@ -2,6 +2,7 @@
 
 namespace biz\order\classes;
 
+use biz\merchant\classes\MerchantAssetClass;
 use common\components\stringUtil;
 use common\components\util;
 use common\services\xhOrderDayNumService;
@@ -11,65 +12,73 @@ use biz\base\classes\BaseClass;
 
 class OrderSendClass extends BaseClass
 {
-	
-	public static $baseFile = '\biz\order\models\OrderSend';
-	
-	//流程id与名称
-	public static $actionId = ['placeOrder' => 10, 'printOrder' => 20, 'deliver' => 30, 'reach' => 40, 'finish' => 50];
-	public static $action = [
-		10 => ['name' => '下单', 'sign' => 'placeOrder'],
-		20 => ['name' => '制单', 'sign' => 'printOrder',],
-		30 => ['name' => '发货', 'sign' => 'deliver'],
-		40 => ['name' => '送达', 'sign' => 'reach'],
-		50 => ['name' => '完成', 'sign' => 'finish'],
-	];
-	
-	//总流程数
-	const TOTAL_FLOW = 4;
-	
-	//下单操作完成 shish 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);
-	}
-	
-	//当前待执行的动作 shish 2019.12.16
-	public static function toDoActionId($id)
-	{
-		$action = self::getByCondition(['orderId' => $id], false, 'inTurn DESC');
-		$actionId = 0;
-		if (empty($action['finishTime'])) {
-			$actionId = $action['actionId'];
-		}
-		return $actionId;
-	}
-	
-	//免发货流程的处理 shish 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);
-		return OrderClass::ORDER_TOTAL_FLOW;
-	}
-	
+
+    public static $baseFile = '\biz\order\models\OrderSend';
+
+    //流程id与名称
+    public static $actionId = ['placeOrder' => 10, 'printOrder' => 20, 'deliver' => 30, 'reach' => 40, 'finish' => 50];
+    public static $action = [
+        10 => ['name' => '下单', 'sign' => 'placeOrder'],
+        20 => ['name' => '制单', 'sign' => 'printOrder',],
+        30 => ['name' => '发货', 'sign' => 'deliver'],
+        40 => ['name' => '送达', 'sign' => 'reach'],
+        50 => ['name' => '完成', 'sign' => 'finish'],
+    ];
+
+    //总流程数
+    const TOTAL_FLOW = 4;
+
+    //下单操作完成 shish 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);
+    }
+
+    //当前待执行的动作 shish 2019.12.16
+    public static function toDoActionId($id)
+    {
+        $action = self::getByCondition(['orderId' => $id], false, 'inTurn DESC');
+        $actionId = 0;
+        if (empty($action['finishTime'])) {
+            $actionId = $action['actionId'];
+        }
+        return $actionId;
+    }
+
+    //免发货流程的处理 shish 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);
+
+        //待发货订单-1,完成订单+1
+        $merchantId = $order['merchantId'];
+        $asset = MerchantAssetClass::getByMerchantId($merchantId, true);
+        $asset->finishOrder += 1;
+        $asset->unSendOrder -= 1;
+        $asset->save();
+
+        return OrderClass::ORDER_TOTAL_FLOW;
+    }
+
 }

+ 17 - 9
biz/order/services/OrderSendService.php

@@ -5,15 +5,10 @@ namespace biz\order\services;
 use biz\base\services\BaseService;
 use biz\goods\classes\CategoryClass;
 use biz\goods\classes\UsageClass;
-use biz\merchant\services\MerchantCapitalService;
+use biz\merchant\classes\MerchantAssetClass;
 use biz\order\classes\OrderClass;
 use biz\order\classes\OrderExpressClass;
 use biz\order\classes\OrderSendClass;
-use biz\order\models\Order;
-use biz\promote\services\CouponRightService;
-use biz\user\services\UserService;
-use common\components\error;
-use common\components\validate;
 use common\components\util;
 use Yii;
 use linslin\yii2\curl;
@@ -100,8 +95,14 @@ class OrderSendService extends BaseService
 		
 		OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $deliverId], ['option' => $option, 'finishTime' => $time]);
 		OrderClass::updateById($id, ['status' => OrderClass::ORDER_STATUS_SENDING, 'currentFlow' => 3, 'sendType' => $sendType]);
-		
-		
+
+        //待发货订单-1,配送中订单+1
+        $merchantId = $data['merchantId'];
+        $asset = MerchantAssetClass::getByMerchantId($merchantId, true);
+        $asset->unSendOrder -= 1;
+        $asset->sendingOrder += 1;
+        $asset->save();
+
 		//进入送达流程
 		$reachId = $actionIdList['reach'];
 		$data = ['actionId' => $reachId, 'orderId' => $id, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $reachId];
@@ -129,7 +130,14 @@ class OrderSendService extends BaseService
 		$time = time();
 		OrderSendClass::updateByCondition(['orderId' => $id, 'actionId' => $reachId], ['option' => $option, 'finishTime' => $time]);
 		OrderClass::complete($order);
-		
+
+        //配送中订单-1,完成订单+1
+        $merchantId = $order['merchantId'];
+        $asset = MerchantAssetClass::getByMerchantId($merchantId, true);
+        $asset->sendingOrder -= 1;
+        $asset->finishOrder += 1;
+        $asset->save();
+
 		util::complete();
 	}