Jelajahi Sumber

wesmiler 报恩寺项目提交

wesmiler 4 tahun lalu
induk
melakukan
d7fa27d9bb

+ 10 - 5
app/Http/Controllers/Api/v1/MusicController.php

@@ -3,11 +3,7 @@
 namespace App\Http\Controllers\Api\v1;
 
 use App\Http\Controllers\Api\BaseController;
-use App\Http\Validator\ArticleValidator;
-use App\Services\ArticleBooksService;
-use App\Services\ArticleCatesService;
-use App\Services\ArticleService;
-use App\Services\ConfigService;
+use App\Services\MusicCollectService;
 use App\Services\MusicService;
 use App\Services\MusicSheetsService;
 use Illuminate\Http\Request;
@@ -33,6 +29,7 @@ class MusicController extends BaseController
 
         $this->service = new MusicService();
         $this->cateService = new MusicSheetsService();
+        $this->collectService = new MusicCollectService();
     }
 
     /**
@@ -67,4 +64,12 @@ class MusicController extends BaseController
     public function cates(){
         return $this->cateService->getOptions();
     }
+
+    /**
+     * 收藏
+     * @return mixed
+     */
+    public function collect(){
+        return $this->collectService->save($this->userId);
+    }
 }

+ 50 - 0
app/Services/MusicCollectService.php

@@ -105,4 +105,54 @@ class MusicCollectService extends BaseService
         return parent::edit($data); // TODO: Change the autogenerated stub
     }
 
+    /**
+     * 添加或编辑
+     * @return array
+     * @since 2020/11/11
+     * @author wesmiler
+     */
+    public function save($userId)
+    {
+
+        $params = request()->all();
+        $id = isset($params['id'])? $params['id'] : 0;
+        $status = isset($params['status'])? $params['status'] : 1;
+        if($id<=0){
+            return message('参数错误', false);
+        }
+
+        if(!in_array($status, [1,2])){
+            return message('参数错误', false);
+        }
+
+        $info = $this->model::where(['user_id'=> $userId, 'source_id'=> $id])->select(['id','status'])->first();
+        if($info && $info->status == 1 && $status == 1){
+            return message("您已收藏过", false);
+        }else if($info && $info->status == 2 && $status == 2){
+            return message("您已取消收藏", false);
+        }else if(!$info && $status == 2){
+            return message("您未收藏过", false);
+        }
+
+        // 处理
+        if($info){
+            $info->status = $status;
+            $info->create_time = time();
+            if($info->save()){
+                return message($status == 1? "收藏成功":"取消收藏成功", true);
+            }
+        }else{
+            $data = [
+                'user_id'=> $userId,
+                'source_id'=> $id,
+                'create_time'=> time(),
+                'status'=> 1,
+            ];
+            if($this->model::insertGetId($data)){
+                return message("收藏成功", true);
+            }
+        }
+
+        return message('操作失败', false);
+    }
 }

+ 1 - 0
routes/api.php

@@ -224,6 +224,7 @@ Route::post('/buddhist/page', [\App\Http\Controllers\Api\v1\BuddhistController::
 Route::post('/music/list', [\App\Http\Controllers\Api\v1\MusicController::class, 'index']);
 Route::post('/music/detail', [\App\Http\Controllers\Api\v1\MusicController::class, 'detail']);
 Route::post('/music/cates', [\App\Http\Controllers\Api\v1\MusicController::class, 'cates']);
+Route::post('/music/collect', [\App\Http\Controllers\Api\v1\MusicController::class, 'collect']);