Эх сурвалжийг харах

feat(message): 新增后台消息列表接口

runphp 4 сар өмнө
parent
commit
e7157d294f

+ 8 - 1
route/admin.php

@@ -6,8 +6,10 @@ use SixShop\Message\Controller\Admin\{
     NotificationController,
     PrivateMessageController,
     MessageTemplateController,
-    MessageSettingController
+    MessageSettingController,
+    MessageController,
 };
+use SixShop\System\Middleware\MacroPageMiddleware;
 use think\facade\Route;
 
 // 后台管理API路由
@@ -66,3 +68,8 @@ Route::group('setting', function () {
     // 更新用户消息设置
     Route::post('update_user', [MessageSettingController::class, 'updateUserSetting']);
 })->middleware(['auth']);
+
+// 获取消息列表
+Route::resource('', MessageController::class)
+    ->only(['index'])
+    ->middleware(['auth', MacroPageMiddleware::class]);

+ 22 - 0
src/Controller/Admin/MessageController.php

@@ -0,0 +1,22 @@
+<?php
+declare(strict_types=1);
+namespace SixShop\Message\Controller\Admin;
+
+use SixShop\Core\Request;
+use SixShop\Message\Entity\MessageNotificationsEntity;
+use function SixShop\Core\page_response;
+
+class MessageController
+{
+    /**
+     * 获取新消息数量
+     */
+    public function index(Request $request, MessageNotificationsEntity $messageNotificationsEntity)
+    {
+        $params = $request->get([
+            'is_read/d' => 0,
+        ]);
+        $params['user_id'] = $request->userID;
+        return page_response($messageNotificationsEntity->getList($params, $request->pageAndLimit()));
+    }
+}

+ 6 - 1
src/Entity/MessageNotificationsEntity.php

@@ -4,11 +4,16 @@ namespace SixShop\Message\Entity;
 
 use SixShop\Core\Entity\BaseEntity;
 use SixShop\Message\Model\MessageNotificationsModel;
+use think\Paginator;
 
 /**
  * @mixin MessageNotificationsModel
  */
 class MessageNotificationsEntity extends BaseEntity
 {
-
+    public function getList(array $params, array $pageAndLimit): Paginator
+    {
+        return $this->withSearch(['user_id', 'is_read'], $params)
+            ->paginate($pageAndLimit);
+    }
 }