NotificationController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace App\Http\Controllers\Api\mini;
  3. use App\Models\Notification;
  4. use App\Models\Order;
  5. use App\Models\Part;
  6. use App\Models\Spec;
  7. use App\Models\UseRecord;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. class NotificationController extends BaseController
  11. {
  12. protected $model;
  13. public function __construct()
  14. {
  15. $this->model = new Notification();
  16. }
  17. public function getStat(Request $request)
  18. {
  19. $user = Auth::guard('mini')->user();
  20. $not_read = $this->model->where('user_id', $user->id)->where('is_read', 2)->count();
  21. $is_read = $this->model->where('user_id', $user->id)->where('is_read', 1)->count();
  22. return $this->success(['data' => [$not_read, $is_read]]);
  23. }
  24. public function get(Request $request)
  25. {
  26. $user = Auth::guard('mini')->user();
  27. $is_read = $request->input('is_read');
  28. $items = $this->model->where('user_id', $user->id)->where('is_read', $is_read);
  29. $items = $items->paginate();
  30. return $this->success(['data' => $items->items()]);
  31. }
  32. public function change(Request $request)
  33. {
  34. $user = Auth::guard('mini')->user();
  35. if($request->input('type') == 'has_read') {
  36. $this->model->where('user_id', $user->id)->update(['is_read' => 1]);
  37. } else if($request->input('type') == 'empty') {
  38. $this->model->where('user_id', $user->id)->where('is_read', 1)->delete();
  39. } else if($request->input('type') == 'read_one') {
  40. $this->model->where('id', $request->input('id'))->update(['is_read' => 1]);
  41. }
  42. return $this->success();
  43. }
  44. public function detail(Request $request)
  45. {
  46. $item = $this->model->find($request->input('id'));
  47. if(!$item) return $this->error(['msg' => '通知不存在']);
  48. $order = Order::find($item->order_id);
  49. if($order) {
  50. $order->formatOrder($order);
  51. $item->order = $order;
  52. }
  53. return $this->success(['data' => $item]);
  54. }
  55. }