zilong 4 jaren geleden
bovenliggende
commit
9c061c6c0e

+ 33 - 0
app/Http/Controllers/Api/V1/ArticleController.php

xqd
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-10-5
+ * Time: 下午3:40
+ */
+
+namespace App\Http\Controllers\Api\V1;
+
+use App\Models\Article;
+
+class ArticleController extends AuthController
+{
+    public function articleList()
+    {
+        $data = Article::orderBy('id', 'desc')->paginate();
+
+        return out($data);
+    }
+
+    public function articleDetail()
+    {
+        $req = request()->post();
+        $this->validate(request(), [
+            'article_id' => 'required|integer',
+        ]);
+
+        $data = Article::where('id', $req['article_id'])->first();
+
+        return out($data);
+    }
+}

+ 53 - 0
app/Http/Controllers/Api/V1/CollectionController.php

xqd
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-10-5
+ * Time: 下午3:18
+ */
+
+namespace App\Http\Controllers\Api\V1;
+
+use App\Models\Collection;
+
+class CollectionController extends AuthController
+{
+    public function submitCollect()
+    {
+        $req = request()->post();
+        $this->validate(request(), [
+            'type' => 'required|in:1,2',
+            'relation_id' => 'required|integer',
+        ]);
+        $user = $this->user;
+
+        $map = [1 => 'docter_id', 2 => 'article_id'];
+        if (Collection::where('user_id', $user['id'])->where($map[$req['type']], $req['relation_id'])->count()) {
+            Collection::where('user_id', $user['id'])->where($map[$req['type']], $req['relation_id'])->delete();
+            $is_collect = 0;
+        }
+        else {
+            Collection::create([
+                'user_id' => $user['id'],
+                $map[$req['type']] => $req['relation_id']
+            ]);
+            $is_collect = 1;
+        }
+
+        return out(['is_collect' => $is_collect]);
+    }
+
+    public function collectList()
+    {
+        $req = request()->post();
+        $this->validate(request(), [
+            'type' => 'required|in:1,2',
+        ]);
+        $user = $this->user;
+
+        $map = [1 => 'docter_id', 2 => 'article_id'];
+        $data = Collection::with(['docter', 'article'])->where('user_id', $user['id'])->where($map[$req['type']], '>', 0)->paginate();
+
+        return out($data);
+    }
+}

+ 26 - 0
app/Models/Article.php

xqd
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-10-5
+ * Time: 下午3:37
+ */
+
+namespace App\Models;
+
+class Article extends BaseModel
+{
+    protected $appends = ['is_collect'];
+
+    public function getIsCollectAttribute()
+    {
+        if (!empty(request()->header('token'))) {
+            $user = User::getUserByToken();
+            if (Collection::where('user_id', $user['id'])->where('article_id', $this->id)->exists()) {
+                return 1;
+            }
+        }
+
+        return 0;
+    }
+}

+ 22 - 0
app/Models/Collection.php

xqd
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zilongs
+ * Date: 20-10-5
+ * Time: 下午3:18
+ */
+
+namespace App\Models;
+
+class Collection extends BaseModel
+{
+    public function docter()
+    {
+        return $this->belongsTo(Docter::class);
+    }
+
+    public function article()
+    {
+        return $this->belongsTo(Article::class);
+    }
+}