NotificationController.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 change(Request $request)
  38. {
  39. $user = Auth::guard('mini')->user();
  40. if($request->input('type') == 'has_read') {
  41. $this->model->where('user_id', $user->id)->update(['is_read' => 1]);
  42. } else if($request->input('type') == 'empty') {
  43. $this->model->where('user_id', $user->id)->where('is_read', 1)->delete();
  44. } else if($request->input('type') == 'read_one') {
  45. $this->model->where('id', $request->input('id'))->update(['is_read' => 1]);
  46. }
  47. return $this->success();
  48. }
  49. public function detail(Request $request)
  50. {
  51. $item = $this->model->find($request->input('id'));
  52. if(!$item) return $this->error(['msg' => '通知不存在']);
  53. $order = Order::find($item->order_id);
  54. if($order) {
  55. $order->formatOrder($order);
  56. $item->order = $order;
  57. $data = $item->getNameContent();
  58. $item->name = $data['name'];
  59. $item->content = $data['content'];
  60. }
  61. return $this->success(['data' => $item]);
  62. }
  63. }