盲盒转盘优化-重构-调试
This commit is contained in:
@@ -141,7 +141,7 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
|
|||||||
$pan_total_remaining = $this->getCachedPanTotalRemaining($gift_bag_id); //剩余数量
|
$pan_total_remaining = $this->getCachedPanTotalRemaining($gift_bag_id); //剩余数量
|
||||||
//获取可用礼物
|
//获取可用礼物
|
||||||
$availableGifts = $this->getAvailableGifts($gift_bag_id,$pan_total_draw_times+$total_num);
|
$availableGifts = $this->getAvailableGifts($gift_bag_id,$pan_total_draw_times+$total_num);
|
||||||
$giftInfoMap = cache::get("pan_gift_info_map".$gift_bag_id); //预加载礼物信息
|
$giftInfoMap = $this->getCachedPanGiftInfoMap($gift_bag_id);//预加载礼物信息
|
||||||
$remaining_available_gifts = [];
|
$remaining_available_gifts = [];
|
||||||
if (empty($availableGifts) ||$pan_total_remaining ==0) {
|
if (empty($availableGifts) ||$pan_total_remaining ==0) {
|
||||||
//重置奖池
|
//重置奖池
|
||||||
@@ -589,6 +589,31 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
|
|||||||
}
|
}
|
||||||
return $xlh_periods_num;
|
return $xlh_periods_num;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 获取奖池总库存
|
||||||
|
*/
|
||||||
|
private function getCachedPanGiftInfoMap($gift_bag_id) {
|
||||||
|
$cacheKey = "pan_gift_info_map".$gift_bag_id;
|
||||||
|
$gift_info_map = Cache::get($cacheKey);
|
||||||
|
if(!$gift_info_map) {
|
||||||
|
$gift_bag_detail = Db::name("vs_gift_bag_detail")
|
||||||
|
->field('foreign_id')
|
||||||
|
->where(['gift_bag_id' => $gift_bag_id])
|
||||||
|
->select();
|
||||||
|
$gift_info_map = [];
|
||||||
|
$gift_ids = array_unique(array_column($gift_bag_detail, 'foreign_id'));
|
||||||
|
if (!empty($gift_ids)) {
|
||||||
|
foreach ($gift_ids as $gift_id) {
|
||||||
|
$gift_info_map[$gift_id] = db::name("vs_gift")
|
||||||
|
->field('gid,gift_name,gift_price,base_image')
|
||||||
|
->where(['gid' => $gift_id])
|
||||||
|
->find();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Cache::set($cacheKey, $gift_info_map, $this->cache_time);
|
||||||
|
}
|
||||||
|
return $gift_info_map;
|
||||||
|
}
|
||||||
|
|
||||||
//开始更新操作:
|
//开始更新操作:
|
||||||
/**
|
/**
|
||||||
@@ -1172,7 +1197,7 @@ class BlindBoxTurntableGiftDrawWorldNew extends Model
|
|||||||
// 批量插入礼包发放记录
|
// 批量插入礼包发放记录
|
||||||
$gift_records = [];
|
$gift_records = [];
|
||||||
$periods = $this->getCachedXlhPeriods('get') ?? 0;
|
$periods = $this->getCachedXlhPeriods('get') ?? 0;
|
||||||
$giftInfoMap =cache::get("pan_gift_info_map".$gift_bag_id);
|
$giftInfoMap = $this->getCachedPanGiftInfoMap($gift_bag_id);
|
||||||
foreach ($drawn_gifts as $gift_id => $count) {
|
foreach ($drawn_gifts as $gift_id => $count) {
|
||||||
$gift_records[] = [
|
$gift_records[] = [
|
||||||
'user_id' => $user_id,
|
'user_id' => $user_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user