api.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. declare(strict_types=1);
  3. use SixShop\Message\Controller\Api\{
  4. AnnouncementController,
  5. NotificationController,
  6. PrivateMessageController,
  7. MessageSettingController,
  8. MessageController,
  9. };
  10. use SixShop\System\Middleware\MacroPageMiddleware;
  11. use think\facade\Route;
  12. // API路由
  13. // 路由前缀: /api/message
  14. // 公告相关路由
  15. Route::group('announcement', function () {
  16. // 获取公告列表
  17. Route::get('list', [AnnouncementController::class, 'getList']);
  18. // 获取公告详情
  19. Route::get('detail', [AnnouncementController::class, 'getDetail']);
  20. })->middleware(['auth']);
  21. // 通知相关路由
  22. Route::group('notification', function () {
  23. // 获取通知列表
  24. Route::get('list', [NotificationController::class, 'getList']);
  25. // 获取通知详情
  26. Route::get('detail', [NotificationController::class, 'getDetail']);
  27. // 标记通知为已读
  28. Route::post('mark_read', [NotificationController::class, 'markAsRead']);
  29. // 批量标记通知为已读
  30. Route::post('batch_mark_read', [NotificationController::class, 'batchMarkAsRead']);
  31. // 标记所有通知为已读
  32. Route::post('mark_all_read', [NotificationController::class, 'markAllAsRead']);
  33. // 删除通知
  34. Route::post('delete', [NotificationController::class, 'delete']);
  35. // 批量删除通知
  36. Route::post('batch_delete', [NotificationController::class, 'batchDelete']);
  37. // 获取未读通知数量
  38. Route::get('unread_count', [NotificationController::class, 'getUnreadCount']);
  39. })->middleware(['auth']);
  40. // 私信相关路由
  41. Route::group('private_message', function () {
  42. // 获取对话列表
  43. Route::get('conversation_list', [PrivateMessageController::class, 'getConversationList']);
  44. // 获取与指定用户的对话消息
  45. Route::get('conversation_messages', [PrivateMessageController::class, 'getConversationMessages']);
  46. // 发送私信
  47. Route::post('send', [PrivateMessageController::class, 'send']);
  48. // 标记私信为已读
  49. Route::post('mark_read', [PrivateMessageController::class, 'markAsRead']);
  50. // 标记与指定用户的所有私信为已读
  51. Route::post('mark_all_read', [PrivateMessageController::class, 'markAllAsRead']);
  52. // 删除私信
  53. Route::post('delete', [PrivateMessageController::class, 'delete']);
  54. // 删除与指定用户的所有对话
  55. Route::post('delete_conversation', [PrivateMessageController::class, 'deleteConversation']);
  56. // 获取未读私信数量
  57. Route::get('unread_count', [PrivateMessageController::class, 'getUnreadCount']);
  58. })->middleware(['auth']);
  59. // 消息设置相关路由
  60. Route::group('setting', function () {
  61. // 获取用户消息设置
  62. Route::get('user', [MessageSettingController::class, 'getUserSetting']);
  63. // 更新用户消息设置
  64. Route::post('update', [MessageSettingController::class, 'updateSetting']);
  65. })->middleware(['auth']);
  66. // 获取消息列表
  67. Route::resource('', MessageController::class)
  68. ->only(['index', 'read'])
  69. ->middleware(['auth', MacroPageMiddleware::class]);