巡乐会抽奖接口提交.-盲盒转盘期数修改

This commit is contained in:
2025-09-08 14:45:00 +08:00
parent 12f1a743f7
commit e0e5ff4d90
3 changed files with 23 additions and 9 deletions

View File

@@ -249,14 +249,19 @@ class BlindBox extends adminApi
}
$gift_bag_detail = db::name($this->table)->where(['gift_bag_id'=>$gift_bag_id])->select();
if(in_array($gift_bag_id,[10,11,12,13])){
$periods = 1;
if(!empty($room_id)){
$where['room_id'] = $room_id;
$room_pan_detail = db::name('vs_room_pan')->where(['gift_bag_id'=>$gift_bag_id,'room_id'=>$room_id])->order('id desc')->find();
if($room_pan_detail){
$periods = $room_pan_detail['periods'];
}
}
foreach ($gift_bag_detail as $k=>$v){
$where['gift_bag_detail_id'] = $v['id'];
$room_pan = db::name('vs_room_pan')->where($where)->select();
if(!empty($room_pan)){
$bag_data = db::name('vs_room_pan')->where($where)->update(['remaining_number'=>$v['quantity']]);
$bag_data = db::name('vs_room_pan')->where($where)->update(['remaining_number'=>$v['quantity'],'periods'=>$periods]);
}else{
if($room_id){
$bag_data = db::name('vs_room_pan')->insert([
@@ -264,6 +269,7 @@ class BlindBox extends adminApi
'gift_bag_id' => $gift_bag_id,
'gift_bag_detail_id' => $v['id'],
'remaining_number' => $v['quantity'],
'periods' => $periods,
'createtime' => time(),
]);
}else{
@@ -275,6 +281,7 @@ class BlindBox extends adminApi
'gift_bag_id' => $gift_bag_id,
'gift_bag_detail_id' => $v['id'],
'remaining_number' => $v['quantity'],
'periods' => $periods,
'createtime' => time(),
]);
}
@@ -569,6 +576,7 @@ class BlindBox extends adminApi
$count = db::name($this->table)->where($where)->count();
$lists_data = db::name($this->table)->where($where)->page($page, $page_limit)->order("id desc")->select();
$lists = [];
$periods =1;
foreach ($lists_data as $key => $value) {
$lists[$key]['id'] = $value['id'];
$lists[$key]['gift_id'] = $value['foreign_id'];
@@ -584,6 +592,7 @@ class BlindBox extends adminApi
$lists[$key]['is_world_show'] = $value['is_world_show'];
$lists[$key]['weight'] = $value['weight'];
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$periods = $room_pan['periods']??1;
}
//统计
$total_data = [];
@@ -629,7 +638,7 @@ class BlindBox extends adminApi
'lists' => $lists,
'bag_list' => $bag_list,
'total_data' => [
'blind_box_turntable_periods' => $room['blind_box_turntable_periods']??'0', //当前期数
'blind_box_turntable_periods' => $periods, //当前期数
'remaining_number' => db::name('vs_room_pan')->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->sum('remaining_number')??'0',
'total_count' => $total_count,
'total_price' => $total_price,

View File

@@ -30,7 +30,7 @@ class UserGiftPack extends BaseCom
$user_id = $this->uid;
$page = input('page',1);
$page_limit = input('page_limit',10);
$reslut = model('UserGiftPack')->income_user_gift_pack($user_id,$page=1,$page_limit=10);
$reslut = model('UserGiftPack')->income_user_gift_pack($user_id,$page,$page_limit);
return V($reslut['code'],$reslut['msg'], $reslut['data']);
}
@@ -40,7 +40,7 @@ class UserGiftPack extends BaseCom
$user_id = $this->uid;
$page = input('page',1);
$page_limit = input('page_limit',10);
$reslut = model('UserGiftPack')->get_gift_pack_outcome($user_id,$page=1,$page_limit=10);
$reslut = model('UserGiftPack')->get_gift_pack_outcome($user_id,$page,$page_limit);
return V($reslut['code'],$reslut['msg'], $reslut['data']);
}

