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

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(); $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])){ if(in_array($gift_bag_id,[10,11,12,13])){
$periods = 1;
if(!empty($room_id)){ if(!empty($room_id)){
$where['room_id'] = $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){ foreach ($gift_bag_detail as $k=>$v){
$where['gift_bag_detail_id'] = $v['id']; $where['gift_bag_detail_id'] = $v['id'];
$room_pan = db::name('vs_room_pan')->where($where)->select(); $room_pan = db::name('vs_room_pan')->where($where)->select();
if(!empty($room_pan)){ 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{ }else{
if($room_id){ if($room_id){
$bag_data = db::name('vs_room_pan')->insert([ $bag_data = db::name('vs_room_pan')->insert([
@@ -264,6 +269,7 @@ class BlindBox extends adminApi
'gift_bag_id' => $gift_bag_id, 'gift_bag_id' => $gift_bag_id,
'gift_bag_detail_id' => $v['id'], 'gift_bag_detail_id' => $v['id'],
'remaining_number' => $v['quantity'], 'remaining_number' => $v['quantity'],
'periods' => $periods,
'createtime' => time(), 'createtime' => time(),
]); ]);
}else{ }else{
@@ -275,6 +281,7 @@ class BlindBox extends adminApi
'gift_bag_id' => $gift_bag_id, 'gift_bag_id' => $gift_bag_id,
'gift_bag_detail_id' => $v['id'], 'gift_bag_detail_id' => $v['id'],
'remaining_number' => $v['quantity'], 'remaining_number' => $v['quantity'],
'periods' => $periods,
'createtime' => time(), 'createtime' => time(),
]); ]);
} }
@@ -569,6 +576,7 @@ class BlindBox extends adminApi
$count = db::name($this->table)->where($where)->count(); $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_data = db::name($this->table)->where($where)->page($page, $page_limit)->order("id desc")->select();
$lists = []; $lists = [];
$periods =1;
foreach ($lists_data as $key => $value) { foreach ($lists_data as $key => $value) {
$lists[$key]['id'] = $value['id']; $lists[$key]['id'] = $value['id'];
$lists[$key]['gift_id'] = $value['foreign_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]['is_world_show'] = $value['is_world_show'];
$lists[$key]['weight'] = $value['weight']; $lists[$key]['weight'] = $value['weight'];
$lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']); $lists[$key]['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
$periods = $room_pan['periods']??1;
} }
//统计 //统计
$total_data = []; $total_data = [];
@@ -629,7 +638,7 @@ class BlindBox extends adminApi
'lists' => $lists, 'lists' => $lists,
'bag_list' => $bag_list, 'bag_list' => $bag_list,
'total_data' => [ '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', '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_count' => $total_count,
'total_price' => $total_price, 'total_price' => $total_price,

View File

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

View File

@@ -106,7 +106,7 @@ class BlindBoxTurntableGift extends Model
} }
foreach ($toarray as $gift_user_id){ foreach ($toarray as $gift_user_id){
for($i = 0; $i < $num; $i++){ 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){ if($reslut_draw_gift_data['code'] != 1){
db::rollback(); db::rollback();
return ['code' => 0, 'msg' => $reslut_draw_gift_data['msg'], 'data' => null]; 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_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; $total_draw_times = $total_quantity - $total_remaining;
//随机获取一个礼物 //随机获取一个礼物
@@ -270,6 +272,7 @@ class BlindBoxTurntableGift extends Model
if($gift_bag_num <= 0){ if($gift_bag_num <= 0){
db::name("vs_gift_bag")->where('id',$gift_bag_id)->setInc('periods'); 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")->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( 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)')]); ['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{ try{
for($i = 0; $i < $num; $i++){ 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; $total_draw_times = $total_quantity - $total_remaining;
//随机获取一个礼物 //随机获取一个礼物
$where = [ $where = [
@@ -606,6 +610,7 @@ class BlindBoxTurntableGift extends Model
//判断剩余数量是否为0 为0重置进入下一期 //判断剩余数量是否为0 为0重置进入下一期
$gift_bag_num = db::name("vs_room_pan")->where(['room_id'=>$room_id,'gift_bag_id'=>$gift_bag_id])->sum('remaining_number'); $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){ 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( 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)')]); ['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['parent_id'] = $pan_xlh['id'];
$data['gift_bag_id'] = $gift_bag_id; $data['gift_bag_id'] = $gift_bag_id;
$data['gift_id'] = $value['gift_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['room_id'] = $room_id;
$data['num'] = $value['count']; $data['num'] = $value['count'];
$data['gift_price'] = $value['gift_price']; $data['gift_price'] = $value['gift_price'];