From 2034849c007944054dad4dc909ef05d510424a9a 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, 9 Sep 2025 17:23:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=BF=E9=97=B4=E7=81=AB?= =?UTF-8?q?=E7=83=AD=E5=80=BC=20=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cron/controller/PerformPerSecond.php | 49 ++++++++++++++++--- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/application/cron/controller/PerformPerSecond.php b/application/cron/controller/PerformPerSecond.php index fb3b663..2c94d7b 100644 --- a/application/cron/controller/PerformPerSecond.php +++ b/application/cron/controller/PerformPerSecond.php @@ -30,12 +30,9 @@ class PerformPerSecond echo "pk发起10秒后无应答拒绝:\n"; $this->pk_start_refuse(); echo "\n"; -// echo "提现云账号订单状态查询:\n"; -// $this->withdraw_order_status(); -// echo "\n"; -// echo "清除交友房过期未结束数据:\n"; -// $this->clearFriendingEndRoom(); -// echo "\n"; + echo "房间火热值更新:\n"; + $this->room_hot_update(); + echo "\n"; } @@ -166,4 +163,44 @@ class PerformPerSecond } } + //房间火热值更新 + public function room_hot_update(){ + $room_id_list = db::name('vs_room')->field('id,room_id')->select(); + $room_list = db::name('vs_room_hot_value_log')->field('room_id,sum(value) as value')->group('room_id')->select(); + if($room_list){ + $data_count = 0; + $data_room_list = []; + foreach ($room_list as $value){ + $hot_value = 0; + $hot_values = db::name('vs_room')->where('id',$value['room_id'])->field('hot_value,today_hot_value')->find(); + if($hot_values['today_hot_value'] == $value['value'] || $value['value'] == 0){ + continue; + } + if($hot_values['today_hot_value'] < $value['value']){ + $hot_value = $hot_values['hot_value'] + ($value['value'] - $hot_values['today_hot_value']); + } + if($hot_values['today_hot_value'] > $value['value']){ + $hot_value = $hot_values['hot_value']; + } + + $res = db::name('vs_room')->where('id',$value['room_id'])->update([ + 'today_hot_value' => $value['value'], + 'hot_value' => $hot_value, + 'updatetime' => time() + ]); + if($res){ +// db::name('vs_room_hot_value_log')->where('room_id',$value['room_id'])->delete(); + $data_room_list[] = $value['room_id']; + } + $data_count ++; + } + foreach ($room_id_list as $v){ + if(in_array($v['room_id'],$data_room_list)){ + db::name('vs_room')->where('id',$v['id'])->delete(); + } + } + echo "Pk房PK结束惩罚倒计时结束断开操作-共". $data_count . "条数据\n"; + } + } + } \ No newline at end of file