View File

@@ -106,7 +106,7 @@ class BlindBoxTurntableGift extends Model
}
foreach ($toarray as $gift_user_id){
for($i = 0; $i < $num; $i++){
$reslut_draw_gift_data = $this->draw_gift_one($gift_bag_id, $user_id, $gift_user_id,$bag_gift['gift_price'],$room['blind_box_turntable_periods'],$room_id,$box_turntable_log);
$reslut_draw_gift_data = $this->draw_gift_one($gift_bag_id, $user_id, $gift_user_id,$bag_gift['gift_price'],$room_id,$box_turntable_log);
if($reslut_draw_gift_data['code'] != 1){
db::rollback();
return ['code' => 0, 'msg' => $reslut_draw_gift_data['msg'], 'data' => null];
@@ -196,10 +196,12 @@ class BlindBoxTurntableGift extends Model
/*
* 单人单次抽奖
*/
public function draw_gift_one($gift_bag_id, $user_id, $gift_user_id,$gift_price,$periods,$room_id=0,$box_turntable_log=0){
public function draw_gift_one($gift_bag_id, $user_id, $gift_user_id,$gift_price,$room_id=0,$box_turntable_log=0){
//奖池总的抽奖次数
$total_quantity = db::name("vs_gift_bag_detail")->where(['gift_bag_id' => $gift_bag_id])->sum('quantity');
$total_remaining = db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->value('remaining_number');
$room_pan = db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->field('remaining_number,periods')->find();
$total_remaining = $room_pan['remaining_number'];
$periods = $room_pan['periods'];
//本期当前第多少次后抽奖 总的抽奖次数- 剩余数量
$total_draw_times = $total_quantity - $total_remaining;
//随机获取一个礼物
@@ -270,6 +272,7 @@ class BlindBoxTurntableGift extends Model
if($gift_bag_num <= 0){
db::name("vs_gift_bag")->where('id',$gift_bag_id)->setInc('periods');
db::name("vs_room")->where('id',$room_id)->setInc('blind_box_turntable_periods');
db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->setInc('periods');
db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->update(
['remaining_number' => db::raw('(SELECT quantity FROM fa_vs_gift_bag_detail WHERE id = fa_vs_room_pan.gift_bag_detail_id)')]);
}
@@ -508,7 +511,8 @@ class BlindBoxTurntableGift extends Model
try{
for($i = 0; $i < $num; $i++){
//本期当前第多少次后抽奖 总的抽奖次数- 剩余数量
$total_remaining = db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->value('remaining_number');
$room_pan = db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->field('remaining_number,periods')->find();
$total_remaining = $room_pan['remaining_number'];
$total_draw_times = $total_quantity - $total_remaining;
//随机获取一个礼物
$where = [
@@ -606,6 +610,7 @@ class BlindBoxTurntableGift extends Model
//判断剩余数量是否为0 为0重置进入下一期
$gift_bag_num = db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->sum('remaining_number');
if($gift_bag_num <= 0){
db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->setInc('periods');
db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->update(
['remaining_number' => db::raw('(SELECT quantity FROM fa_vs_gift_bag_detail WHERE id = fa_vs_room_pan.gift_bag_detail_id)')]);
}
@@ -645,7 +650,7 @@ class BlindBoxTurntableGift extends Model
$data['parent_id'] = $pan_xlh['id'];
$data['gift_bag_id'] = $gift_bag_id;
$data['gift_id'] = $value['gift_id'];
$data['periods'] = $room['blind_box_turntable_periods'];
$data['periods'] = $room_pan['periods'];
$data['room_id'] = $room_id;
$data['num'] = $value['count'];
$data['gift_price'] = $value['gift_price'];