shish 5 tahun lalu
induk
melakukan
bb8aa4426f

+ 4 - 10
biz-hd/order/classes/OrderClass.php

@@ -6,10 +6,10 @@ use biz\shop\classes\ShopClass;
 use biz\shop\models\Shop;
 use biz\sj\classes\MerchantAssetClass;
 use biz\sj\classes\MerchantClass;
+use biz\stat\classes\StatOrderCountClass;
 use bizHd\message\classes\InformAdminClass;
 use bizHd\message\classes\InformUserClass;
 use bizHd\stat\classes\StatOrderClass;
-use bizHd\stat\classes\StatOrderCountClass;
 use bizHd\stat\classes\StatOrderMonthClass;
 use bizHd\user\classes\UserClass;
 use common\components\miniUtil;
@@ -66,23 +66,17 @@ class OrderClass extends BaseClass
     //添加订单 ssh 2019.12.5
     public static function addOrder($data)
     {
-        $merchantId = $data['merchantId'];
         $data['orderSn'] = orderSn::getOrderSn();
         $data['payStatus'] = 0;
+        $shopId = $data['shopId'] ?? 0;
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
+        $riseNum = StatOrderCountClass::addOrder($shop);
 
-        $month = date("Ym");
-        $riseNum = StatOrderCountClass::addOrder($month, $merchantId);
         //将花店每月的总订单数作为编号
         $data['sendNum'] = $riseNum;
         $data['totalFlow'] = OrderClass::ORDER_TOTAL_FLOW;
         $return = self::add($data);
 
-        //全部订单+1,待付款订单+1
-        $merchantAsset = MerchantAssetClass::getByMerchantId($merchantId, true);
-        $merchantAsset->unPayOrder += 1;
-        $merchantAsset->totalOrder += 1;
-        $merchantAsset->save();
-
         return $return;
     }
 

+ 2 - 13
biz-hd/stat/classes/StatOrderCountClass.php

@@ -9,18 +9,7 @@ class StatOrderCountClass extends BaseClass
 {
 	
 	public static $baseFile = '\bizHd\stat\models\StatOrderCount';
-	
-	public static function addOrder($month, $merchantId)
-	{
-		$count = self::getByCondition(['merchantId' => $merchantId, 'time' => $month],true);
-		if (empty($count)) {
-			$data = ['time' => $month, 'riseNum' => 0, 'totalNum' => 0, 'merchantId' => $merchantId];
-			$count = self::add($data, true);
-		}
-		$count->riseNum += 1;
-		$count->totalNum += 1;
-		$count->save();
-		return $count->riseNum;
-	}
+
+    //此文件需要删除
 
 }

+ 10 - 6
biz-mall/order/classes/OrderClass.php

@@ -3,13 +3,14 @@
 namespace bizMall\order\classes;
 
 use biz\shop\models\Shop;
+use biz\stat\classes\StatOrderCountClass;
 use bizMall\merchant\classes\MerchantAssetClass;
 use bizMall\stat\classes\StatOrderClass;
-use bizMall\stat\classes\StatOrderCountClass;
 use bizMall\user\classes\UserClass;
 use common\components\miniUtil;
 use common\components\orderSn;
 use bizMall\base\classes\BaseClass;
+use common\components\util;
 
 class OrderClass extends BaseClass
 {
@@ -58,19 +59,22 @@ class OrderClass extends BaseClass
     //添加订单 ssh 2019.12.5
     public static function addOrder($data)
     {
-        $merchantId = $data['merchantId'];
         $data['orderSn'] = orderSn::getOrderSn();
         $data['payStatus'] = 0;
-        $month = date("Ym");
-        $riseNum = StatOrderCountClass::addOrder($month, $merchantId);
+        $shopId = $data['shopId'] ?? 0;
+
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
+        if (empty($shop)) {
+            util::fail('没有找到门店');
+        }
+        $riseNum = StatOrderCountClass::addOrder($shop);
+
         //将花店每月的总订单数作为编号
         $data['sendNum'] = $riseNum;
         $data['totalFlow'] = OrderClass::ORDER_TOTAL_FLOW;
         $return = self::add($data);
 
         //全部订单+1,待付款订单+1
-        $shopId = $data['shopId'];
-        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
         if (empty($shop)) {
             util::fail('没有找到门店');
         }

+ 2 - 14
biz-mall/stat/classes/StatOrderCountClass.php

@@ -2,25 +2,13 @@
 
 namespace bizMall\stat\classes;
 
-use Yii;
 use bizMall\base\classes\BaseClass;
 
 class StatOrderCountClass extends BaseClass
 {
 	
 	public static $baseFile = '\bizMall\stat\models\StatOrderCount';
-	
-	public static function addOrder($month, $merchantId)
-	{
-		$count = self::getByCondition(['merchantId' => $merchantId, 'time' => $month],true);
-		if (empty($count)) {
-			$data = ['time' => $month, 'riseNum' => 0, 'totalNum' => 0, 'merchantId' => $merchantId];
-			$count = self::add($data, true);
-		}
-		$count->riseNum += 1;
-		$count->totalNum += 1;
-		$count->save();
-		return $count->riseNum;
-	}
+
+    //此文件需要删除
 
 }

+ 36 - 0
biz/stat/classes/StatOrderCountClass.php

@@ -0,0 +1,36 @@
+<?php
+
+namespace biz\stat\classes;
+
+use biz\stat\models\StatOrderCount;
+use bizHd\base\classes\BaseClass;
+
+class StatOrderCountClass extends BaseClass
+{
+
+    public static $baseFile = '\biz\stat\models\StatOrderCount';
+
+    //月订单+1
+    public static function addOrder($shop)
+    {
+        $time = date('Ym');
+        $shopId = $shop->id;
+        $sjId = $shop->merchantId;
+        $where = [
+            'shopId' => $shopId,
+            'time' => $time,
+        ];
+        $model = self::getByCondition($where, true);
+        if (empty($model)) {
+            $model = self::add(['merchantId' => $sjId, 'shopId' => $shopId, 'time' => $time, 'riseNum' => 0, 'totalNum' => $shop->totalOrderNum], true);
+        }
+        $id = $model->id;
+
+        //查id行级锁
+        $stat = StatOrderCount::findBySql('select * from ' . StatOrderCount::tableName() . ' where id = :id for update', ['id' => $id])->one();
+        $stat->riseNum += 1;
+        $stat->totalNum += 1;
+        $stat->save();
+    }
+
+}

+ 13 - 0
biz/stat/models/StatOrderCount.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace biz\stat\models;
+
+use biz\base\models\Base;
+
+class StatOrderCount extends Base
+{
+    public static function tableName()
+    {
+        return 'xhStatOrderCount';
+    }
+}