12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- namespace App\Http\Controllers\V1\User;
- use App\Http\Controllers\V1\Controller;
- use App\Models\User;
- use App\Models\UserWatchRecord;
- use Illuminate\Database\Eloquent\Builder;
- class WatchRecordsController extends Controller
- {
- public function lists()
- {
- $lists = UserWatchRecord::filterUser()
- ->with(['detail.episode'])
- ->whereHas('detail.episode', function (Builder $query){
- $query->where('is_opend', 1);
- })
- ->orderByDesc('id')
- ->get();
- foreach ($lists as $list){
- $count = $list->detail->episode->withCount('lists')->first()->toArray();
- $list->detail->episode->total = $count['lists_count'];
- $list->detail->episode->status_text = $list->detail->episode->status;
- }
- return $this->success($lists);
- }
- public function recent()
- {
- $info = UserWatchRecord::filterUser()
- ->with(['detail.episode'])
- ->whereHas('episode', function (Builder $query){
- $query->where('is_opend', 1);
- })
- ->orderByDesc('updated_at')
- ->first();
- if($info){
- $count = $info->detail->episode->withCount('lists')->first()->toArray();
- $info->detail->episode->total = $count['lists_count'];
- $info->detail->episode->status_text = $info->detail->episode->status;
- }
- return $this->success($info);
- }
- public function watched()
- {
- $id = request()->input('id');
- $listId = request()->input('list_id');
- $res = UserWatchRecord::filterUser()->where('episode_id',$id)->first();
- if($res){
- $res->list_id = $listId;
- }else{
- $res = new UserWatchRecord();
- $res->user_id = \user()->id;
- $res->episode_id = $id;
- }
- $res->list_id = $listId;
- return $this->success($res->save());
- }
- }
|