2
0

ChatController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\StoreChatRequest;
  4. use App\Http\Requests\UpdateChatRequest;
  5. use App\Http\Resources\ChatResource;
  6. use App\Models\Chat;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Http\Response;
  9. class ChatController extends Controller
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. *
  14. * @return Response
  15. */
  16. public function index(Request $request)
  17. {
  18. $query = Chat::query();
  19. if ($request->has('user_id')) {
  20. $query->where('user_id', $request->user_id);
  21. }
  22. $total = $query->count();
  23. $chats = $query->orderBy('updated_at', 'desc')
  24. ->paginate($request->input('limit', 20));
  25. return $this->ok([
  26. 'rows' => ChatResource::collection($chats),
  27. 'total' => $total,
  28. ]);
  29. }
  30. /**
  31. * Store a newly created resource in storage.
  32. *
  33. * @return Response
  34. */
  35. public function store(StoreChatRequest $request)
  36. {
  37. $chat = Chat::create($request->validated());
  38. return $this->ok(new ChatResource($chat));
  39. }
  40. /**
  41. * Display the specified resource.
  42. *
  43. * @return Response
  44. */
  45. public function show(Chat $chat)
  46. {
  47. return $this->ok(new ChatResource($chat));
  48. }
  49. /**
  50. * Update the specified resource in storage.
  51. *
  52. * @return Response
  53. */
  54. public function update(UpdateChatRequest $request, Chat $chat)
  55. {
  56. //
  57. }
  58. /**
  59. * Remove the specified resource from storage.
  60. *
  61. * @return Response
  62. */
  63. /**
  64. * 单个软删除
  65. */
  66. public function destroy(Chat $chat)
  67. {
  68. $chat->delete(); // 软删除
  69. return $this->ok('Chat deleted successfully.');
  70. }
  71. /**
  72. * 批量软删除
  73. */
  74. public function batchDelete(Request $request)
  75. {
  76. $chatIds = $request->input('uids', []); // 前端传入数组
  77. $count = Chat::batchSoftDelete($chatIds);
  78. return $this->ok([
  79. 'message' => 'Chats soft deleted successfully.',
  80. 'deleted_count' => $count,
  81. ]);
  82. }
  83. /**
  84. * 批量恢复
  85. */
  86. public function batchRestore(Request $request)
  87. {
  88. $chatIds = $request->input('uids', []); // 前端传入数组
  89. $count = Chat::batchRestore($chatIds);
  90. return $this->ok([
  91. 'message' => 'Chats restored successfully.',
  92. 'restored_count' => $count,
  93. ]);
  94. }
  95. }