diff --git a/application/api/model/BlindBoxTurntableGiftDrawWorldNew.php b/application/api/model/BlindBoxTurntableGiftDrawWorldNew.php index 3d870fa..8ee717e 100644 --- a/application/api/model/BlindBoxTurntableGiftDrawWorldNew.php +++ b/application/api/model/BlindBoxTurntableGiftDrawWorldNew.php @@ -701,15 +701,15 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model if (!$giftBagDetail) { throw new \Exception("礼物详情不存在,ID: " . $giftId); } - // 检查库存是否足够 - if ($giftBagDetail['remaining_number'] < $count) { - throw new \Exception("礼物库存不足,ID: " . $giftId); - } $upRemainingNumber = $giftBagDetail['remaining_number'] - $count; if($upRemainingNumber!=$giftBagDetailCached['remaining_number']){ - $this->redis->setex( 'blind_box_draw_errors_' . date('Y-m-d-H-i-s'), 86400 * 7, "有并发:礼物数量不一致,礼物ID: " . $giftId . ' ' .json_encode($giftBagDetail) . ' ' .json_encode($giftBagDetailCached)); + $this->redis->setex( 'blind_box_draw_errors_' . date('Y-m-d-H-i-s'), 86400 * 7, "有并发:礼物数量不一致,礼物ID: " . $giftId . '数据库数量: '.$upRemainingNumber. '缓存数量: '.$giftBagDetailCached['remaining_number']. ' ' .json_encode($giftBagDetail) . ' ' .json_encode($giftBagDetailCached)); $upRemainingNumber = $giftBagDetailCached['remaining_number']; } + // 检查库存是否足够 + if ($upRemainingNumber < 0) { + throw new \Exception("礼物库存不足,ID: " . $giftId); + } $ret = db::name("vs_gift_bag_detail")->where('id',$giftId)->update([ 'remaining_number' => $upRemainingNumber ]);