Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2025-12-03 14:37:04 +08:00
5 changed files with 107 additions and 59 deletions

View File

@@ -64,37 +64,32 @@ class Family extends Model
*/ */
public function myFamily($user_id) public function myFamily($user_id)
{ {
$myFamily = db::name('vs_family')->where(['user_id' => $user_id,'type' => 1])->find(); $myFamily['group_owner_info'] = db::name('user')->where('id',$user_id)->field('nickname,avatar')->find();
if($myFamily){ $myFamily['group_owner_info']['dress'] = model('api/Decorate')->user_decorate_detail($user_id,1);
$myFamily['group_id'] = 'f'.$myFamily['id']; $myFamily['group_owner_info']['user_code'] = model('api/Decorate')->user_decorate_detail($user_id,6);
$myFamily['group_owner_info'] = db::name('user')->where('id',$myFamily['user_id'])->field('nickname,avatar')->find(); $myFamily['group_owner_info']['icon'][0] = model('api/UserData')->user_wealth_icon($user_id);//财富图标
$myFamily['group_owner_info']['dress'] = model('api/Decorate')->user_decorate_detail($user_id,1); $myFamily['group_owner_info']['icon'][1] = model('api/UserData')->user_charm_icon($user_id);//魅力图标
$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);//财富图标 $isSinnger = db::name('vs_singer')->where(['user_id' => $user_id,'status' => 1])->value('level');
$myFamily['group_owner_info']['icon'][1] = model('api/UserData')->user_charm_icon($user_id);//魅力图标 if($isSinnger){
//判断是否是歌手 如果是 返回等级图标 $myFamily['group_owner_info']['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标
$isSinnger = db::name('vs_singer')->where(['user_id' => $user_id,'status' => 1])->value('level'); }
if($isSinnger){ $Nobility = model('api/Nobility')->getUserNobilityInfo($user_id);
$myFamily['group_owner_info']['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger,'deletetime' => 0])->value('image');//等级图标 $myFamily['group_owner_info']['mic_cycle'] = model('api/Decorate')->user_decorate_detail($user_id,3);
} $myFamily['group_owner_info']['nobility_image'] = $Nobility['play_image'];
$Nobility = model('api/Nobility')->getUserNobilityInfo($user_id); $myFamily['group_owner_info']['nickname_color'] = $Nobility['nick_name_color'];
$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_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',$myFamily['user_id'])->sum('earnings'); $myFamily['group_earnings'] = db::name('vs_user_sign_earnings')->where('user_id',$user_id)->sum('earnings');
// $lists= db::name('vs_user_sign')->alias('a') $myFamilys = db::name('vs_family')->where(['user_id' => $user_id,'type' => 1])->find();
// ->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') if($myFamilys){
// ->where(['parent_user_id' => $myFamily['user_id'],'end_time' => ['>',time()]])
// ->select();
$lists= db::name('vs_family')->alias('a') $lists= db::name('vs_family')->alias('a')
->join('user b','a.user_id = b.id') ->join('user b','a.user_id = b.id')
->join('vs_user_sign c','a.user_id = c.sign_user_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') ->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,'c.end_time' => ['>',time()]])
->select(); ->select();
if($lists){ if($lists){
foreach ($lists as $k => $v){ foreach ($lists as $k => $v){
@@ -105,7 +100,8 @@ class Family extends Model
//判断是否是歌手 如果是 返回等级图标 //判断是否是歌手 如果是 返回等级图标
$isSinnger = db::name('vs_singer')->where(['user_id' => $v['user_id'],'status' => 1])->value('level'); $isSinnger = db::name('vs_singer')->where(['user_id' => $v['user_id'],'status' => 1])->value('level');
if($isSinnger){ 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']); $Nobility = model('api/Nobility')->getUserNobilityInfo($v['user_id']);
$lists[$k]['mic_cycle'] = model('api/Decorate')->user_decorate_detail($v['user_id'],3); $lists[$k]['mic_cycle'] = model('api/Decorate')->user_decorate_detail($v['user_id'],3);
@@ -144,7 +140,13 @@ class Family extends Model
} }
$myFamily['group_members_lists'] = $lists ; $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]; return ['code' => 1, 'msg' => '成功', 'data' => $myFamily];
} }

View File

