From cc787cceadb5595710efc59074c7b99cfdea5fce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Thu, 13 Nov 2025 17:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=82=B9=E5=94=B1=E5=90=8E=E7=AB=AF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=93=8D=E4=BD=9C=20api=20=E6=B7=BB=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adminapi/controller/SingerSong.php | 208 ++++++++++++++++++ application/api/controller/SingerSong.php | 8 +- application/api/model/SingerSong.php | 15 +- 3 files changed, 223 insertions(+), 8 deletions(-) create mode 100644 application/adminapi/controller/SingerSong.php diff --git a/application/adminapi/controller/SingerSong.php b/application/adminapi/controller/SingerSong.php new file mode 100644 index 0000000..40d0c73 --- /dev/null +++ b/application/adminapi/controller/SingerSong.php @@ -0,0 +1,208 @@ +where($where)->count(); + $list = db::name('vs_singer') + ->alias('ss') + ->join('user u', 'ss.user_id=s.id') + ->field('ss.*,u.nickname,u.avatar,u.user_code,u.mobile,u.sex') + ->where($where) + ->page($page, $page_limit) + ->select(); + $return_data = [ + 'page' =>$page, + 'page_limit' => $page_limit, + 'count' => $count, + 'lists' => $list + ]; + return V(1,"成功", $return_data); + } + + //歌手认证编辑 + public function singerEdit() + { + $id = input('id', ''); + if(empty($id)){ + return V(0, '参数错误'); + } + $data = [ + 'status' => input('status', ''), + 'remark' => input('remark', ''), + ]; + $res = db::name('vs_singer')->where('id', $id)->update($data); + if($res){ + return V(1, '操作成功'); + }else{ + return V(0, '操作失败'); + } + } + + + //认证歌手歌曲列表 + public function singerSongList() + { + $page = input('page', 1); + $page_limit = input('page_limit', 30); + $user_id = input('user_id', ''); + $where=[]; + if(isset($user_id)){ + $where['user_id'] = $user_id; + }else{ + return V(0, '请填写用户ID'); + } + $count = db::name('vs_singer_song')->where($where)->count(); + $list = db::name('vs_singer_song') + ->alias('o') + ->join('user u', 'o.user_id=u.id') + ->join('vs_gift g', 'o.gift_id=g.gid') + ->field('o.*,u.nickname,u.user_code,g.gift_name,g.gift_price') + ->where($where) + ->page($page, $page_limit) + ->select(); + $return_data = [ + 'page' =>$page, + 'page_limit' => $page_limit, + 'count' => $count, + 'lists' => $list + ]; + return V(1,"成功", $return_data); + } + + //歌手等级列表 + public function singerLevelList() + { + $page = input('page', 1); + $page_limit = input('page_limit', 30); + $where=[]; + $count = db::name('vs_singer_level')->where($where)->count(); + $list = db::name('vs_singer_level') + ->where($where) + ->page($page, $page_limit) + ->select(); + $return_data = [ + 'page' =>$page, + 'page_limit' => $page_limit, + 'count' => $count, + 'lists' => $list + ]; + return V(1,"成功", $return_data); + } + + + //编辑歌手等级 + public function singerLevelEdit() + { + $id = input('id', ''); + //没有 id就是新增 + if(empty($id)){ + $data = [ + 'level' => input('level', ''), + 'name' => input('name', ''), + 'image' => input('image', ''), + 'change_value' => input('change_value', ''), + 'rights_icon' => input('rights_icon', ''), + 'createtime' => time(), + ]; + $res = db::name('vs_singer_level')->insert($data); + if($res){ + return V(1, '操作成功'); + }else{ + return V(0, '操作失败'); + } + }else{ + $data = [ + 'level' => input('level', ''), + 'name' => input('name', ''), + 'image' => input('image', ''), + 'change_value' => input('change_value', ''), + 'rights_icon' => input('rights_icon', ''), + ]; + $res = db::name('vs_singer_level')->where('id', $id)->update($data); + if($res){ + return V(1, '操作成功'); + }else{ + return V(0, '操作失败'); + } + } + } + + + //点歌信息列表 + public function songList() + { + $page = input('page', 1); + $page_limit = input('page_limit', 30); + $type = input('type', 3);//1-今天,2-本周,3-本月,4-昨天 + $room_id = input('room_id', ''); + + $where=[]; + if(isset($room_id)){ + $where['room_id'] = $room_id; + }else{ + return V(0, '请填写房间ID'); + } + if($type==1){ + $where['create_time'] = ['between', [strtotime(date('Y-m-d')), strtotime(date('Y-m-d', strtotime('+1 day')))]]; + }elseif($type==2){ + $where['create_time'] = ['between', [strtotime(date('Y-m-d', strtotime('-7 day'))), strtotime(date('Y-m-d'))]]; + }elseif($type==3){ + $where['create_time'] = ['between', [strtotime(date('Y-m-01')), strtotime(date('Y-m-t', strtotime(date('Y-m-01'))))]]; + }elseif($type==4){ + $where['create_time'] = ['between', [strtotime(date('Y-m-d', strtotime('-1 day'))), strtotime(date('Y-m-d'))]]; + } + $count = db::name('vs_song_log')->where($where)->count(); + $list = db::name('vs_song_log') + ->alias('o') + ->join('user u', 'o.user_id=u.id') + ->join('vs_singer_song r', 'o.singer_song_id=r.id') + ->join('user uu', 'r.user_id=u.id') + ->join('vs_gift g', 'r.gift_id=g.gid') + ->field('o.*,u.nickname boss_nickname,u.user_code boss_user_code,r.song_name,r.gift_num,uu.nickname singer_nickname,uu.user_code singer_user_code,g.gift_name,g.gift_price') + ->where($where) + ->page($page, $page_limit) + ->select(); + $return_data = [ + 'page' =>$page, + 'page_limit' => $page_limit, + 'count' => $count, + 'lists' => $list + ]; + return V(1,"成功", $return_data); + } + + + +} \ No newline at end of file diff --git a/application/api/controller/SingerSong.php b/application/api/controller/SingerSong.php index d69c704..d33f66b 100644 --- a/application/api/controller/SingerSong.php +++ b/application/api/controller/SingerSong.php @@ -87,6 +87,8 @@ class SingerSong extends BaseCom //获取房间内麦位上歌手歌曲 public function getSong() { + $page = input('page', 1); + $page_limit = input('page_limit', 30); $room_id = input('room_id', 0); //用户ID $user_id = input('user_id', 0); @@ -94,7 +96,7 @@ class SingerSong extends BaseCom if (!$room_id && !$user_id) { return V(0, '请选择房间或歌手'); } - $reslut = model('SingerSong')->getSong($user_id, $room_id); + $reslut = model('SingerSong')->getSong($user_id, $room_id, $page, $page_limit); return V($reslut['code'], $reslut['msg'], $reslut['data']); } @@ -118,12 +120,14 @@ class SingerSong extends BaseCom //点歌列表 public function singerSongList() { + $page = input('page', 1); + $page_limit = input('page_limit', 30); $room_id = input('room_id', 0); if (!$room_id) { return V(0, '请选择房间'); } $type = input('type', 1);//1:已点列表,2:今日列表,3:昨日列表,4:本周列表,5:本月列表 - $reslut = model('SingerSong')->singerSongList($room_id,$type); + $reslut = model('SingerSong')->singerSongList($room_id,$type,$page,$page_limit); return V($reslut['code'], $reslut['msg'], $reslut['data']); } diff --git a/application/api/model/SingerSong.php b/application/api/model/SingerSong.php index 787ec84..e0ae8b2 100644 --- a/application/api/model/SingerSong.php +++ b/application/api/model/SingerSong.php @@ -95,17 +95,20 @@ class SingerSong extends Model * @param room_id 房间id * @param user_id 用户id */ - public function getSong($user_id, $room_id) + public function getSong($user_id, $room_id, $page, $page_limit) { if($user_id > 0){ - $res = db::name('vs_singer_song')->where(['user_id' => $user_id])->select(); + $count = db::name('vs_singer_song')->where(['user_id' => $user_id])->count(); + $res = db::name('vs_singer_song')->where(['user_id' => $user_id])->page($page, $page_limit)->select(); }else{ //查询当前房间内麦位上的歌手 $room_singer = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => ['<',9]])->column('user_id'); if ($room_singer) { - $res = db::name('vs_singer_song')->where(['user_id' => ['in', $room_singer]])->select(); + $count = db::name('vs_singer_song')->where(['user_id' => ['in', $room_singer]])->count(); + $res = db::name('vs_singer_song')->where(['user_id' => ['in', $room_singer]])->page($page, $page_limit)->select(); }else{ $res = []; + $count = 0; } } if ($res) { @@ -115,7 +118,7 @@ class SingerSong extends Model $res[$k]['base_image'] = db::name('vs_gift')->where(['gid' => $v['base_image']])->value('base_image'); $res[$k]['nickname'] = db::name('user')->where(['id' => $v['user_id']])->value('nickname'); } - return ['code' => 1, 'msg' => '获取成功', 'data' => $res]; + return ['code' => 1, 'msg' => '获取成功', 'data' => ['count' => $count, 'lists' =>$res]]; } else { return ['code' => 0, 'msg' => '暂无数据', 'data' => null]; } @@ -174,7 +177,7 @@ class SingerSong extends Model * @param room_id 房间id * @param type 类型 1:已点列表,2:今日列表,3:昨日列表,4:本周列表,5:本月列表 */ - public function singerSongList($room_id,$type) + public function singerSongList($room_id,$type,$page,$page_limit) { $where = [ 'room_id' => $room_id @@ -200,7 +203,7 @@ class SingerSong extends Model $where['status'] = ['in','1,0']; break; } - $res = db::name('vs_song_log')->where($where)->order('sort desc')->select(); + $res = db::name('vs_song_log')->where($where)->order('sort desc')->page($page,$page_limit)->select(); if ($res) { foreach ($res as $k => $v) { $res[$k]['boss_nickname'] = db::name('user')->where(['id' => $v['user_id']])->value('nickname');