From 35953326c6f957300f7e97d6e9379e72c341ca6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Tue, 30 Sep 2025 22:36:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E6=97=B6=E6=A6=9C=E7=A4=BC=E7=89=A9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/RoomHourRanking.php | 2 +- .../cron/controller/RoomHourRanking.php | 65 ++++++++++--------- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/application/api/model/RoomHourRanking.php b/application/api/model/RoomHourRanking.php index 0a866fe..b5f0438 100644 --- a/application/api/model/RoomHourRanking.php +++ b/application/api/model/RoomHourRanking.php @@ -23,7 +23,7 @@ class RoomHourRanking extends Model //判断是否开启 $open_time = db::name('vs_hour_ranking_config')->where('id', 1)->value('open_time'); if ($open_time == 0) { -// return ['code' => 0, 'msg' => '排行榜暂未开启', 'data' => null]; + return ['code' => 0, 'msg' => '排行榜暂未开启', 'data' => null]; } //是否开启巡乐会 diff --git a/application/cron/controller/RoomHourRanking.php b/application/cron/controller/RoomHourRanking.php index a38d3c9..b2f768e 100644 --- a/application/cron/controller/RoomHourRanking.php +++ b/application/cron/controller/RoomHourRanking.php @@ -70,8 +70,8 @@ class RoomHourRanking $distributionResult = $this->distributeByRank($groupedRewards); //获取上个数组的个数,从而获取配置了多少个名次 - $count = count($gift_list); -// echo "上个时间段的配置总数:" .$count."\n"; + $count = count($distributionResult); + echo "上个时间段的配置总数:" .$count."\n"; //获取前一个小时的 前$count名房间排行 $room_list = model('api/RoomHourRanking')->room_hour_ranking(1, $count, $start_time, $end_time); $room_owner = []; @@ -79,26 +79,31 @@ class RoomHourRanking //获取房间排行奖励最低值 $min_price = db::name('vs_hour_ranking_config')->where('id', 1)->value('min_price'); if ($room_list['data']['lists']) { - $i = 0; - foreach ($room_list['data']['lists'] as $k => $v){ + echo "房间列表:" .json_encode($room_list['data']['lists'])."\n"; + foreach ($room_list['data']['lists'] as $v){ if ($v['total_price'] >= $min_price) { - $room_owner[$i]['user_id'] = $v['user_id']; - $room_owner[$i]['room_name'] = $v['room_name']; - $room_owner[$i]['room_id'] = $v['room_id']; - $room_owner[$i]['total_price'] = $v['total_price']; + $room_owner[] = [ + 'user_id' => $v['user_id'], + 'room_name' => $v['room_name'], + 'room_id' => $v['room_id'], + 'total_price' => $v['total_price'] + ]; } - $i++; } } } if ($distributionResult && $room_owner) { $text_list_new = []; -// echo "礼物数:" .json_encode($distributionResult)."\n"; + echo "礼物数:" .json_encode($distributionResult)."\n"; + echo "房主:" .json_encode($room_owner)."\n"; foreach ($distributionResult as $k => $value) { //礼物全部给他偷偷放在装扮表及金额 中 //有几个用户就发几个 if(count($room_owner) > $k){ + // 为每个房间添加一个标志,表示是否已处理推送信息 + $hasProcessedPush = false; + foreach ($value['rewards'] as $v){ if($v['type'] == 0){//1金币2礼物3头像4坐骑 echo "发金币:" .$v['value'].'==>'.$room_owner[$k]['user_id']."\n"; @@ -111,28 +116,26 @@ class RoomHourRanking }elseif ($v['type'] == 3){ $res = $this->add_decorate($v['value'], $room_owner[$k]['user_id'],$k + 1,$room_owner[$k]['room_id'],$room_owner[$k]['total_price'],$is_piao,4); } - if(isset($res) && $res){ - if($is_piao == 1){ - $room_name = $room_owner[$k]['room_name']; - //推送礼物横幅 - if($k == 0){ - $text = '新科状元!【'.$room_name.'】独占鳌头!'; - } - elseif($k == 1){ - $text = '金榜榜眼!【'.$room_name.'】才气逼人!'; - } - elseif($k == 2){ - $text = '风采探花!【'.$room_name.'】实力绽放!'; - } - - $text_list_new[] = [ - 'text' => $text ?? '恭喜【'.$room_name.'】获得礼物!', - 'room_id' => $room_owner[$k]['room_id'], - 'room_name' => $room_name, - 'rank_number' => $k + 1, - ]; - + // 只有在第一次处理奖励时添加推送信息,避免重复推送 + if(!$hasProcessedPush && $is_piao == 1) { + $room_name = $room_owner[$k]['room_name']; + //推送礼物横幅 + if ($k == 0) { + $text = '新科状元!【' . $room_name . '】独占鳌头!'; + } elseif ($k == 1) { + $text = '金榜榜眼!【' . $room_name . '】才气逼人!'; + } elseif ($k == 2) { + $text = '风采探花!【' . $room_name . '】实力绽放!'; } + + $text_list_new[] = [ + 'text' => $text ?? '恭喜【' . $room_name . '】获得礼物!', + 'room_id' => $room_owner[$k]['room_id'], + 'room_name' => $room_name, + 'rank_number' => $k + 1, + ]; + + $hasProcessedPush = true; // 标记已处理推送 } }