NotificationController.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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)->orderBy('created_at', 'desc');
  29. $items = $items->paginate();
  30. foreach ($items as $item) {
  31. $data = $item->getNameContent();
  32. $item->name = $data['name'];
  33. $item->content = $data['content'];
  34. }
  35. return $this->success(['data' => $items->items()]);
  36. }
  37. public function notReadCount(Request $request)
  38. {
  39. $user = Auth::guard('mini')->user();
  40. $count = $this->model->where('user_id', $user->id)->where('is_read', 2)->count();
  41. return $this->success(['data' => $count]);
  42. }
  43. public function change(Request $request)
  44. {
  45. $user = Auth::guard('mini')->user();
  46. if($request->input('type') == 'has_read') {
  47. $this->model->where('user_id', $user->id)->update(['is_read' => 1]);
  48. } else if($request->input('type') == 'empty') {
  49. $this->model->where('user_id', $user->id)->where('is_read', 1)->delete();
  50. } else if($request->input('type') == 'read_one') {
  51. $this->model->where('id', $request->input('id'))->update(['is_read' => 1]);
  52. }
  53. return $this->success();
  54. }
  55. public function detail(Request $request)
  56. {
  57. $item = $this->model->find($request->input('id'));
  58. if(!$item) return $this->error(['msg' => '通知不存在']);
  59. $item->update(['is_read' => 1]);
  60. $order = Order::find($item->order_id);
  61. if($order) {
  62. $order->formatOrder($order);
  63. $item->order = $order;
  64. $data = $item->getNameContent();
  65. $item->name = $data['name'];
  66. $item->content = $data['content'];
  67. }
  68. return $this->success(['data' => $item]);
  69. }
  70. }