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