NotificationController.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\SeeLog;
  5. use App\User;
  6. use Illuminate\Database\Eloquent\Builder;
  7. use Illuminate\Support\Facades\Auth;
  8. class NotificationController
  9. {
  10. use AsyncResponse;
  11. /**
  12. * @return User|\stdClass
  13. */
  14. private function getUser()
  15. {
  16. /** @var User|\stdClass $user */
  17. $user = new User();
  18. $user->id = Auth::id();
  19. return $user;
  20. }
  21. public function regular()
  22. {
  23. $user = $this->getUser();
  24. $user->loadCount(["seeLogs"=>function($query){
  25. /** @var Builder $query */
  26. $query->where("delivered",'0');
  27. }]);
  28. $user->load(["seeLogs"=>function($query){
  29. /** @var Builder $query */
  30. $query->limit(15)->orderBy("delivered")->orderByDesc("id");
  31. }]);
  32. $infos = $user->seeLogs;
  33. $count = $user->see_logs_count;
  34. return view("layouts.notification",compact("infos","count"));
  35. }
  36. public function toTarget()
  37. {
  38. $id = request("id");
  39. if (!$id)$this->error("服务器异常");
  40. $this->success(SeeLog::query()->where("id",$id)
  41. ->where("delivered",'0')->update(["delivered"=>'1']));
  42. }
  43. public function getRegularData()
  44. {
  45. $id = request("id");
  46. if (!$id)$this->error("服务器异常");
  47. $page = request("page");
  48. $user = $this->getUser();
  49. $user->load(["seeLogs"=>function($query)use($id,$page){
  50. /** @var Builder $query */
  51. $query->limit("{$page},15")
  52. ->orderBy("delivered")
  53. ->orderByDesc("id");
  54. }]);
  55. $this->success($user->seeLogs);
  56. }
  57. }