shish hace 2 años
padre
commit
007c02b139
Se han modificado 1 ficheros con 14 adiciones y 13 borrados
  1. 14 13
      biz-ghs/book/classes/BookItemClass.php

+ 14 - 13
biz-ghs/book/classes/BookItemClass.php

@@ -60,6 +60,12 @@ class BookItemClass extends BaseClass
                 }
             }
 
+            $cacheKey = 'change_book_item_num_' . $itemId;
+            $noLock = util::lock($cacheKey);
+            if (!$noLock) {
+                util::fail("系统繁忙,1秒后再提交");
+            }
+
             $bookItemCustomRes = BookItemCustomClass::getByCondition(['bookSn' => $bookSn, 'customId' => $customId, 'itemId' => $itemId], true);
             if (empty($bookItemCustomRes)) {
                 $currentData = [
@@ -77,10 +83,9 @@ class BookItemClass extends BaseClass
                 ];
                 $bookItemCustomRes = BookItemCustomClass::add($currentData, true);
             }
-            $hasId = $bookItemCustomRes->id ?? 0;
-            $bookItemCustomRes = BookItemCustomClass::getLockById($hasId);
             $thisNum = bcsub($bookItemCustomRes->bookNum, $num);
             if ($thisNum < 0) {
+                util::unlock($cacheKey);
                 util::fail($customName . '预订的' . $name . '不够减 bookItemCustom');
             }
             $bookItemCustomRes->bookNum = $thisNum;
@@ -99,10 +104,9 @@ class BookItemClass extends BaseClass
                 ];
                 $bookItemRes = self::add($statData, true);
             }
-            $id = $bookItemRes->id;
-            $bookItemRes = self::getLockById($id);
             $currentNum = bcsub($bookItemRes->bookNum, $num);
             if ($currentNum < 0) {
+                util::unlock($cacheKey);
                 util::fail($customName . '预订的' . $name . '不够减哦 bookItem');
             }
             $bookItemRes->bookNum = $currentNum;
@@ -118,10 +122,9 @@ class BookItemClass extends BaseClass
                 ];
                 $bookCustomRes = BookCustomClass::add($currentData, true);
             }
-            $hasId = $bookCustomRes->id ?? 0;
-            $bookCustomRes = BookCustomClass::getLockById($hasId);
             $nowNum = bcsub($bookCustomRes->bookNum, $num);
             if ($nowNum < 0) {
+                util::unlock($cacheKey);
                 util::fail($customName . '预订的' . $name . '不够减哈 bookCustom');
             }
             $bookCustomRes->bookNum = $nowNum;
@@ -142,6 +145,7 @@ class BookItemClass extends BaseClass
                 $bookItemCustomRes->save();
                 $bookItemRes->save();
                 $bookCustomRes->save();
+                util::unlock($cacheKey);
                 continue;
             }
             $secondRemainSubNum = 0;
@@ -164,6 +168,7 @@ class BookItemClass extends BaseClass
                 $bookItemCustomRes->save();
                 $bookItemRes->save();
                 $bookCustomRes->save();
+                util::unlock($cacheKey);
                 continue;
             }
             $thirdRemainSubNum = 0;
@@ -186,12 +191,14 @@ class BookItemClass extends BaseClass
                 $bookItemCustomRes->save();
                 $bookItemRes->save();
                 $bookCustomRes->save();
+                util::unlock($cacheKey);
                 continue;
             }
             //还有不够扣在库存里,不用任何处理
             $bookItemCustomRes->save();
             $bookItemRes->save();
             $bookCustomRes->save();
+            util::unlock($cacheKey);
         }
     }
 
@@ -244,7 +251,7 @@ class BookItemClass extends BaseClass
                 }
             }
 
-            $cacheKey = 'add_need_cg_num_' . $itemId;
+            $cacheKey = 'change_book_item_num_' . $itemId;
             $noLock = util::lock($cacheKey);
             if (!$noLock) {
                 util::fail("系统繁忙,1秒后再提交");
@@ -264,8 +271,6 @@ class BookItemClass extends BaseClass
                 ];
                 $bookItemRes = self::add($statData, true);
             }
-            $bookItemResId = $bookItemRes->id;
-            $bookItemRes = self::getLockById($bookItemResId);
             $currentStock = $product->stock;
             $totalHasNum = bcadd($currentStock, $bookItemRes->roadNum);
             $overNum = $bookItemRes->bookNum > $totalHasNum ? 0 : bcsub($totalHasNum, $bookItemRes->bookNum);
@@ -293,8 +298,6 @@ class BookItemClass extends BaseClass
                 ];
                 $bookItemCustomRes = BookItemCustomClass::add($currentData, true);
             }
-            $bookItemCustomResId = $bookItemCustomRes->id ?? 0;
-            $bookItemCustomRes = BookItemCustomClass::getLockById($bookItemCustomResId);
             $bookItemCustomRes = BookItemCustomClass::addBookNum($bookItemCustomRes,$num,$order,$shop,$product,$params);
             BookItemCustomClass::addNeedCgNum($bookItemCustomRes,$addNeedCgNum,$num,$order,$shop,$product,$params);
 
@@ -310,8 +313,6 @@ class BookItemClass extends BaseClass
                 ];
                 $bookCustomRes = BookCustomClass::add($currentData, true);
             }
-            $bookCustomResId = $bookCustomRes->id ?? 0;
-            $bookCustomRes = BookCustomClass::getLockById($bookCustomResId);
             $bookCustomRes->bookNum = bcadd($bookCustomRes->bookNum, $num);
             $bookCustomRes->needCgNum = bcadd($bookCustomRes->needCgNum, $addNeedCgNum);
             $bookCustomRes->save();