CollectController.php 2.0 KB

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