shish před 5 roky
rodič
revize
6efeaa35de

+ 8 - 5
biz-hd/order/classes/OrderClass.php

@@ -2,6 +2,8 @@
 
 namespace bizHd\order\classes;
 
+use biz\shop\classes\ShopClass;
+use biz\shop\models\Shop;
 use biz\sj\classes\MerchantAssetClass;
 use biz\sj\classes\MerchantClass;
 use bizHd\message\classes\InformAdminClass;
@@ -25,8 +27,8 @@ class OrderClass extends BaseClass
 
     //已退款
     const ORDER_STATUS_REFUND = 6;
-	//已取消
-	const ORDER_STATUS_CANCEL = 5;
+    //已取消
+    const ORDER_STATUS_CANCEL = 5;
     //完成
     const ORDER_STATUS_COMPLETE = 4;
     //配送中
@@ -199,10 +201,11 @@ class OrderClass extends BaseClass
         self::updateById($orderId, $updateData);
         //发货流程的完成下单
         OrderSendClass::placeOrder(['orderId' => $orderId, 'payTime' => $now]);
-        $merchantId = $order['merchantId'];
-        $asset = MerchantAssetClass::getByMerchantId($merchantId);
+
         //增加订单数
-        StatOrderClass::addOrder($merchantId, $asset);
+        $shopId = $order['shopId'];
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
+        StatOrderClass::updateOrInsert($shop);
         //如果门店和朋友圈订单并且没有填写收花人的直接将订单置为自取并且是完成状态
         if (isset($order['fromType']) && in_array($order['fromType'], [0, 2])) {
             if (isset($order['receiveMobile']) && isset($order['address'])) {

+ 0 - 15
biz-hd/stat/classes/StatOrderClass.php

@@ -1,9 +1,7 @@
 <?php
 
 namespace bizHd\stat\classes;
-
 use bizHd\stat\models\StatOrder;
-use Yii;
 use bizHd\base\classes\BaseClass;
 
 class StatOrderClass extends BaseClass
@@ -11,19 +9,6 @@ class StatOrderClass extends BaseClass
 
     public static $baseFile = '\bizHd\stat\models\StatOrder';
 
-    public static function addOrder($merchantId, $asset, $date = null)
-    {
-        $date = isset($date) ? $date : date("Ymd");
-        $stat = self::getByCondition(['merchantId' => $merchantId, 'time' => $date], true);
-        if (empty($stat)) {
-            $stat = self::add(['merchantId' => $merchantId, 'time' => $date], true);
-        }
-        $stat->riseNum += 1;
-        $stat->save();
-        //月订单数增加
-        StatOrderMonthClass::addOrder($merchantId, $asset);
-    }
-
     //今日订单+1
     public static function updateOrInsert($shop)
     {

+ 5 - 2
common/services/xhPayToolService.php

@@ -3,6 +3,7 @@
 namespace common\services;
 
 use biz\shop\classes\ShopAdminClass;
+use biz\shop\models\Shop;
 use bizGhs\order\classes\OrderSendClass;
 use bizHd\coupon\classes\CouponClass;
 use bizHd\merchant\classes\ShopClass;
@@ -77,7 +78,9 @@ class xhPayToolService
             util::end();
         }
         $shopId = $order['shopId'] ?? 0;
-        $shop = \biz\shop\classes\ShopClass::getShopInfo($shopId);
+
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
+
         if (empty($shop)) {
             Yii::warning('支付第三方回调通知,capitalType:' . $capitalType . ' orderSn:' . $orderSn . " 没有找到门店");
             util::end();
@@ -310,7 +313,7 @@ class xhPayToolService
 //            $merchantCapitalId = $merchantCapital['id'];
 //            $updateData['capitalId'] = $merchantCapitalId;
             $updateData['payStatus'] = 1;//支付成功
-            $updateData['status'] = 2;//待配送
+            $updateData['status'] = OrderClass::ORDER_STATUS_UN_SEND;
             $updateData['couponId'] = $couponId;
             $updateData['payWay'] = $payWay;
             $updateData['payTime'] = $now;

+ 3 - 1
sql.sql

@@ -2176,4 +2176,6 @@ ALTER TABLE `xhSj` MODIFY `parentId` INT(11) NOT NULL DEFAULT '0' COMMENT '父
 ALTER TABLE `xhShop` ADD mobile VARCHAR(15) NOT NULL DEFAULT '' COMMENT '手机号' AFTER `totalStudent`;
 ALTER TABLE xhGhsCustom MODIFY `isOpen` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '已开店 0没有 1有';
 ALTER TABLE `xhGhsCustom` ADD UNIQUE INDEX `custom`(`sjId`,`customSjId`,`customShopId`);
-ALTER TABLE `xhGhs` ADD UNIQUE INDEX `ghs`(`sjId`,`ghsSjId`,`ghsShopId`);
+ALTER TABLE `xhGhs` ADD UNIQUE INDEX `ghs`(`sjId`,`ghsSjId`,`ghsShopId`);
+ALTER TABLE xhStatOrderCount DROP INDEX `merchant`;
+ALTER TABLE `xhStatOrderCount` ADD UNIQUE INDEX `shop`(`shopId`,`time`);