CollectionController.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: zilongs
  5. * Date: 20-10-5
  6. * Time: 下午3:18
  7. */
  8. namespace App\Http\Controllers\Api\V1;
  9. use App\Models\Collection;
  10. class CollectionController extends AuthController
  11. {
  12. public function submitCollect()
  13. {
  14. $req = request()->post();
  15. $this->validate(request(), [
  16. 'type' => 'required|in:1,2',
  17. 'relation_id' => 'required|integer',
  18. ]);
  19. $user = $this->user;
  20. $map = [1 => 'docter_id', 2 => 'article_id'];
  21. if (Collection::where('user_id', $user['id'])->where($map[$req['type']], $req['relation_id'])->count()) {
  22. Collection::where('user_id', $user['id'])->where($map[$req['type']], $req['relation_id'])->delete();
  23. $is_collect = 0;
  24. }
  25. else {
  26. Collection::create([
  27. 'user_id' => $user['id'],
  28. $map[$req['type']] => $req['relation_id']
  29. ]);
  30. $is_collect = 1;
  31. }
  32. return out(['is_collect' => $is_collect]);
  33. }
  34. public function collectList()
  35. {
  36. $req = request()->post();
  37. $this->validate(request(), [
  38. 'type' => 'required|in:1,2',
  39. ]);
  40. $user = $this->user;
  41. $map = [1 => 'docter_id', 2 => 'article_id'];
  42. $data = Collection::with(['docter', 'article'])->where('user_id', $user['id'])->where($map[$req['type']], '>', 0)->paginate();
  43. return out($data);
  44. }
  45. }