WatchRecordsController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Http\Controllers\V1\User;
  3. use App\Http\Controllers\V1\Controller;
  4. use App\Models\User;
  5. use App\Models\UserWatchRecord;
  6. class WatchRecordsController extends Controller
  7. {
  8. public function lists()
  9. {
  10. $lists = UserWatchRecord::filterUser()
  11. ->with(['detail.episode'])
  12. ->orderByDesc('id')->get();
  13. foreach ($lists as $list){
  14. $count = $list->detail->episode->withCount('lists')->first()->toArray();
  15. $list->detail->episode->total = $count['lists_count'];
  16. $list->detail->episode->status_text = $list->detail->episode->status;
  17. }
  18. return $this->success($lists);
  19. }
  20. public function recent()
  21. {
  22. $info = UserWatchRecord::filterUser()
  23. ->with(['detail.episode'])
  24. ->orderByDesc('updated_at')
  25. ->first();
  26. if($info){
  27. $count = $info->detail->episode->withCount('lists')->first()->toArray();
  28. $info->detail->episode->total = $count['lists_count'];
  29. $info->detail->episode->status_text = $info->detail->episode->status;
  30. }
  31. return $this->success($info);
  32. }
  33. public function watched()
  34. {
  35. $id = request()->input('id');
  36. $listId = request()->input('list_id');
  37. $res = UserWatchRecord::filterUser()->where('episode_id',$id)->first();
  38. if($res){
  39. $res->list_id = $listId;
  40. }else{
  41. $res = new UserWatchRecord();
  42. $res->user_id = \user()->id;
  43. $res->episode_id = $id;
  44. }
  45. $res->list_id = $listId;
  46. return $this->success($res->save());
  47. }
  48. }