From c58ac9559e0bf9b3f443e4746c637f44152a9385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=92=8A?= Date: Wed, 3 Sep 2025 18:16:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A1=E4=B9=90=E4=BC=9A=E6=8A=BD=E5=A5=96?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8F=90=E4=BA=A4.-=E8=81=94=E8=B0=83-?= =?UTF-8?q?=E7=9B=98-bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/model/BlindBoxTurntableGift.php | 18 ++++++++++------ application/api/model/Gift.php | 8 +++---- application/cron/controller/RoomPan.php | 21 ++++++++++++++++++- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/application/api/model/BlindBoxTurntableGift.php b/application/api/model/BlindBoxTurntableGift.php index 2859b03..b373008 100644 --- a/application/api/model/BlindBoxTurntableGift.php +++ b/application/api/model/BlindBoxTurntableGift.php @@ -312,6 +312,7 @@ class BlindBoxTurntableGift extends Model 'homeowner_gift_id' => $xlh_ext['locking_condition']['give_homeowner_gift_id'], 'periods' => $room['xlh_periods']+1, 'num' => 0, + 'end_time' => time() + $xlh_ext['locking_time']['end_time'] * 60, 'createtime' => time() ]); if(!$pan_xlh_id){ @@ -338,12 +339,15 @@ class BlindBoxTurntableGift extends Model if(!$blind_box_turntable){ return ['code' => 0, 'msg' => '数据不存在','data' => null]; } - $blind_box_turntable_log = db('vs_blind_box_turntable_results_log')->where(['tid'=>$send_id,'is_sued'=>0])->select(); + $blind_box_turntable_log = db('vs_blind_box_turntable_results_log')->where(['tid'=>$send_id])->select(); if(!$blind_box_turntable_log){ return ['code' => 0, 'msg' => '开奖数据不存在','data' => null]; } //获取盲盒配置 foreach ($blind_box_turntable_log as $key => $value) { + if($value['is_sued'] == 1){ //礼物已发放就不再重复发放 + continue; + } $give_gift_ext['gift_id'] = $value['gift_id']; $give_gift_ext['count'] = $value['count']; $give_gift_ext['gift_price'] = $value['gift_price']; @@ -434,8 +438,6 @@ class BlindBoxTurntableGift extends Model if(empty($pan_xlh)){ return ['code' => 0, 'msg' => '未开始', 'data' => null]; } - //巡乐会结束时间 - $xlh_end_time = $pan_xlh['createtime'] + $xlh_ext['locking_time']['end_time'] * 60; $xlh_user_data= null; if($pan_xlh['user_id']){ $xlh_user = db::name('user')->where('id',$pan_xlh['user_id'])->find(); @@ -444,14 +446,12 @@ class BlindBoxTurntableGift extends Model 'nickname' => $xlh_user['nickname'], 'avatar' => $xlh_user['avatar'], ]; - //寻乐会结束时间 - $xlh_end_time = $pan_xlh['end_time']; } $result_data = [ 'title' => $xlh_box['name'], 'rule_url' => get_system_config_value('web_site')."/api/Page/get_gift_box_rule?box_id=".$xlh_box["id"], 'box_price' => $xlh_ext['xlh_box_price'], - 'xlh_end_time' =>$xlh_end_time, + 'xlh_end_time' =>$pan_xlh['end_time'], 'give_homeowner_gift' => [ 'gift_id' => $room_user_gift['gid'], 'gift_name' => $room_user_gift['gift_name'], @@ -492,6 +492,12 @@ class BlindBoxTurntableGift extends Model if(empty($pan_xlh)){ return ['code' => 0, 'msg' => '未开始', 'data' => null]; } + if($pan_xlh['end_time']<=time()){ + return ['code' => 0, 'msg' => '本轮已结束', 'data' => null]; + } + if($pan_xlh['send_time']!=0){ + return ['code' => 0, 'msg' => '本轮已结束,礼物已发放', 'data' => null]; + } $is_zhong_jiang = 0; $pan_xlh_num = $pan_xlh['num']; //奖池总的抽奖次数 diff --git a/application/api/model/Gift.php b/application/api/model/Gift.php index 66ad136..907b470 100644 --- a/application/api/model/Gift.php +++ b/application/api/model/Gift.php @@ -61,12 +61,12 @@ class Gift extends Model } } } - foreach ($list as $k=>$v) { + foreach ($list as $gift) { if($is_open_blind_box_turntable == 1){ - $list_data[] = $v; + $list_data[] = $gift; }else{ - if(isset($v['activities_id']) && $v['activities_id'] == 4){ - $list_data[] = $v; + if(isset($gift['activities_id']) && $gift['activities_id'] == 4){ + $list_data[] = $gift; } } } diff --git a/application/cron/controller/RoomPan.php b/application/cron/controller/RoomPan.php index 44319a7..10cd587 100644 --- a/application/cron/controller/RoomPan.php +++ b/application/cron/controller/RoomPan.php @@ -56,12 +56,31 @@ class RoomPan * 巡乐会结束 礼物发放 【定时脚本】 */ public function xlh_gift_send(){ - $xlh_list = db::name('vs_room_pan_xlh')->where(['send_time'=>0,'user_id'=>['neq',0],'end_time'=>['<',time()]])->select(); + $xlh_list = db::name('vs_room_pan_xlh')->where(['send_time'=>0,'end_time'=>['<',time()]])->select(); if(empty($xlh_list)){ echo "没有需要发放的礼物 \n"; } foreach ($xlh_list as $key=>$value){ try{ + if($value['user_id'] == 0){ + echo "第.".$value['periods']." 巡乐会结束 没有中奖用户 \n"; + $res = db::name('vs_room_pan_xlh')->where('id',$value['id'])->update([ + 'send_time' => time() + ]); + db::name("vs_room")->where('id',$value['room_id'])->update([ + 'xlh_periods_num' => 0 + ]); + //推送礼物横幅 + $text = "本轮巡乐会已结束,请大家重新开始下一轮巡乐会"; + $push = new Push(0, $value['room_id']); + $text_list_new = [ + 'text' => $text, + 'room_id' => $value['room_id'], + 'from_type' => 3 + ]; + $push->xunlehui($text_list_new); + continue; + } //发放 //抽中礼物落包 $res = [];