评论 评论 和点歌置顶

This commit is contained in:
2026-01-04 11:49:34 +08:00
parent 3972716675
commit 07ed282141
2 changed files with 58 additions and 52 deletions

View File

@@ -211,7 +211,10 @@ class UserZone extends adminApi
$zid = $comment_data['zone_id'];
$pid = $id;
$reply_to = input('reply_to', 0);
$reslut = model('api/UserZone')->comment_zone(0, $zid, $content,$pid, $reply_to);
if(!$reply_to){
$reply_to = $comment_data['user_id'];
}
$reslut = model('api/UserZone')->comment_zone(21216, $zid, $content,$pid, $reply_to);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}

View File

@@ -175,7 +175,7 @@ class RoomSong extends Model
public function song($room_id,$user_id,$song_code,$song_name,$singer,$poster,$duration){
$action = 0;//初始值1-申请点歌2-切歌3-下一首歌曲变化4-拒绝申请点歌
//查询当前房间中的场次状态
$times_status = db::name('vs_room_song')->where('room_id',$room_id)->field('times,times_status')->order('sort desc')->find();
$times_status = db::name('vs_room_song')->where('room_id',$room_id)->field('times,times_status')->order('times desc,sort desc')->find();
if(!empty($times_status)){//已经有歌曲
if($times_status['times_status'] == 2){//这一场次结束了
$data['sort'] = 10000;//排序,新场次第一首歌
@@ -327,21 +327,32 @@ class RoomSong extends Model
return ['code'=>0,'msg'=>'您没有权限操作','data'=>null];
}
//根据房间ID查询当前房间中正在排序的歌曲 并获取当前排序的前一位的ID
$sort_up = db::name('vs_room_song')->where(['room_id' => $sort['room_id'],'status' => 1,'times' =>$sort['times'],'times_status' => 1])->field('did')->order('sort desc')->select();
$sort_up = db::name('vs_room_song')
->where(['room_id' => $sort['room_id'],'status' => 1,'times' =>$sort['times'],'times_status' => 1])
->field('did,status,song_code,song_name,singer,poster,duration,user_id')->order('sort desc')->select();
if($sort_up[0]['did'] == $room_song_id){
return ['code'=>0,'msg'=>'已经是第一首歌了','data'=>null];
}
$sort_ups = 1000;//默认值
$now_room_song = 0;
if($type == 1){ //上移
foreach ($sort_up as $k=>$v){
if($v['did'] == $room_song_id){
$sort_ups = $sort_up[$k-1]['did'];
}
if($v['status'] == 2){
$now_room_song = 1;
}
}
$fa_zhi = 0;
}else{ //置顶
$sort_ups = $sort_up[0]['did'];
foreach ($sort_up as $k=>$v){
$sort_ups = $sort_up[0]['did'];
if($v['status'] == 2){
$now_room_song = 1;
}
}
$fa_zhi = 9;//阈值 为了防止置顶后被上移歌曲覆盖
}
@@ -352,44 +363,36 @@ class RoomSong extends Model
return ['code'=>0,'msg'=>'操作失败','data'=>null];
}
$data = db::name('vs_room_song')->where(['room_id' => $sort['room_id'],'status' => 1,'times' =>$sort['times'],'times_status' => 1])
->order('sort desc')->select();
//查询当前是否有正在演唱的歌曲
$now_room_song = db::name('vs_room_song') ->where('room_id',$sort['room_id'])
->where('times',$sort['times'])
->where('status',2)
->find();
if(empty($now_room_song)){
if(!$now_room_song){
$total = db::name('vs_room_song')
->where(['room_id' => $sort['room_id'],'status' => 1,'times_status' => 1])
->count();
$nowInfo = [
'did' => $data[0]['did'],
'song_code' => $data[0]['song_code'],
'song_name' => $data[0]['song_name'],
'singer' => $data[0]['singer'],
'poster' => $data[0]['poster'],
'duration' => $data[0]['duration'],
'user_id' => $data[0]['user_id'],
'dress' => model('Decorate')->user_decorate_detail($data[0]['user_id'], 1),
'nickname' => db::name('user')->where('id',$data[0]['user_id'])->value('nickname'),
'avatar' => db::name('user')->where('id',$data[0]['user_id'])->value('avatar'),
'charm' => db::name('vs_room_user_charm')->where(['user_id' => $data[0]['user_id'],'room_id' => $sort['room_id']])->value('charm'),
'did' => $sort_up[0]['did'],
'song_code' => $sort_up[0]['song_code'],
'song_name' => $sort_up[0]['song_name'],
'singer' => $sort_up[0]['singer'],
'poster' => $sort_up[0]['poster'],
'duration' => $sort_up[0]['duration'],
'user_id' => $sort_up[0]['user_id'],
'dress' => model('Decorate')->user_decorate_detail($sort_up[0]['user_id'], 1),
'nickname' => db::name('user')->where('id',$sort_up[0]['user_id'])->value('nickname'),
'avatar' => db::name('user')->where('id',$sort_up[0]['user_id'])->value('avatar'),
'charm' => db::name('vs_room_user_charm')->where(['user_id' => $sort_up[0]['user_id'],'room_id' => $sort['room_id']])->value('charm'),
];
if(isset($data[1]['did'])){
if(count($sort_up) >= 2){
$nextInfo = [
'did' => $data[1]['did'],
'song_code' => $data[1]['song_code'],
'song_name' => $data[1]['song_name'],
'singer' => $data[1]['singer'],
'poster' => $data[1]['poster'],
'duration' => $data[1]['duration'],
'user_id' => $data[1]['user_id'],
'dress' => model('Decorate')->user_decorate_detail($data[1]['user_id'], 1),
'nickname' => db::name('user')->where('id',$data[1]['user_id'])->value('nickname'),
'avatar' => db::name('user')->where('id',$data[1]['user_id'])->value('avatar'),
'charm' => db::name('vs_room_user_charm')->where(['user_id' =>$data[1]['user_id'],'room_id' => $sort['room_id']])->value('charm'),
'did' => $sort_up[1]['did'],
'song_code' => $sort_up[1]['song_code'],
'song_name' => $sort_up[1]['song_name'],
'singer' => $sort_up[1]['singer'],
'poster' => $sort_up[1]['poster'],
'duration' => $sort_up[1]['duration'],
'user_id' => $sort_up[1]['user_id'],
'dress' => model('Decorate')->user_decorate_detail($sort_up[1]['user_id'], 1),
'nickname' => db::name('user')->where('id',$sort_up[1]['user_id'])->value('nickname'),
'avatar' => db::name('user')->where('id',$sort_up[1]['user_id'])->value('avatar'),
'charm' => db::name('vs_room_user_charm')->where(['user_id' =>$sort_up[1]['user_id'],'room_id' => $sort['room_id']])->value('charm'),
];
}else{
$nextInfo = null;
@@ -402,28 +405,28 @@ class RoomSong extends Model
'nextInfo' => $nextInfo
];
model('Chat')->sendMsg(1013,$sort['room_id'],$text);
Cache::set("api:room:song:nextInfo:" . $sort['room_id'],$data[0]['did']);
return ['code'=>1,'msg'=>'操作成功','data'=>$data];
Cache::set("api:room:song:nextInfo:" . $sort['room_id'],$sort_up[0]['did']);
return ['code'=>1,'msg'=>'操作成功','data'=>null];
}
$did = Cache::get("api:room:song:nextInfo:" . $sort['room_id']);
//歌曲移动后,下一首播放歌曲信息 发生改变 推送给前端
if($data[0]['did'] != $did){
if($sort_up[0]['did'] != $did){
$total = db::name('vs_room_song')
->where(['room_id' => $sort['room_id'],'status' => 1,'times_status' => 1])
->count();
$info = [
'did' => $data[0]['did'],
'song_code' => $data[0]['song_code'],
'song_name' => $data[0]['song_name'],
'singer' => $data[0]['singer'],
'poster' => $data[0]['poster'],
'duration' => $data[0]['duration'],
'user_id' => $data[0]['user_id'],
'dress' => model('Decorate')->user_decorate_detail($data[0]['user_id'], 1),
'nickname' => db::name('user')->where('id',$data[0]['user_id'])->value('nickname'),
'avatar' => db::name('user')->where('id',$data[0]['user_id'])->value('avatar'),
'charm' => db::name('vs_room_user_charm')->where(['user_id' => $data[0]['user_id'],'room_id' => $sort['room_id']])->value('charm'),
'did' => $sort_up[0]['did'],
'song_code' => $sort_up[0]['song_code'],
'song_name' => $sort_up[0]['song_name'],
'singer' => $sort_up[0]['singer'],
'poster' => $sort_up[0]['poster'],
'duration' => $sort_up[0]['duration'],
'user_id' => $sort_up[0]['user_id'],
'dress' => model('Decorate')->user_decorate_detail($sort_up[0]['user_id'], 1),
'nickname' => db::name('user')->where('id',$sort_up[0]['user_id'])->value('nickname'),
'avatar' => db::name('user')->where('id',$sort_up[0]['user_id'])->value('avatar'),
'charm' => db::name('vs_room_user_charm')->where(['user_id' => $sort_up[0]['user_id'],'room_id' => $sort['room_id']])->value('charm'),
];
$text = [
'action' => 3,//下一首播放歌曲信息推送给前端
@@ -432,9 +435,9 @@ class RoomSong extends Model
'nextInfo' => $info
];
model('Chat')->sendMsg(1013,$sort['room_id'],$text);
Cache::set("api:room:song:nextInfo:" . $sort['room_id'],$data[0]['did']);
Cache::set("api:room:song:nextInfo:" . $sort['room_id'],$sort_up[0]['did']);
}
return ['code'=>1,'msg'=>'操作成功','data'=>$data];
return ['code'=>1,'msg'=>'操作成功','data'=>null];
}
//切歌