@@ -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(); $room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if ($room_pit) { 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']); model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
} }
}elseif ($apply_type == 6){ }elseif ($apply_type == 6){
@@ -1930,7 +1933,8 @@ class Room extends Model
//开启事务 //开启事务
db::startTrans(); db::startTrans();
$data = []; $data = [];
if($type == 1 || $type == 3 || $type == 4 || $type == 8 || $type == 9 || $type == 10){ //1-交友3、4、8-不要了
if($type == 1 || $type == 3 || $type == 4 || $type == 8){
$data = [ $data = [
'label_id' => 1, 'label_id' => 1,
'type_id' => $type, 'type_id' => $type,
@@ -1938,6 +1942,7 @@ class Room extends Model
'is_song' => 1 'is_song' => 1
]; ];
} }
//拍卖
if($type == 2){ if($type == 2){
$data = [ $data = [
'label_id' => 3, 'label_id' => 3,
@@ -1946,7 +1951,7 @@ class Room extends Model
'is_song' => 1 'is_song' => 1
]; ];
} }
//交友房(互娱) //(互娱)
if($type == 7){ if($type == 7){
$data = [ $data = [
'label_id' => 5, 'label_id' => 5,
@@ -1954,6 +1959,23 @@ class Room extends Model
'room_up_pit_type' => 1, 'room_up_pit_type' => 1,
]; ];
} }
//点唱房 (让别人唱歌)
if($type == 9){
$data = [
'label_id' => 6,
'type_id' => $type,
'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); $res = db::name('vs_room')->where(['id' => $room_id])->update($data);
if(!$res){ if(!$res){

View File

@@ -458,6 +458,7 @@ class RoomPit extends Model
'a.status' => 0, 'a.status' => 0,
]; ];
//常规通道 type 0普通通道1优先通道
$list['regular'] = db::name('vs_room_pit_apply')->alias('a')->join('user b','a.user_id = b.id') $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') ->where($where)->where('a.type',0)->field('a.user_id,a.rank_value,b.nickname,b.avatar')
->order('a.rank_value desc')->select(); ->order('a.rank_value desc')->select();
@@ -483,25 +484,26 @@ class RoomPit extends Model
//把特殊用户放在最前面 //把特殊用户放在最前面
array_unshift($list['special'],$special); array_unshift($list['special'],$special);
} }
foreach ($list['special'] as $k => $v){ if($list['special']){
//查询用户的爵位 foreach ($list['special'] as $k => $v){
$juewei = model('Nobility')->getUserNobilityInfo($v['user_id']); //查询用户的爵位
if($juewei){ $juewei = model('Nobility')->getUserNobilityInfo($v['user_id']);
$v['jue_wei'] = $juewei; if($juewei){
}else{ $v['jue_wei'] = $juewei;
$v['jue_wei'] = [ }else{
'level' => 0, $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(); $list['gift_info'] = db::name('vs_room_pit_apply_help_gift')->where('room_id',$room_id)->find();
if($list['gift_info']){ if($list['gift_info']){

View File

@@ -449,29 +449,29 @@ class Sign extends Model
public function pit_number($room_id,$user_id = 0,$type = 0){ public function pit_number($room_id,$user_id = 0,$type = 0){
if($type == 1){//上麦或者换麦 if($type == 1){//上麦或者换麦
//获取房间2号位上的用户 //获取房间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(); ->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; return true;
} }
//处理2号位 //处理2号位
if($on_pit_user && $on_pit_user['user_id']){ if($on_pit2_user && $on_pit2_user['user_id']){
//2号位有其他用户需要处理该用户 //2号位有其他用户需要处理该用户
//获取2号位用户之前的位置上是否有用户 //获取2号位用户之前的位置上是否有用户
$before_pit_number = db::name('vs_room_pit') $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){ if($before_pit_number || $on_pit2_user['before_pit_number'] == 0){
//之前位置有人,直接下麦 //之前位置有人或者之前麦位为空,直接下麦
model('api/RoomPit')->DownPit($on_pit_user['user_id'], $room_id, 2); model('api/RoomPit')->DownPit($on_pit2_user['user_id'], $room_id, 2);
} else { } else {
//之前位置无人,换麦 //之前位置无人,换麦
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $on_pit_user['before_pit_number']]) db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $on_pit2_user['before_pit_number']])
->update(['user_id' => $on_pit_user['user_id']]); ->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]) ->where(['room_id' => $room_id, 'user_id' => $user_id])
->field('pit_number')->find(); ->field('pit_number')->find();
if($user_pit_info && $user_pit_info['pit_number']){ if($user_pit_info && $user_pit_info['pit_number']){//用户已在麦上
//用户已在麦上换到2号位 //移除原麦位上的自己信息
//记录原麦位信息
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $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]); ->update(['user_id' => 0]);
//换到2号位记录原麦位信息
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 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']]); ->update(['user_id' => $user_id,'before_pit_number' => $user_pit_info['pit_number']]);
//推送换麦消息 //推送换麦消息

View File

@@ -54,6 +54,10 @@ class PerformPerSecond
$this->system_downgrade(); $this->system_downgrade();
echo "\n"; 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()]);
}
}
}
}
} }