ConsumeController.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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\UserConsumeRecord;
  6. use App\Models\UserEpisodesRecord;
  7. use App\Models\UserWatchRecord;
  8. use Carbon\Carbon;
  9. use Dingo\Api\Http\Request;
  10. use Illuminate\Database\Eloquent\Builder;
  11. class ConsumeController extends Controller
  12. {
  13. public function record(Request $request)
  14. {
  15. $limit = $request->input('limit', 10);
  16. $page = $request->input('page', 1);
  17. $offset = ($page - 1) * 10;
  18. $date = $request->input('date');
  19. $date= $date??Carbon::now()->format('Y-m');
  20. $lists = UserEpisodesRecord::filterUser()
  21. ->when($date,function ($query,$date){
  22. /* @var Builder $query*/
  23. return $query->where('created_at', 'like', "$date%");
  24. })
  25. ->with(['detail.episode'])
  26. ->orderByDesc('id')
  27. ->limit($limit)
  28. ->offset($offset)
  29. ->get();
  30. foreach ($lists as $list){
  31. if($list->detail && $list->detail->episodes_id){
  32. $count = EpisodesList::where('episodes_id',$list->detail->episode->id)->count();
  33. $list->detail->episode->total = $count;
  34. $list->detail->episode->status_text = $list->detail->episode->status;
  35. }else{
  36. $list->detail->episode->total = 0;
  37. $list->detail->episode->status_text = -1;
  38. }
  39. }
  40. return $this->success($lists);
  41. }
  42. }