Просмотр исходного кода

歌曲删除,置顶,重新排序

lizhen_gitee 1 год назад
Родитель
Сommit
976e08e4ab
1 измененных файлов с 81 добавлено и 1 удалено
  1. 81 1
      application/api/controller/Party.php

+ 81 - 1
application/api/controller/Party.php

@@ -2192,7 +2192,7 @@ class Party extends Common
             //默认为空
             $singlist['waitsing_list'] = '[]';
         }
-        $singlist = json_decode($singlist['waitsing_list']);
+        $singlist = json_decode($singlist['waitsing_list'],true);
 
         //加入新歌
         $singlist[] = $sing_json;
@@ -2225,11 +2225,91 @@ class Party extends Common
 
     //待唱,删除
     public function waitsing_delete(){
+        //查找派对
+        $easemob_room_id = input('easemob_room_id');
+
+        $party_info = Db::name('party')->where('easemob_room_id',$easemob_room_id)->find();
+        if(empty($party_info)){
+            $this->error();
+        }
+
+        //需要删除的编号
+        $sing_no = input('sing_no','');
 
+        //获取已有列表
+        $easemob = new easemob();
+        $singlist = $easemob->room_getRoomCustomAttribute($easemob_room_id,['waitsing_list']);
+        if(empty($singlist)){
+            //默认为空
+            $singlist['waitsing_list'] = '[]';
+        }
+        $singlist = json_decode($singlist['waitsing_list'],true);
+
+        //轮询,找到,删除
+        foreach($singlist as $key => $sing){
+            if($sing['sing_no'] == $sing_no){
+                unset($singlist[$key]);
+            }
+        }
+
+        //重新排序
+        $singlist = $this->waitsing_array_column_sort($singlist);
+
+        //重新设置
+        $matedata = [
+            'waitsing_list'  => json_encode($singlist),
+        ];
+        $easemob->room_setRoomCustomAttributeForced($easemob_room_id,$party_info['user_id'],$matedata);
+
+        //返回最新歌曲列表
+        $this->success(1,$singlist);
     }
     //待唱,置顶
     public function waitsing_top(){
+        //查找派对
+        $easemob_room_id = input('easemob_room_id');
+
+        $party_info = Db::name('party')->where('easemob_room_id',$easemob_room_id)->find();
+        if(empty($party_info)){
+            $this->error();
+        }
+
+        //需要置顶的编号
+        $sing_no = input('sing_no','');
+
+        //获取已有列表
+        $easemob = new easemob();
+        $singlist = $easemob->room_getRoomCustomAttribute($easemob_room_id,['waitsing_list']);
+        if(empty($singlist)){
+            //默认为空
+            $singlist['waitsing_list'] = '[]';
+        }
+        $singlist = json_decode($singlist['waitsing_list'],true);
 
+        //轮询,找到,改排序
+        if(!empty($singlist)){
+            //拿到所有排序字段,排列,取第0个
+            $sort = array_column($singlist,'sort');
+            ksort($sort);
+
+            foreach($singlist as $key => &$sing){
+                if($sing['sing_no'] == $sing_no){
+                    $sing['sort'] = $sort[0] - 1;
+                }
+            }
+        }
+
+        //重新排序
+        $singlist = $this->waitsing_array_column_sort($singlist);
+
+        //重新设置
+        $matedata = [
+            'waitsing_list'  => json_encode($singlist),
+        ];
+        $easemob->room_setRoomCustomAttributeForced($easemob_room_id,$party_info['user_id'],$matedata);
+
+        //返回最新歌曲列表
+        $this->success(1,$singlist);
     }
 
     //轮询所有房间,挨个赋值新的初始化自定义属性