错误屏蔽
This commit is contained in:
@@ -18,64 +18,70 @@ class BlindBoxTurntableGiftDraw extends Model
|
||||
*/
|
||||
public function draw_gift($gift_bag_id, $user_id, $gift_user_ids, $num = 1, $room_id = 0, $heart_id = 0)
|
||||
{
|
||||
// 1. 验证参数并提前处理错误
|
||||
$validationResult = $this->validateDrawParameters($gift_bag_id, $user_id, $gift_user_ids, $room_id);
|
||||
if ($validationResult !== true) {
|
||||
return $validationResult;
|
||||
try {
|
||||
// 1. 验证参数并提前处理错误
|
||||
$validationResult = $this->validateDrawParameters($gift_bag_id, $user_id, $gift_user_ids, $room_id);
|
||||
if ($validationResult !== true) {
|
||||
return $validationResult;
|
||||
}
|
||||
|
||||
// 2. 预加载必要数据
|
||||
$loadResult = $this->loadDrawData($gift_bag_id, $user_id, $room_id);
|
||||
if ($loadResult['code'] !== 1) {
|
||||
return $loadResult;
|
||||
}
|
||||
['bag_data' => $bag_data, 'room' => $room, 'xlh_ext' => $xlh_ext] = $loadResult['data'];
|
||||
|
||||
// 3. 预计算抽奖结果
|
||||
$precomputeResult = $this->precomputeDrawResults(
|
||||
$bag_data,
|
||||
$room,
|
||||
$gift_user_ids,
|
||||
$num,
|
||||
$room_id
|
||||
);
|
||||
if ($precomputeResult['code'] !== 1) {
|
||||
return $precomputeResult;
|
||||
}
|
||||
$precomputedResults = $precomputeResult['data']['results'];
|
||||
$availableGiftss = $precomputeResult['data']['availableGifts'];
|
||||
$currentXlhPeriodsNum = $precomputeResult['data']['current_xlh_periods_num'];
|
||||
$xlhIsPiaoPing = $precomputeResult['data']['xlh_is_piao_ping'];
|
||||
|
||||
// 4. 执行抽奖事务(核心操作)
|
||||
$transactionResult = $this->executeDrawTransaction(
|
||||
$bag_data,
|
||||
$user_id,
|
||||
$room_id,
|
||||
$num,
|
||||
$precomputedResults,
|
||||
$availableGiftss
|
||||
);
|
||||
if ($transactionResult['code'] !== 1) {
|
||||
return $transactionResult;
|
||||
}
|
||||
$boxTurntableLog = $transactionResult['data']['log_id'];
|
||||
$giftCounts = $transactionResult['data']['gift_counts'];
|
||||
|
||||
// 5. 处理后续操作(非事务性操作)
|
||||
$this->handlePostDrawOperations(
|
||||
$precomputedResults,
|
||||
$boxTurntableLog,
|
||||
$room_id,
|
||||
$xlh_ext,
|
||||
$xlhIsPiaoPing,
|
||||
$currentXlhPeriodsNum,
|
||||
$room,
|
||||
$user_id
|
||||
);
|
||||
|
||||
// 6. 构建并返回结果
|
||||
return $this->buildDrawResult($boxTurntableLog, $giftCounts);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return ['code' => 0, 'msg' => "网络请求错误,请重试!", 'data' => null];
|
||||
}
|
||||
|
||||
// 2. 预加载必要数据
|
||||
$loadResult = $this->loadDrawData($gift_bag_id, $user_id, $room_id);
|
||||
if ($loadResult['code'] !== 1) {
|
||||
return $loadResult;
|
||||
}
|
||||
['bag_data' => $bag_data, 'room' => $room, 'xlh_ext' => $xlh_ext] = $loadResult['data'];
|
||||
|
||||
// 3. 预计算抽奖结果
|
||||
$precomputeResult = $this->precomputeDrawResults(
|
||||
$bag_data,
|
||||
$room,
|
||||
$gift_user_ids,
|
||||
$num,
|
||||
$room_id
|
||||
);
|
||||
if ($precomputeResult['code'] !== 1) {
|
||||
return $precomputeResult;
|
||||
}
|
||||
$precomputedResults = $precomputeResult['data']['results'];
|
||||
$availableGiftss = $precomputeResult['data']['availableGifts'];
|
||||
$currentXlhPeriodsNum = $precomputeResult['data']['current_xlh_periods_num'];
|
||||
$xlhIsPiaoPing = $precomputeResult['data']['xlh_is_piao_ping'];
|
||||
|
||||
// 4. 执行抽奖事务(核心操作)
|
||||
$transactionResult = $this->executeDrawTransaction(
|
||||
$bag_data,
|
||||
$user_id,
|
||||
$room_id,
|
||||
$num,
|
||||
$precomputedResults,
|
||||
$availableGiftss
|
||||
);
|
||||
if ($transactionResult['code'] !== 1) {
|
||||
return $transactionResult;
|
||||
}
|
||||
$boxTurntableLog = $transactionResult['data']['log_id'];
|
||||
$giftCounts = $transactionResult['data']['gift_counts'];
|
||||
|
||||
// 5. 处理后续操作(非事务性操作)
|
||||
$this->handlePostDrawOperations(
|
||||
$precomputedResults,
|
||||
$boxTurntableLog,
|
||||
$room_id,
|
||||
$xlh_ext,
|
||||
$xlhIsPiaoPing,
|
||||
$currentXlhPeriodsNum,
|
||||
$room,
|
||||
$user_id
|
||||
);
|
||||
|
||||
// 6. 构建并返回结果
|
||||
return $this->buildDrawResult($boxTurntableLog, $giftCounts);
|
||||
}
|
||||
/**
|
||||
* 验证抽奖参数
|
||||
@@ -755,11 +761,16 @@ class BlindBoxTurntableGiftDraw extends Model
|
||||
$xlh['start_num'] = $xlh_ext['open_condition']['start_num'];//开始开奖次数
|
||||
// 当前抽奖次数
|
||||
$xlh['current_num'] = $currentXlhPeriodsNum;
|
||||
$xlh['end_time'] = 0;
|
||||
// 状态
|
||||
if($xlh['current_num'] >= $xlh_ext['open_condition']['start_num']){
|
||||
$xlh['status'] = 1;//状态 1:巡乐会开始 2:即将开始开始 0:等待开始
|
||||
//查询巡乐会信息
|
||||
$pan_xlh = db::name('vs_room_pan_xlh')->where('room_id',$room_id)->order('id desc')->find();
|
||||
$xlh['end_time'] = $pan_xlh['end_time'] ?? 0;
|
||||
} elseif($xlh['current_num'] >= $xlh_ext['open_condition']['waiting_start_num'] && $xlh['current_num'] < $xlh_ext['open_condition']['start_num']){
|
||||
$xlh['status'] = 2;//状态 1:巡乐会开始 2:即将开始开始 0:等待开始
|
||||
|
||||
}else{
|
||||
$xlh['status'] = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user