From 89cfa4ca637fc328d892dd8e6c030b7c09e5f365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 11:48:30 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=AE=B6=E6=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Family.php | 53 ++++++++++++++++---------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/application/api/model/Family.php b/application/api/model/Family.php index 78b8b4a..7de2780 100644 --- a/application/api/model/Family.php +++ b/application/api/model/Family.php @@ -64,37 +64,31 @@ class Family extends Model */ public function myFamily($user_id) { - $myFamily = db::name('vs_family')->where(['user_id' => $user_id,'type' => 1])->find(); - if($myFamily){ - $myFamily['group_id'] = 'f'.$myFamily['id']; - $myFamily['group_owner_info'] = db::name('user')->where('id',$myFamily['user_id'])->field('nickname,avatar')->find(); - $myFamily['group_owner_info']['dress'] = model('api/Decorate')->user_decorate_detail($user_id,1); - $myFamily['group_owner_info']['user_code'] = model('api/Decorate')->user_decorate_detail($user_id,6); - $myFamily['group_owner_info']['icon'][0] = model('api/UserData')->user_wealth_icon($user_id);//财富图标 - $myFamily['group_owner_info']['icon'][1] = model('api/UserData')->user_charm_icon($user_id);//魅力图标 - //判断是否是歌手 如果是 返回等级图标 - $isSinnger = db::name('vs_singer')->where(['user_id' => $user_id,'status' => 1])->value('level'); - if($isSinnger){ - $myFamily['group_owner_info']['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标 - } - $Nobility = model('api/Nobility')->getUserNobilityInfo($user_id); - $myFamily['group_owner_info']['mic_cycle'] = model('api/Decorate')->user_decorate_detail($user_id,3); - $myFamily['group_owner_info']['nobility_image'] = $Nobility['play_image']; - $myFamily['group_owner_info']['nickname_color'] = $Nobility['nick_name_color']; + $myFamily['group_owner_info'] = db::name('user')->where('id',$user_id)->field('nickname,avatar')->find(); + $myFamily['group_owner_info']['dress'] = model('api/Decorate')->user_decorate_detail($user_id,1); + $myFamily['group_owner_info']['user_code'] = model('api/Decorate')->user_decorate_detail($user_id,6); + $myFamily['group_owner_info']['icon'][0] = model('api/UserData')->user_wealth_icon($user_id);//财富图标 + $myFamily['group_owner_info']['icon'][1] = model('api/UserData')->user_charm_icon($user_id);//魅力图标 + //判断是否是歌手 如果是 返回等级图标 + $isSinnger = db::name('vs_singer')->where(['user_id' => $user_id,'status' => 1])->value('level'); + if($isSinnger){ + $myFamily['group_owner_info']['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标 + } + $Nobility = model('api/Nobility')->getUserNobilityInfo($user_id); + $myFamily['group_owner_info']['mic_cycle'] = model('api/Decorate')->user_decorate_detail($user_id,3); + $myFamily['group_owner_info']['nobility_image'] = $Nobility['play_image']; + $myFamily['group_owner_info']['nickname_color'] = $Nobility['nick_name_color']; - $myFamily['group_members_num'] = db::name('vs_user_sign')->where(['parent_user_id' => $myFamily['user_id']])->count(); - $myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$myFamily['user_id'])->sum('earnings'); + $myFamily['group_members_num'] = db::name('vs_user_sign')->where(['parent_user_id' => $myFamily['user_id']])->count(); + $myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$myFamily['user_id'])->sum('earnings'); -// $lists= db::name('vs_user_sign')->alias('a') -// ->join('user b','a.sign_user_id = b.id') -// ->field('b.is_online,b.market_value,b.nickname,b.avatar,b.user_code,a.sign_user_id as user_id,a.type,a.end_time,a.sign_user_type') -// ->where(['parent_user_id' => $myFamily['user_id'],'end_time' => ['>',time()]]) -// ->select(); + $myFamilys = db::name('vs_family')->where(['user_id' => $user_id,'type' => 1])->find(); + if($myFamilys){ $lists= db::name('vs_family')->alias('a') ->join('user b','a.user_id = b.id') ->join('vs_user_sign c','a.user_id = c.sign_user_id') ->field('b.is_online,b.market_value,b.nickname,b.avatar,b.user_code,c.type,c.end_time,c.sign_user_type,a.user_id') - ->where(['a.pid' => $myFamily['user_id'],'a.deletetime' => 0,'a.type' => 0]) + ->where(['a.pid' => $myFamilys['user_id'],'a.deletetime' => 0,'a.type' => 0]) ->select(); if($lists){ foreach ($lists as $k => $v){ @@ -105,7 +99,8 @@ class Family extends Model //判断是否是歌手 如果是 返回等级图标 $isSinnger = db::name('vs_singer')->where(['user_id' => $v['user_id'],'status' => 1])->value('level'); if($isSinnger){ - $lists[$k]['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标 + $lists[$k]['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0]) + ->value('image');//等级图标 } $Nobility = model('api/Nobility')->getUserNobilityInfo($v['user_id']); $lists[$k]['mic_cycle'] = model('api/Decorate')->user_decorate_detail($v['user_id'],3); @@ -144,7 +139,13 @@ class Family extends Model } $myFamily['group_members_lists'] = $lists ; + $myFamily['group_id'] = 'f'.$myFamilys['id']; + }else{ + $myFamily['group_id'] = null; + $myFamily['group_members_lists'] = null ; } + + return ['code' => 1, 'msg' => '成功', 'data' => $myFamily]; } From dbe3557ca82ca30b950838c2029cdda7328e6830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 12:09:10 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E5=AE=B6=E6=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Family.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/api/model/Family.php b/application/api/model/Family.php index 7de2780..4e57aae 100644 --- a/application/api/model/Family.php +++ b/application/api/model/Family.php @@ -83,12 +83,13 @@ class Family extends Model $myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$myFamily['user_id'])->sum('earnings'); $myFamilys = db::name('vs_family')->where(['user_id' => $user_id,'type' => 1])->find(); + if($myFamilys){ $lists= db::name('vs_family')->alias('a') ->join('user b','a.user_id = b.id') ->join('vs_user_sign c','a.user_id = c.sign_user_id') ->field('b.is_online,b.market_value,b.nickname,b.avatar,b.user_code,c.type,c.end_time,c.sign_user_type,a.user_id') - ->where(['a.pid' => $myFamilys['user_id'],'a.deletetime' => 0,'a.type' => 0]) + ->where(['a.pid' => $myFamilys['user_id'],'a.deletetime' => 0,'a.type' => 0,'c.end_time' => ['>',time()]]) ->select(); if($lists){ foreach ($lists as $k => $v){ From df52882ff9cf14451d6bb926773e8193af5c666a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 12:17:02 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=B8=88=E5=82=85=E9=BA=A6=E4=BD=8D?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E4=B8=8B=E9=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Room.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/application/api/model/Room.php b/application/api/model/Room.php index d56d8e1..d14b9cf 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1294,6 +1294,9 @@ class Room extends Model } $room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find(); if ($room_pit) { + if($room_pit['pit_number'] == 2){ + return ['code' => 0, 'msg' => '师傅麦不能退出', 'data' => null]; + } model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']); } }elseif ($apply_type == 6){ From 05b230f811981afbb5a935b270d626f7143bbc1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 12:27:14 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E7=AD=BE=E7=BA=A6=E5=88=B0=E6=9C=9F?= =?UTF-8?q?=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 | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/application/cron/controller/PerformPerSecond.php b/application/cron/controller/PerformPerSecond.php index 3766fc4..e329de5 100644 --- a/application/cron/controller/PerformPerSecond.php +++ b/application/cron/controller/PerformPerSecond.php @@ -54,6 +54,10 @@ class PerformPerSecond $this->system_downgrade(); echo "\n"; + echo "签约到期处理:\n"; + $this->sign_room_expire(); + echo "\n"; + } @@ -434,4 +438,23 @@ class PerformPerSecond } } + public function sign_room_expire(){ + $res = Db::name('vs_room_sign')->where(['end_time' => ['>',time()],'status' => 1])->select(); + if($res){ + foreach ($res as $value){ + db::name('vs_room_sign')->where('id',$value['id'])->update(['status' => 2]); + //处理家族 + $myFamily = db::name('vs_family') + ->where(['user_id' => $value['sign_user_id'],'type' => 0,'pid' => $value['parent_user_id'],'deletetime' => 0])->find(); + if($myFamily){ + $mySignFamily = db::name('vs_family')->where(['user_id' => $value['parent_user_id'],'type' => 1])->find(); + //删除群成员 + model('api/Tencent')->delete_group_member('f'.$mySignFamily['id'], $value['sign_user_id']); + //退出家族 + db::name('vs_family')->where('id', $myFamily['id'])->update(['deletetime' => time()]); + } + } + } + } + } \ No newline at end of file From 4ed322e6363d77ef7f3ccc86cbfa60dd5fe00225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 12:44:11 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E5=87=BA=E4=BB=B7=E6=8D=A2=E9=BA=A6?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Sign.php | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/application/api/model/Sign.php b/application/api/model/Sign.php index 4ed906f..97fff24 100644 --- a/application/api/model/Sign.php +++ b/application/api/model/Sign.php @@ -449,29 +449,29 @@ class Sign extends Model public function pit_number($room_id,$user_id = 0,$type = 0){ if($type == 1){//上麦或者换麦 //获取房间2号位上的用户 - $on_pit_user = db::name('vs_room_pit') + $on_pit2_user = db::name('vs_room_pit') ->where(['room_id' => $room_id,'pit_number' => 2])->field('before_pit_number,user_id')->find(); - if($on_pit_user['user_id'] == $user_id){ + if($on_pit2_user['user_id'] == $user_id){ return true; } //处理2号位 - if($on_pit_user && $on_pit_user['user_id']){ + if($on_pit2_user && $on_pit2_user['user_id']){ //2号位有其他用户,需要处理该用户 //获取2号位用户之前的位置上是否有用户 $before_pit_number = db::name('vs_room_pit') - ->where(['room_id' => $room_id,'pit_number' => $on_pit_user['before_pit_number']])->value('user_id'); + ->where(['room_id' => $room_id,'pit_number' => $on_pit2_user['before_pit_number']])->value('user_id'); - if($before_pit_number && $on_pit_user['before_pit_number'] != 0){ - //之前位置有人,直接下麦 - model('api/RoomPit')->DownPit($on_pit_user['user_id'], $room_id, 2); + if($before_pit_number || $on_pit2_user['before_pit_number'] == 0){ + //之前位置有人或者之前麦位为空,直接下麦 + model('api/RoomPit')->DownPit($on_pit2_user['user_id'], $room_id, 2); } else { //之前位置无人,换麦 - db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $on_pit_user['before_pit_number']]) - ->update(['user_id' => $on_pit_user['user_id']]); + db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $on_pit2_user['before_pit_number']]) + ->update(['user_id' => $on_pit2_user['user_id']]); //推送换麦消息 - $this->sendPitChangeMessage($on_pit_user['user_id'], $room_id, 2, $on_pit_user['before_pit_number']); + $this->sendPitChangeMessage($on_pit2_user['user_id'], $room_id, 2, $on_pit2_user['before_pit_number']); } } @@ -482,12 +482,11 @@ class Sign extends Model ->where(['room_id' => $room_id, 'user_id' => $user_id]) ->field('pit_number')->find(); - if($user_pit_info && $user_pit_info['pit_number']){ - //用户已在麦上,换到2号位 - //记录原麦位信息 + if($user_pit_info && $user_pit_info['pit_number']){//用户已在麦上 + //移除原麦位上的自己信息 db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $user_pit_info['pit_number']]) ->update(['user_id' => 0]); - + //换到2号位,记录原麦位信息 db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 2]) ->update(['user_id' => $user_id,'before_pit_number' => $user_pit_info['pit_number']]); //推送换麦消息 From 1d2cb34dd042d990d2b3d1d4998f92d6f3e9b718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 12:50:50 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Room.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/application/api/model/Room.php b/application/api/model/Room.php index d14b9cf..068b62a 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1933,7 +1933,7 @@ class Room extends Model //开启事务 db::startTrans(); $data = []; - if($type == 1 || $type == 3 || $type == 4 || $type == 8 || $type == 9 || $type == 10){ + if($type == 1 || $type == 3 || $type == 4 || $type == 8 || $type == 9){ $data = [ 'label_id' => 1, 'type_id' => $type, @@ -1957,6 +1957,14 @@ class Room extends Model 'room_up_pit_type' => 1, ]; } + + if($type == 10){ + $data = [ + 'label_id' => 7, + 'type_id' => $type, + 'room_up_pit_type' => 1, + ]; + } $res = db::name('vs_room')->where(['id' => $room_id])->update($data); if(!$res){ From 1ed607a1db57bcd39a9fbd581451d22710831133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 13:05:57 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Room.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/application/api/model/Room.php b/application/api/model/Room.php index 068b62a..3d43b6b 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1933,7 +1933,8 @@ class Room extends Model //开启事务 db::startTrans(); $data = []; - if($type == 1 || $type == 3 || $type == 4 || $type == 8 || $type == 9){ + //1-交友,3、4、8-不要了 + if($type == 1 || $type == 3 || $type == 4 || $type == 8){ $data = [ 'label_id' => 1, 'type_id' => $type, @@ -1941,6 +1942,7 @@ class Room extends Model 'is_song' => 1 ]; } + //拍卖 if($type == 2){ $data = [ 'label_id' => 3, @@ -1949,7 +1951,7 @@ class Room extends Model 'is_song' => 1 ]; } - //交友房(互娱) + //(互娱) if($type == 7){ $data = [ 'label_id' => 5, @@ -1958,6 +1960,15 @@ class Room extends Model ]; } + //点唱房 (让别人唱歌) + if($type == 9){ + $data = [ + 'label_id' => 6, + 'type_id' => $type, + 'room_up_pit_type' => 1, + ]; + } + //签约房 if($type == 10){ $data = [ 'label_id' => 7, From 7c9c82b208cda5c1b95fa900afc9041c7f7e8d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 14:19:58 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/RoomPit.php | 36 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/application/api/model/RoomPit.php b/application/api/model/RoomPit.php index 0ef2230..a344395 100644 --- a/application/api/model/RoomPit.php +++ b/application/api/model/RoomPit.php @@ -458,6 +458,7 @@ class RoomPit extends Model 'a.status' => 0, ]; + //常规通道 type: 0普通通道,1优先通道 $list['regular'] = db::name('vs_room_pit_apply')->alias('a')->join('user b','a.user_id = b.id') ->where($where)->where('a.type',0)->field('a.user_id,a.rank_value,b.nickname,b.avatar') ->order('a.rank_value desc')->select(); @@ -483,25 +484,26 @@ class RoomPit extends Model //把特殊用户放在最前面 array_unshift($list['special'],$special); } - foreach ($list['special'] as $k => $v){ - //查询用户的爵位 - $juewei = model('Nobility')->getUserNobilityInfo($v['user_id']); - if($juewei){ - $v['jue_wei'] = $juewei; - }else{ - $v['jue_wei'] = [ - 'level' => 0, - ]; + if($list['special']){ + foreach ($list['special'] as $k => $v){ + //查询用户的爵位 + $juewei = model('Nobility')->getUserNobilityInfo($v['user_id']); + if($juewei){ + $v['jue_wei'] = $juewei; + }else{ + $v['jue_wei'] = [ + 'level' => 0, + ]; + } } + //先根据$v['jue_wei'] 下面的level 由大到小排序,再根据$v['rank_value'] 由大到小排序level + usort($list['special'], function($a, $b) { + if ($a['jue_wei']['level'] == $b['jue_wei']['level']) { + return $b['rank_value'] - $a['rank_value']; + } + return $b['jue_wei']['level'] - $a['jue_wei']['level']; + }); } - //先根据$v['jue_wei'] 下面的level 由大到小排序,再根据$v['rank_value'] 由大到小排序level - usort($list['regular'], function($a, $b) { - if ($a['jue_wei']['level'] == $b['jue_wei']['level']) { - return $b['rank_value'] - $a['rank_value']; - } - return $b['jue_wei']['level'] - $a['jue_wei']['level']; - }); - $list['gift_info'] = db::name('vs_room_pit_apply_help_gift')->where('room_id',$room_id)->find(); if($list['gift_info']){ From 12b62fe679b892bc9c77b4dc55ccdd0fa82c5e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Wed, 3 Dec 2025 14:23:07 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E6=88=91=E7=9A=84=E5=AE=B6=E6=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/Family.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/api/model/Family.php b/application/api/model/Family.php index 4e57aae..be179dc 100644 --- a/application/api/model/Family.php +++ b/application/api/model/Family.php @@ -79,8 +79,8 @@ class Family extends Model $myFamily['group_owner_info']['nobility_image'] = $Nobility['play_image']; $myFamily['group_owner_info']['nickname_color'] = $Nobility['nick_name_color']; - $myFamily['group_members_num'] = db::name('vs_user_sign')->where(['parent_user_id' => $myFamily['user_id']])->count(); - $myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$myFamily['user_id'])->sum('earnings'); + $myFamily['group_members_num'] = db::name('vs_user_sign')->where(['parent_user_id' => $user_id])->count(); + $myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$user_id)->sum('earnings'); $myFamilys = db::name('vs_family')->where(['user_id' => $user_id,'type' => 1])->find();