Просмотр исходного кода

Merge branch 'master' into dev

shish 3 месяцев назад
Родитель
Сommit
cc6e533bb9
2 измененных файлов с 16 добавлено и 27 удалено
  1. 16 7
      biz-ghs/order/classes/OrderClass.php
  2. 0 20
      biz-ghs/order/services/OrderService.php

+ 16 - 7
biz-ghs/order/classes/OrderClass.php

@@ -3139,19 +3139,28 @@ XL;
         // 排序并去重
         sort($ids);
         $ids = array_unique($ids);
+        
+        // 限制最多 90 单,避免 someTimeIds 过长(兼容原先业务逻辑限制)
+        if (count($ids) > 90) {
+            $ids = array_slice($ids, 0, 90);
+        }
+        
         $sameTimeIdsStr = implode(',', $ids);
         // 更新所有相关订单
-        if (!empty($ids)) {
+        if (!empty($ids) && in_array($id, $ids)) {
             self::updateByIds($ids, ['sameTimeIds' => $sameTimeIdsStr]);
         }
 
         //从原先同天内的订单中删除此次要改变的订单的订单号$id
-        $newSameTimeIdsArr = explode(',', $oldSameTimeIds);
-        if (in_array($id, $newSameTimeIdsArr)) {
-            $newSameTimeIdsArr = array_diff($newSameTimeIdsArr, [$id]);
-            $newSameTimeIdsStr = implode(',', $newSameTimeIdsArr);
-            if (!empty($newSameTimeIdsArr)) {
-                self::updateByIds($newSameTimeIdsArr, ['sameTimeIds' => $newSameTimeIdsStr]);
+
+        if (!empty($oldSameTimeIds) && $oldSameTimeIds != $sameTimeIdsStr) {
+            $oldSameTimeIdsArr = explode(',', $oldSameTimeIds);
+            if (in_array($id, $oldSameTimeIdsArr)) {
+                $oldSameTimeIdsArr = array_diff($oldSameTimeIdsArr, [$id]);
+                $oldSameTimeIdsStr = implode(',', $oldSameTimeIdsArr);
+                if (!empty($oldSameTimeIdsArr)) {
+                    self::updateByIds($oldSameTimeIdsArr, ['sameTimeIds' => $oldSameTimeIdsStr]);
+                }
             }
         }
     }

+ 0 - 20
biz-ghs/order/services/OrderService.php

@@ -898,26 +898,6 @@ class OrderService extends BaseService
         StatKhCgClass::replace($order, $amount);
 
         //当天同个人同地址的订单汇总
-        $sameDate = date("Y_m_d");
-        $sameAddress = $order->showAddress ?? '';
-        $addressMd5 = md5($sameAddress);
-        $sameKey = $customId . '_' . $addressMd5 . '_' . $sameDate;
-        $sameString = Yii::$app->redis->executeCommand('GET', [$sameKey]);
-        if (!empty($sameString)) {
-            $newString = $sameString . ',' . $orderId;
-            $newIdsArray = explode(',', $newString);
-            if (count($newIdsArray) <= 90) {
-                Yii::$app->redis->executeCommand('SETEX', [$sameKey, 186400, $newString]);
-                foreach ($newIdsArray as $currentOrderId) {
-                    OrderClass::updateById($currentOrderId, ['sameTimeIds' => $newString]);
-                }
-                noticeUtil::push($sameKey . '' . $sameAddress . " 当天汇总ids:" . $newString, '15280215347');
-            }
-        } else {
-            Yii::$app->redis->executeCommand('SETEX', [$sameKey, 186400, $orderId]);
-            $order->sameTimeIds = $orderId;
-            $order->save();
-            noticeUtil::push($sameKey . '' . $sameAddress . " 当天汇总ids:" . $orderId, '15280215347');
         }
 
     }