diff --git a/application/adminapi/controller/BlindBox.php b/application/adminapi/controller/BlindBox.php index 96533a6..c27a750 100644 --- a/application/adminapi/controller/BlindBox.php +++ b/application/adminapi/controller/BlindBox.php @@ -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, diff --git a/application/api/controller/UserGiftPack.php b/application/api/controller/UserGiftPack.php index a674f04..35dde4b 100644 --- a/application/api/controller/UserGiftPack.php +++ b/application/api/controller/UserGiftPack.php @@ -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']); } diff --git a/application/api/model/BlindBoxTurntableGift.php b/application/api/model/BlindBoxTurntableGift.php index b24b489..cb2af5b 100644 --- a/application/api/model/BlindBoxTurntableGift.php +++ b/application/api/model/BlindBoxTurntableGift.php @@ -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'];