diff --git a/application/api/controller/SingerSong.php b/application/api/controller/SingerSong.php index 4d6a9da..13db470 100644 --- a/application/api/controller/SingerSong.php +++ b/application/api/controller/SingerSong.php @@ -154,6 +154,21 @@ class SingerSong extends BaseCom } $reslut = db::name('vs_song_log')->where(['id' => $id])->update(['sort' => time()]); if ($reslut) { + //给前端推送下首歌曲信息 + $next_song_info = db::name('vs_song_log')->where(['id' => $id])->find(); + $next_song_info['boss_nickname'] = db::name('user')->where(['id' => $next_song_info['user_id']])->value('nickname'); + $next_song_info['boss_avatar'] = db::name('user')->where(['id' => $next_song_info['user_id']])->value('avatar'); + $singer_song = db::name('vs_singer_song')->where(['id' => $next_song_info['singer_song_id']])->find(); + $next_song_info['singer_nickname'] = db::name('user')->where(['id' => $singer_song['user_id']])->value('nickname'); + $next_song_info['singer_avatar'] = db::name('user')->where(['id' => $singer_song['user_id']])->value('avatar'); + $next_song_info['song_name'] = $singer_song['song_name']; + + $data = [ + 'text' => '房间下一首演唱歌曲变化', + 'next_song_info' => $next_song_info + ]; + model('Chat')->sendMsg(1071,$next_song_info['room_id'],$data); + return V(1, '置顶成功'); } else { return V(0, '置顶失败'); diff --git a/application/api/model/SingerSong.php b/application/api/model/SingerSong.php index 130a9c8..e43759e 100644 --- a/application/api/model/SingerSong.php +++ b/application/api/model/SingerSong.php @@ -165,16 +165,38 @@ class SingerSong extends Model 'singer_song_id' => $song_id, 'createtime' => time() ]; - $result = db::name('vs_song_log')->insert($data); + //插入数据库并获取ID + $result = db::name('vs_song_log')->insertGetId($data); if (!$result) { return ['code' => 0, 'msg' => '点歌失败', 'data' => null]; } + //获取当前房间内点歌总数 + $song_info_count = db::name('vs_song_log')->where(['room_id' => $room_id,'status' => ['in',[0,1]]])->count(); //给前端推送 $text = [ - 'text' => '房间点歌变化' + 'text' => '房间点歌数量变化', + 'count' => $song_info_count ]; - //聊天室推送系统消息 - model('Chat')->sendMsg(1070,$room_id,$text); + model('Chat')->sendMsg(1072,$room_id,$text); + + if($song_info_count == 1){ + //修改房间当前演唱歌曲 + db::name('vs_song_log')->where(['id' => $result])->update(['status' => 1]); + $song_info = db::name('vs_song_log')->where(['id' => $result])->find(); + $song_info['boss_nickname'] = db::name('user')->where(['id' => $song_info['user_id']])->value('nickname'); + $song_info['boss_avatar'] = db::name('user')->where(['id' => $song_info['user_id']])->value('avatar'); + $singer_song = db::name('vs_singer_song')->where(['id' => $song_info['singer_song_id']])->find(); + $song_info['singer_nickname'] = db::name('user')->where(['id' => $singer_song['user_id']])->value('nickname'); + $song_info['singer_avatar'] = db::name('user')->where(['id' => $singer_song['user_id']])->value('avatar'); + $song_info['song_name'] = $singer_song['song_name']; + + $song_info_data = [ + 'text' => '房间当前演唱歌曲变化', + 'song_info' => $song_info + ]; + model('Chat')->sendMsg(1070,$room_id,$song_info_data); + } + return ['code' => 1, 'msg' => '点歌成功', 'data' => null]; } else { @@ -301,12 +323,45 @@ class SingerSong extends Model if($id){ db::name('vs_song_log')->where(['id' => $id])->update(['status' => 1]); //给前端推送 + //获取当前房间内点歌总数 + $song_info_count = db::name('vs_song_log')->where(['room_id' => $sonng_log['room_id'],'status' => ['in',[0,1]]])->count(); + //给前端推送 $text = [ - 'text' => '切歌', - 'id' => $id, + 'text' => '房间点歌数量变化', + 'count' => $song_info_count ]; - //聊天室推送系统消息 model('Chat')->sendMsg(1072,$sonng_log['room_id'],$text); + + //房间当前演唱歌曲 + $song_info = db::name('vs_song_log')->where(['id' => $id])->find(); + $song_info['boss_nickname'] = db::name('user')->where(['id' => $song_info['user_id']])->value('nickname'); + $song_info['boss_avatar'] = db::name('user')->where(['id' => $song_info['user_id']])->value('avatar'); + $singer_song = db::name('vs_singer_song')->where(['id' => $song_info['singer_song_id']])->find(); + $song_info['singer_nickname'] = db::name('user')->where(['id' => $singer_song['user_id']])->value('nickname'); + $song_info['singer_avatar'] = db::name('user')->where(['id' => $singer_song['user_id']])->value('avatar'); + $song_info['song_name'] = $singer_song['song_name']; + + $song_info_data = [ + 'text' => '房间当前演唱歌曲变化', + 'song_info' => $song_info + ]; + model('Chat')->sendMsg(1070,$sonng_log['room_id'],$song_info_data); + + //给前端推送下首歌曲信息 + $next_song_info = db::name('vs_song_log')->where(['room_id' => $sonng_log['room_id'],'status' => 0])->order('sort desc')->find(); + $next_song_info['boss_nickname'] = db::name('user')->where(['id' => $next_song_info['user_id']])->value('nickname'); + $next_song_info['boss_avatar'] = db::name('user')->where(['id' => $next_song_info['user_id']])->value('avatar'); + $singer_song = db::name('vs_singer_song')->where(['id' => $next_song_info['singer_song_id']])->find(); + $next_song_info['singer_nickname'] = db::name('user')->where(['id' => $singer_song['user_id']])->value('nickname'); + $next_song_info['singer_avatar'] = db::name('user')->where(['id' => $singer_song['user_id']])->value('avatar'); + $next_song_info['song_name'] = $singer_song['song_name']; + + $data = [ + 'text' => '房间下一首演唱歌曲变化', + 'next_song_info' => $next_song_info + ]; + model('Chat')->sendMsg(1071,$next_song_info['room_id'],$data); + }else{ return ['code' => 0, 'msg' => '暂无歌曲,请点歌吧','data' => null]; }