盲盒转盘 优化-缓存配置修改 提交

This commit is contained in:
2025-10-29 14:55:30 +08:00
parent c787abbcdf
commit a751597890

View File

@@ -708,30 +708,18 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
// 批量更新 // 批量更新
foreach ($inventoryUpdates as $giftId => $count) { foreach ($inventoryUpdates as $giftId => $count) {
$giftBagDetail = Db::name("vs_gift_bag_detail")
->where('id', $giftId)
->find();
$giftBagDetailCached = $this->getCachedGiftBagDetailItem($gift_bag_id, $giftId); $giftBagDetailCached = $this->getCachedGiftBagDetailItem($gift_bag_id, $giftId);
if (!$giftBagDetail) { if(empty($giftBagDetailCached)){
throw new \Exception("礼物详情不存在ID: " . $giftId); $giftBagDetail = db::name("vs_gift_bag_detail")->where('id',$giftId)->find();
}
$upRemainingNumber = $giftBagDetail['remaining_number'] - $count; $upRemainingNumber = $giftBagDetail['remaining_number'] - $count;
if($upRemainingNumber!=$giftBagDetailCached['remaining_number']){ }else{
$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']; $upRemainingNumber = $giftBagDetailCached['remaining_number'];
} }
// 检查库存是否足够
if ($upRemainingNumber < 0) {
throw new \Exception("礼物库存不足ID: " . $giftId);
}
if($upRemainingNumber = $giftBagDetail['remaining_number']){
return;
}
$ret = db::name("vs_gift_bag_detail")->where('id',$giftId)->update([ $ret = db::name("vs_gift_bag_detail")->where('id',$giftId)->update([
'remaining_number' => $upRemainingNumber 'remaining_number' => $upRemainingNumber
]); ]);
if (!$ret) { if (!$ret) {
throw new \Exception('更新礼物剩余数量失败'); throw new \Exception('更新礼物剩余数量失败 ID: ' . $giftId);
} }
} }
} }