diff --git a/application/adminapi/controller/UserZone.php b/application/adminapi/controller/UserZone.php index bff89595..9279cb98 100644 --- a/application/adminapi/controller/UserZone.php +++ b/application/adminapi/controller/UserZone.php @@ -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']); } diff --git a/application/api/model/RoomSong.php b/application/api/model/RoomSong.php index 67053ddf..a30346e4 100644 --- a/application/api/model/RoomSong.php +++ b/application/api/model/RoomSong.php @@ -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]; } //切歌