CollectController.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace App\Http\Controllers\V1\User;
  3. use App\Http\Controllers\V1\Controller;
  4. use App\Models\EpisodesList;
  5. use App\Models\UserCollect;
  6. use Dingo\Api\Http\Request;
  7. use Illuminate\Database\Eloquent\Builder;
  8. class CollectController extends Controller
  9. {
  10. // 收藏记录
  11. public function record(Request $request)
  12. {
  13. $limit = $request->input('limit', 10);
  14. $page = $request->input('page', 1);
  15. $offset = ($page - 1) * 10;
  16. $lists = UserCollect::filterUser()
  17. ->with(['episode', 'watchRecord.detail'])
  18. ->whereHas('episode', function (Builder $query) {
  19. $query->where('is_opend', 1);
  20. })
  21. ->orderByDesc('id')
  22. ->limit($limit)
  23. ->offset($offset)
  24. ->get();
  25. foreach ($lists as $list) {
  26. $count = EpisodesList::where('episodes_id', $list->episode->id)->count();
  27. $list->episode->total = $count;
  28. $list->episode->status_text = $list->episode->status;
  29. }
  30. return $this->success($lists);
  31. }
  32. // 检查当前短剧是否收藏
  33. public function check($id)
  34. {
  35. $res = UserCollect::filterUser()->where('episode_id', $id)->count();
  36. return $this->success(!empty($res));
  37. }
  38. // 添加收藏
  39. public function add($id)
  40. {
  41. $res = UserCollect::filterUser()->where('episode_id', $id)->count();
  42. if ($res) {
  43. return $this->success(true);
  44. }
  45. $collect = new UserCollect();
  46. $collect->user_id = \user()->id;
  47. $collect->episode_id = $id;
  48. return $this->success($collect->save());
  49. }
  50. // 删除收藏
  51. public function destroy($id)
  52. {
  53. $res = UserCollect::filterUser()->where('episode_id', $id)->first();
  54. if (!$res) {
  55. return $this->success(false);
  56. }
  57. return $this->success($res->delete());
  58. }
  59. }