Selaa lähdekoodia

refactor: 统一代码风格

runphp 2 viikkoa sitten
vanhempi
sitoutus
5720f39cb8
35 muutettua tiedostoa jossa 519 lisäystä ja 479 poistoa
  1. 2 1
      config.php
  2. 1 0
      database/migrations/20250724080000_create_message_tables.php
  3. 1 0
      info.php
  4. 3 2
      route/admin.php
  5. 2 1
      route/api.php
  6. 40 39
      src/Controller/Admin/AnnouncementController.php
  7. 7 6
      src/Controller/Admin/BaseController.php
  8. 4 2
      src/Controller/Admin/MessageController.php
  9. 22 21
      src/Controller/Admin/MessageSettingController.php
  10. 42 41
      src/Controller/Admin/MessageTemplateController.php
  11. 36 35
      src/Controller/Admin/NotificationController.php
  12. 27 26
      src/Controller/Admin/PrivateMessageController.php
  13. 7 6
      src/Controller/Api/AnnouncementController.php
  14. 8 7
      src/Controller/Api/BaseController.php
  15. 4 2
      src/Controller/Api/MessageController.php
  16. 10 9
      src/Controller/Api/MessageSettingController.php
  17. 35 34
      src/Controller/Api/NotificationController.php
  18. 35 34
      src/Controller/Api/PrivateMessageController.php
  19. 11 10
      src/Entity/AnnouncementEntity.php
  20. 4 1
      src/Entity/MessageNotificationsEntity.php
  21. 10 9
      src/Entity/MessageSettingEntity.php
  22. 10 9
      src/Entity/MessageTemplateEntity.php
  23. 11 10
      src/Entity/NotificationEntity.php
  24. 11 10
      src/Entity/PrivateMessageEntity.php
  25. 3 1
      src/Enum/NotificationsTypeEnum.php
  26. 1 0
      src/Extension.php
  27. 2 1
      src/Hook/SendNotificationsHook.php
  28. 19 19
      src/Model/AnnouncementModel.php
  29. 4 2
      src/Model/MessageNotificationsModel.php
  30. 16 15
      src/Model/MessageSettingModel.php
  31. 23 22
      src/Model/MessageTemplateModel.php
  32. 4 2
      src/Model/MessageTemplatesModel.php
  33. 50 49
      src/Model/NotificationModel.php
  34. 51 50
      src/Model/PrivateMessageModel.php
  35. 3 3
      test/Hook/SendNotificationsHookTest.php

+ 2 - 1
config.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 return json_decode(<<<'JSON'
@@ -117,4 +118,4 @@ return json_decode(<<<'JSON'
         }
     }
 ]
-JSON, true);
+JSON, true);

+ 1 - 0
database/migrations/20250724080000_create_message_tables.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 

+ 1 - 0
info.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 return [

+ 3 - 2
route/admin.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 use SixShop\Message\Controller\Admin\{
@@ -19,8 +20,8 @@ Route::resource('announcement', AnnouncementController::class, function () {
     Route::get('/', [AnnouncementController::class, 'getList']); // 覆盖默认的index路由
     Route::get('detail', [AnnouncementController::class, 'getDetail']);
     //Route::post('add', [AnnouncementController::class, 'add']);
-   /* Route::post('update', [AnnouncementController::class, 'update']);
-    Route::post('delete', [AnnouncementController::class, 'delete']);*/
+    /* Route::post('update', [AnnouncementController::class, 'update']);
+     Route::post('delete', [AnnouncementController::class, 'delete']);*/
     Route::post('batch_delete', [AnnouncementController::class, 'batchDelete']);
     Route::post('update_status', [AnnouncementController::class, 'updateStatus']);
 })->middleware(['auth']);

+ 2 - 1
route/api.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 use SixShop\Message\Controller\Api\{
@@ -72,4 +73,4 @@ Route::group('setting', function () {
 // 获取消息列表
 Route::resource('', MessageController::class)
     ->only(['index', 'read'])
-    ->middleware(['auth']);
+    ->middleware(['auth']);

+ 40 - 39
src/Controller/Admin/AnnouncementController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Admin;
@@ -17,7 +18,7 @@ class AnnouncementController extends BaseController
     {
         return $this->getList(request());
     }
-    
+
     /**
      * 获取公告列表
      */
@@ -29,7 +30,7 @@ class AnnouncementController extends BaseController
         $status = $request->param('status', '');
         $startTime = $request->param('start_time', '');
         $endTime = $request->param('end_time', '');
-        
+
         $params = [];
         if (!empty($title)) {
             $params['title'] = $title;
@@ -43,12 +44,12 @@ class AnnouncementController extends BaseController
         if (!empty($endTime)) {
             $params['end_time'] = $endTime;
         }
-        
+
         $result = $this->announcementModel->getList($params, $page, $limit);
-        
+
         return $this->success('获取成功', $result);
     }
-    
+
     /**
      * 获取公告详情
      */
@@ -58,15 +59,15 @@ class AnnouncementController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $detail = $this->announcementModel->getDetail($id);
         if (!$detail) {
             return $this->error('公告不存在');
         }
-        
+
         return $this->success('获取成功', $detail);
     }
-    
+
     /**
      * 添加公告
      */
@@ -79,15 +80,15 @@ class AnnouncementController extends BaseController
         $startTime = $request->param('start_time', '');
         $endTime = $request->param('end_time', '');
         $sort = $request->param('sort/d', 100);
-        
+
         if (empty($title)) {
             return $this->error('标题不能为空');
         }
-        
+
         if (empty($content)) {
             return $this->error('内容不能为空');
         }
-        
+
         $data = [
             'title' => $title,
             'content' => $content,
@@ -95,23 +96,23 @@ class AnnouncementController extends BaseController
             'status' => $status,
             'sort' => $sort,
         ];
-        
+
         if (!empty($startTime)) {
             $data['start_time'] = strtotime($startTime);
         }
-        
+
         if (!empty($endTime)) {
             $data['end_time'] = strtotime($endTime);
         }
-        
+
         $result = $this->announcementModel->add($data);
         if (!$result) {
             return $this->error('添加失败');
         }
-        
+
         return $this->success('添加成功', ['id' => $result]);
     }
-    
+
     /**
      * 更新公告
      */
@@ -121,7 +122,7 @@ class AnnouncementController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $title = $request->param('title', '');
         $content = $request->param('content', '');
         $type = $request->param('type/d', null);
@@ -129,49 +130,49 @@ class AnnouncementController extends BaseController
         $startTime = $request->param('start_time', '');
         $endTime = $request->param('end_time', '');
         $sort = $request->param('sort/d', null);
-        
+
         $data = [];
-        
+
         if (!empty($title)) {
             $data['title'] = $title;
         }
-        
+
         if (!empty($content)) {
             $data['content'] = $content;
         }
-        
+
         if ($type !== null) {
             $data['type'] = $type;
         }
-        
+
         if ($status !== null) {
             $data['status'] = $status;
         }
-        
+
         if ($sort !== null) {
             $data['sort'] = $sort;
         }
-        
+
         if (!empty($startTime)) {
             $data['start_time'] = strtotime($startTime);
         }
-        
+
         if (!empty($endTime)) {
             $data['end_time'] = strtotime($endTime);
         }
-        
+
         if (empty($data)) {
             return $this->error('没有需要更新的数据');
         }
-        
+
         $result = $this->announcementModel->update($id, $data);
         if (!$result) {
             return $this->error('更新失败');
         }
-        
+
         return $this->success('更新成功');
     }
-    
+
     /**
      * 删除公告
      */
@@ -181,15 +182,15 @@ class AnnouncementController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->announcementModel->delete($id);
         if (!$result) {
             return $this->error('删除失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 批量删除公告
      */
@@ -199,19 +200,19 @@ class AnnouncementController extends BaseController
         if (empty($ids)) {
             return $this->error('参数错误');
         }
-        
+
         if (!is_array($ids)) {
             $ids = explode(',', $ids);
         }
-        
+
         $result = $this->announcementModel->batchDelete($ids);
         if (!$result) {
             return $this->error('删除失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 更新公告状态
      */
@@ -219,16 +220,16 @@ class AnnouncementController extends BaseController
     {
         $id = $request->param('id/d', 0);
         $status = $request->param('status/d', 0);
-        
+
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->announcementModel->update($id, ['status' => $status]);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('操作成功');
     }
 }

+ 7 - 6
src/Controller/Admin/BaseController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Admin;
@@ -19,34 +20,34 @@ class BaseController extends Base
      * @var AnnouncementModel
      */
     protected $announcementModel;
-    
+
     /**
      * @var NotificationModel
      */
     protected $notificationModel;
-    
+
     /**
      * @var PrivateMessageModel
      */
     protected $privateMessageModel;
-    
+
     /**
      * @var MessageSettingModel
      */
     protected $messageSettingModel;
-    
+
     /**
      * @var MessageTemplateModel
      */
     protected $messageTemplateModel;
-    
+
     /**
      * 初始化
      */
     public function initialize()
     {
         parent::initialize();
-        
+
         $this->announcementModel = new AnnouncementModel();
         $this->notificationModel = new NotificationModel();
         $this->privateMessageModel = new PrivateMessageModel();

+ 4 - 2
src/Controller/Admin/MessageController.php

@@ -1,5 +1,7 @@
 <?php
+
 declare(strict_types=1);
+
 namespace SixShop\Message\Controller\Admin;
 
 use SixShop\Core\Request;
@@ -26,8 +28,8 @@ class MessageController
     /**
      * 标记消息为已读
      */
-    public function read(int $id, MessageNotificationsEntity $messageNotificationsEntity):Response
+    public function read(int $id, MessageNotificationsEntity $messageNotificationsEntity): Response
     {
         return success_response($messageNotificationsEntity->read($id));
     }
-}
+}

+ 22 - 21
src/Controller/Admin/MessageSettingController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Admin;
@@ -18,17 +19,17 @@ class MessageSettingController extends BaseController
         $page = $request->param('page/d', 1);
         $limit = $request->param('limit/d', 10);
         $userId = $request->param('user_id/d', null);
-        
+
         $params = [];
         if ($userId !== null) {
             $params['user_id'] = $userId;
         }
-        
+
         $result = $this->messageSettingModel->getList($params, $page, $limit);
-        
+
         return $this->success('获取成功', $result);
     }
-    
+
     /**
      * 获取系统默认设置
      */
@@ -38,10 +39,10 @@ class MessageSettingController extends BaseController
         if (!$setting) {
             return $this->error('获取设置失败');
         }
-        
+
         return $this->success('获取成功', $setting);
     }
-    
+
     /**
      * 获取用户消息设置
      */
@@ -51,15 +52,15 @@ class MessageSettingController extends BaseController
         if ($userId <= 0) {
             return $this->error('用户ID不能为空');
         }
-        
+
         $setting = $this->messageSettingModel->getUserSetting($userId);
         if (!$setting) {
             return $this->error('获取设置失败');
         }
-        
+
         return $this->success('获取成功', $setting);
     }
-    
+
     /**
      * 更新系统默认设置
      */
@@ -72,24 +73,24 @@ class MessageSettingController extends BaseController
             'logistics_notify' => $request->param('logistics_notify/d', null),
             'private_message' => $request->param('private_message/d', null),
         ];
-        
+
         // 过滤空值
-        $data = array_filter($data, function($value) {
+        $data = array_filter($data, function ($value) {
             return $value !== null;
         });
-        
+
         if (empty($data)) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->messageSettingModel->updateDefaultSetting($data);
         if (!$result) {
             return $this->error('更新失败');
         }
-        
+
         return $this->success('更新成功');
     }
-    
+
     /**
      * 更新用户消息设置
      */
@@ -99,7 +100,7 @@ class MessageSettingController extends BaseController
         if ($userId <= 0) {
             return $this->error('用户ID不能为空');
         }
-        
+
         $data = [
             'system_notify' => $request->param('system_notify/d', null),
             'activity_notify' => $request->param('activity_notify/d', null),
@@ -107,21 +108,21 @@ class MessageSettingController extends BaseController
             'logistics_notify' => $request->param('logistics_notify/d', null),
             'private_message' => $request->param('private_message/d', null),
         ];
-        
+
         // 过滤空值
-        $data = array_filter($data, function($value) {
+        $data = array_filter($data, function ($value) {
             return $value !== null;
         });
-        
+
         if (empty($data)) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->messageSettingModel->updateSetting($userId, $data);
         if (!$result) {
             return $this->error('更新失败');
         }
-        
+
         return $this->success('更新成功');
     }
 }

+ 42 - 41
src/Controller/Admin/MessageTemplateController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Admin;
@@ -17,7 +18,7 @@ class MessageTemplateController extends BaseController
     {
         return $this->getList(request());
     }
-    
+
     /**
      * 获取模板列表
      */
@@ -29,7 +30,7 @@ class MessageTemplateController extends BaseController
         $name = $request->param('name', '');
         $type = $request->param('type/d', 0);
         $status = $request->param('status', '');
-        
+
         $params = [];
         if (!empty($code)) {
             $params['code'] = $code;
@@ -43,12 +44,12 @@ class MessageTemplateController extends BaseController
         if ($status !== '') {
             $params['status'] = $status;
         }
-        
+
         $result = $this->messageTemplateModel->getList($params, $page, $limit);
-        
+
         return $this->success('获取成功', $result);
     }
-    
+
     /**
      * 获取模板详情
      */
@@ -58,15 +59,15 @@ class MessageTemplateController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $detail = $this->messageTemplateModel->getDetail($id);
         if (!$detail) {
             return $this->error('模板不存在');
         }
-        
+
         return $this->success('获取成功', $detail);
     }
-    
+
     /**
      * 添加模板
      */
@@ -79,23 +80,23 @@ class MessageTemplateController extends BaseController
         $content = $request->param('content', '');
         $status = $request->param('status/d', 1);
         $remark = $request->param('remark', '');
-        
+
         if (empty($code)) {
             return $this->error('模板代码不能为空');
         }
-        
+
         if (empty($name)) {
             return $this->error('模板名称不能为空');
         }
-        
+
         if (empty($title)) {
             return $this->error('标题模板不能为空');
         }
-        
+
         if (empty($content)) {
             return $this->error('内容模板不能为空');
         }
-        
+
         $data = [
             'code' => $code,
             'name' => $name,
@@ -105,15 +106,15 @@ class MessageTemplateController extends BaseController
             'status' => $status,
             'remark' => $remark,
         ];
-        
+
         $result = $this->messageTemplateModel->add($data);
         if (!$result) {
             return $this->error('添加失败,模板代码可能已存在');
         }
-       
+
         return $this->success('添加成功', ['id' => $result]);
     }
-    
+
     /**
      * 更新模板
      */
@@ -121,16 +122,16 @@ class MessageTemplateController extends BaseController
     {
         // 确保ID是整数类型
         $id = (int)$id;
-        
+
         // 如果路径参数中的ID无效,尝试从请求参数中获取
         if ($id <= 0) {
             $id = $request->param('id/d', 0);
         }
-        
+
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $code = $request->param('code', '');
         $name = $request->param('name', '');
         $type = $request->param('type/d', null);
@@ -138,49 +139,49 @@ class MessageTemplateController extends BaseController
         $content = $request->param('content', '');
         $status = $request->param('status/d', null);
         $remark = $request->param('remark', '');
-        
+
         $data = [];
-        
+
         if (!empty($code)) {
             $data['code'] = $code;
         }
-        
+
         if (!empty($name)) {
             $data['name'] = $name;
         }
-        
+
         if ($type !== null) {
             $data['type'] = $type;
         }
-        
+
         if (!empty($title)) {
             $data['title'] = $title;
         }
-        
+
         if (!empty($content)) {
             $data['content'] = $content;
         }
-        
+
         if ($status !== null) {
             $data['status'] = $status;
         }
-        
+
         if ($remark !== null) {
             $data['remark'] = $remark;
         }
-        
+
         if (empty($data)) {
             return $this->error('没有需要更新的数据');
         }
-        
+
         $result = $this->messageTemplateModel->update($id, $data);
         if (!$result) {
             return $this->error('更新失败,模板代码可能已存在');
         }
-        
+
         return $this->success('更新成功');
     }
-    
+
     /**
      * 删除模板
      */
@@ -190,15 +191,15 @@ class MessageTemplateController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->messageTemplateModel->delete($id);
         if (!$result) {
             return $this->error('删除失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 批量删除模板
      */
@@ -208,19 +209,19 @@ class MessageTemplateController extends BaseController
         if (empty($ids)) {
             return $this->error('参数错误');
         }
-        
+
         if (!is_array($ids)) {
             $ids = explode(',', $ids);
         }
-        
+
         $result = $this->messageTemplateModel->batchDelete($ids);
         if (!$result) {
             return $this->error('删除失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 更新模板状态
      */
@@ -228,16 +229,16 @@ class MessageTemplateController extends BaseController
     {
         $id = $request->param('id/d', 0);
         $status = $request->param('status/d', 0);
-        
+
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->messageTemplateModel->update($id, ['status' => $status]);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('操作成功');
     }
 }

+ 36 - 35
src/Controller/Admin/NotificationController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Admin;
@@ -17,7 +18,7 @@ class NotificationController extends BaseController
     {
         return $this->getList(request());
     }
-    
+
     /**
      * 获取通知列表
      */
@@ -31,7 +32,7 @@ class NotificationController extends BaseController
         $title = $request->param('title', '');
         $startTime = $request->param('start_time', '');
         $endTime = $request->param('end_time', '');
-        
+
         $params = [];
         if ($userId > 0) {
             $params['user_id'] = $userId;
@@ -51,12 +52,12 @@ class NotificationController extends BaseController
         if (!empty($endTime)) {
             $params['end_time'] = $endTime;
         }
-        
+
         $result = $this->notificationModel->getList($params, $page, $limit);
-        
+
         return $this->success('获取成功', $result);
     }
-    
+
     /**
      * 获取通知详情
      */
@@ -66,15 +67,15 @@ class NotificationController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $detail = $this->notificationModel->getDetail($id);
         if (!$detail) {
             return $this->error('通知不存在');
         }
-        
+
         return $this->success('获取成功', $detail);
     }
-    
+
     /**
      * 发送通知给单个用户
      */
@@ -85,34 +86,34 @@ class NotificationController extends BaseController
         $content = $request->param('content', '');
         $type = $request->param('type/d', 1);
         $url = $request->param('url', '');
-        
+
         if ($userId <= 0) {
             return $this->error('用户ID不能为空');
         }
-        
+
         if (empty($title)) {
             return $this->error('标题不能为空');
         }
-        
+
         if (empty($content)) {
             return $this->error('内容不能为空');
         }
-        
+
         $data = [
             'title' => $title,
             'content' => $content,
             'type' => $type,
             'url' => $url,
         ];
-        
+
         $result = $this->notificationModel->sendToUser($userId, $data);
         if (!$result) {
             return $this->error('发送失败');
         }
-        
+
         return $this->success('发送成功', ['id' => $result]);
     }
-    
+
     /**
      * 发送通知给多个用户
      */
@@ -123,38 +124,38 @@ class NotificationController extends BaseController
         $content = $request->param('content', '');
         $type = $request->param('type/d', 1);
         $url = $request->param('url', '');
-        
+
         if (empty($userIds)) {
             return $this->error('用户ID不能为空');
         }
-        
+
         if (!is_array($userIds)) {
             $userIds = explode(',', $userIds);
         }
-        
+
         if (empty($title)) {
             return $this->error('标题不能为空');
         }
-        
+
         if (empty($content)) {
             return $this->error('内容不能为空');
         }
-        
+
         $data = [
             'title' => $title,
             'content' => $content,
             'type' => $type,
             'url' => $url,
         ];
-        
+
         $result = $this->notificationModel->sendToUsers($userIds, $data);
         if (!$result) {
             return $this->error('发送失败');
         }
-        
+
         return $this->success('发送成功', ['count' => count($result)]);
     }
-    
+
     /**
      * 发送全局通知
      */
@@ -164,30 +165,30 @@ class NotificationController extends BaseController
         $content = $request->param('content', '');
         $type = $request->param('type/d', 1);
         $url = $request->param('url', '');
-        
+
         if (empty($title)) {
             return $this->error('标题不能为空');
         }
-        
+
         if (empty($content)) {
             return $this->error('内容不能为空');
         }
-        
+
         $data = [
             'title' => $title,
             'content' => $content,
             'type' => $type,
             'url' => $url,
         ];
-        
+
         $result = $this->notificationModel->sendGlobal($data);
         if (!$result) {
             return $this->error('发送失败');
         }
-        
+
         return $this->success('发送成功', ['id' => $result]);
     }
-    
+
     /**
      * 删除通知
      */
@@ -197,15 +198,15 @@ class NotificationController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->notificationModel->adminDelete($id);
         if (!$result) {
             return $this->error('删除失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 批量删除通知
      */
@@ -215,16 +216,16 @@ class NotificationController extends BaseController
         if (empty($ids)) {
             return $this->error('参数错误');
         }
-        
+
         if (!is_array($ids)) {
             $ids = explode(',', $ids);
         }
-        
+
         $result = $this->notificationModel->adminBatchDelete($ids);
         if (!$result) {
             return $this->error('删除失败');
         }
-        
+
         return $this->success('删除成功');
     }
 }

+ 27 - 26
src/Controller/Admin/PrivateMessageController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Admin;
@@ -17,7 +18,7 @@ class PrivateMessageController extends BaseController
     {
         return $this->getList(request());
     }
-    
+
     /**
      * 获取私信列表
      */
@@ -31,7 +32,7 @@ class PrivateMessageController extends BaseController
         $content = $request->param('content', '');
         $startTime = $request->param('start_time', '');
         $endTime = $request->param('end_time', '');
-        
+
         $params = [];
         if ($fromUserId > 0) {
             $params['from_user_id'] = $fromUserId;
@@ -51,12 +52,12 @@ class PrivateMessageController extends BaseController
         if (!empty($endTime)) {
             $params['end_time'] = $endTime;
         }
-        
+
         $result = $this->privateMessageModel->getList($params, $page, $limit);
-        
+
         return $this->success('获取成功', $result);
     }
-    
+
     /**
      * 获取私信详情
      */
@@ -66,15 +67,15 @@ class PrivateMessageController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $detail = $this->privateMessageModel->getDetail($id);
         if (!$detail) {
             return $this->error('私信不存在');
         }
-        
+
         return $this->success('获取成功', $detail);
     }
-    
+
     /**
      * 发送系统私信给用户
      */
@@ -82,23 +83,23 @@ class PrivateMessageController extends BaseController
     {
         $toUserId = $request->param('to_user_id/d', 0);
         $content = $request->param('content', '');
-        
+
         if ($toUserId <= 0) {
             return $this->error('接收者ID不能为空');
         }
-        
+
         if (empty($content)) {
             return $this->error('内容不能为空');
         }
-        
+
         $result = $this->privateMessageModel->sendSystemMessage($toUserId, $content);
         if (!$result) {
             return $this->error('发送失败');
         }
-        
+
         return $this->success('发送成功', ['id' => $result]);
     }
-    
+
     /**
      * 批量发送系统私信
      */
@@ -106,19 +107,19 @@ class PrivateMessageController extends BaseController
     {
         $userIds = $request->param('user_ids');
         $content = $request->param('content', '');
-        
+
         if (empty($userIds)) {
             return $this->error('接收者ID不能为空');
         }
-        
+
         if (!is_array($userIds)) {
             $userIds = explode(',', $userIds);
         }
-        
+
         if (empty($content)) {
             return $this->error('内容不能为空');
         }
-        
+
         $successCount = 0;
         foreach ($userIds as $userId) {
             $result = $this->privateMessageModel->sendSystemMessage((int)$userId, $content);
@@ -126,10 +127,10 @@ class PrivateMessageController extends BaseController
                 $successCount++;
             }
         }
-        
+
         return $this->success('发送成功', ['success_count' => $successCount, 'total_count' => count($userIds)]);
     }
-    
+
     /**
      * 删除私信
      */
@@ -139,21 +140,21 @@ class PrivateMessageController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         // 管理员可以删除任何私信,不需要验证用户ID
         $entity = $this->privateMessageModel->getDetail($id);
         if (!$entity) {
             return $this->error('私信不存在');
         }
-        
+
         $result = $entity->delete();
         if (!$result) {
             return $this->error('删除失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 批量删除私信
      */
@@ -163,17 +164,17 @@ class PrivateMessageController extends BaseController
         if (empty($ids)) {
             return $this->error('参数错误');
         }
-        
+
         if (!is_array($ids)) {
             $ids = explode(',', $ids);
         }
-        
+
         // 管理员可以批量删除私信,不需要验证用户ID
         $result = $this->privateMessageModel->batchDelete($ids, 0);
         if (!$result) {
             return $this->error('删除失败');
         }
-        
+
         return $this->success('删除成功');
     }
 }

+ 7 - 6
src/Controller/Api/AnnouncementController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Api;
@@ -17,13 +18,13 @@ class AnnouncementController extends BaseController
     {
         $page = $request->param('page/d', 1);
         $limit = $request->param('limit/d', 10);
-        
+
         // 只获取有效的公告
         $list = $this->announcementModel->getValidList($limit);
-        
+
         return $this->success('获取成功', $list);
     }
-    
+
     /**
      * 获取公告详情
      */
@@ -33,17 +34,17 @@ class AnnouncementController extends BaseController
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $detail = $this->announcementModel->getDetail($id);
         if (!$detail) {
             return $this->error('公告不存在');
         }
-        
+
         // 检查公告是否有效
         if (!$detail->isValid()) {
             return $this->error('公告已过期或未启用');
         }
-        
+
         return $this->success('获取成功', $detail);
     }
 }

+ 8 - 7
src/Controller/Api/BaseController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Api;
@@ -19,41 +20,41 @@ class BaseController extends Base
      * @var AnnouncementModel
      */
     protected $announcementModel;
-    
+
     /**
      * @var NotificationModel
      */
     protected $notificationModel;
-    
+
     /**
      * @var PrivateMessageModel
      */
     protected $privateMessageModel;
-    
+
     /**
      * @var MessageSettingModel
      */
     protected $messageSettingModel;
-    
+
     /**
      * @var MessageTemplateModel
      */
     protected $messageTemplateModel;
-    
+
     /**
      * 初始化
      */
     public function initialize()
     {
         parent::initialize();
-        
+
         $this->announcementModel = new AnnouncementModel();
         $this->notificationModel = new NotificationModel();
         $this->privateMessageModel = new PrivateMessageModel();
         $this->messageSettingModel = new MessageSettingModel();
         $this->messageTemplateModel = new MessageTemplateModel();
     }
-    
+
     /**
      * 获取当前用户ID
      *

+ 4 - 2
src/Controller/Api/MessageController.php

@@ -1,5 +1,7 @@
 <?php
+
 declare(strict_types=1);
+
 namespace SixShop\Message\Controller\Api;
 
 use SixShop\Core\Request;
@@ -26,8 +28,8 @@ class MessageController
     /**
      * 标记消息为已读
      */
-    public function read(int $id, MessageNotificationsEntity $messageNotificationsEntity):Response
+    public function read(int $id, MessageNotificationsEntity $messageNotificationsEntity): Response
     {
         return success_response($messageNotificationsEntity->read($id));
     }
-}
+}

+ 10 - 9
src/Controller/Api/MessageSettingController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Api;
@@ -19,15 +20,15 @@ class MessageSettingController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $setting = $this->messageSettingModel->getUserSetting($userId);
         if (!$setting) {
             return $this->error('获取设置失败');
         }
-        
+
         return $this->success('获取成功', $setting);
     }
-    
+
     /**
      * 更新用户消息设置
      */
@@ -37,7 +38,7 @@ class MessageSettingController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $data = [
             'system_notify' => $request->param('system_notify/d', null),
             'activity_notify' => $request->param('activity_notify/d', null),
@@ -45,21 +46,21 @@ class MessageSettingController extends BaseController
             'logistics_notify' => $request->param('logistics_notify/d', null),
             'private_message' => $request->param('private_message/d', null),
         ];
-        
+
         // 过滤空值
-        $data = array_filter($data, function($value) {
+        $data = array_filter($data, function ($value) {
             return $value !== null;
         });
-        
+
         if (empty($data)) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->messageSettingModel->updateSetting($userId, $data);
         if (!$result) {
             return $this->error('更新失败');
         }
-        
+
         return $this->success('更新成功');
     }
 }

+ 35 - 34
src/Controller/Api/NotificationController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Api;
@@ -19,12 +20,12 @@ class NotificationController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $page = $request->param('page/d', 1);
         $limit = $request->param('limit/d', 10);
         $type = $request->param('type/d', 0);
         $isRead = $request->param('is_read/d', null);
-        
+
         $params = [];
         if ($type > 0) {
             $params['type'] = $type;
@@ -32,12 +33,12 @@ class NotificationController extends BaseController
         if ($isRead !== null) {
             $params['is_read'] = $isRead;
         }
-        
+
         $result = $this->notificationModel->getUserNotifications($userId, $params, $page, $limit);
-        
+
         return $this->success('获取成功', $result);
     }
-    
+
     /**
      * 获取通知详情
      */
@@ -47,28 +48,28 @@ class NotificationController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $id = $request->param('id/d', 0);
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $detail = $this->notificationModel->getDetail($id);
         if (!$detail) {
             return $this->error('通知不存在');
         }
-        
+
         // 检查权限
         if ($detail->user_id > 0 && $detail->user_id != $userId) {
             return $this->error('无权限查看');
         }
-        
+
         // 标记为已读
         $this->notificationModel->markAsRead($id, $userId);
-        
+
         return $this->success('获取成功', $detail);
     }
-    
+
     /**
      * 标记通知为已读
      */
@@ -78,20 +79,20 @@ class NotificationController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $id = $request->param('id/d', 0);
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->notificationModel->markAsRead($id, $userId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('操作成功');
     }
-    
+
     /**
      * 批量标记通知为已读
      */
@@ -101,24 +102,24 @@ class NotificationController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $ids = $request->param('ids');
         if (empty($ids)) {
             return $this->error('参数错误');
         }
-        
+
         if (!is_array($ids)) {
             $ids = explode(',', $ids);
         }
-        
+
         $result = $this->notificationModel->batchMarkAsRead($ids, $userId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('操作成功');
     }
-    
+
     /**
      * 标记所有通知为已读
      */
@@ -128,15 +129,15 @@ class NotificationController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $result = $this->notificationModel->markAllAsRead($userId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('操作成功');
     }
-    
+
     /**
      * 删除通知
      */
@@ -146,20 +147,20 @@ class NotificationController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $id = $request->param('id/d', 0);
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->notificationModel->delete($id, $userId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 批量删除通知
      */
@@ -169,24 +170,24 @@ class NotificationController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $ids = $request->param('ids');
         if (empty($ids)) {
             return $this->error('参数错误');
         }
-        
+
         if (!is_array($ids)) {
             $ids = explode(',', $ids);
         }
-        
+
         $result = $this->notificationModel->batchDelete($ids, $userId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 获取未读通知数量
      */
@@ -196,9 +197,9 @@ class NotificationController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $count = $this->notificationModel->getUnreadCount($userId);
-        
+
         return $this->success('获取成功', ['count' => $count]);
     }
 }

+ 35 - 34
src/Controller/Api/PrivateMessageController.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Controller\Api;
@@ -19,15 +20,15 @@ class PrivateMessageController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $page = $request->param('page/d', 1);
         $limit = $request->param('limit/d', 10);
-        
+
         $result = $this->privateMessageModel->getConversationList($userId, $page, $limit);
-        
+
         return $this->success('获取成功', $result);
     }
-    
+
     /**
      * 获取与指定用户的对话消息
      */
@@ -37,20 +38,20 @@ class PrivateMessageController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $partnerId = $request->param('partner_id/d', 0);
         if ($partnerId < 0) {
             return $this->error('参数错误');
         }
-        
+
         $page = $request->param('page/d', 1);
         $limit = $request->param('limit/d', 20);
-        
+
         $result = $this->privateMessageModel->getConversationMessages($userId, $partnerId, $page, $limit);
-        
+
         return $this->success('获取成功', $result);
     }
-    
+
     /**
      * 发送私信
      */
@@ -60,31 +61,31 @@ class PrivateMessageController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $toUserId = $request->param('to_user_id/d', 0);
         $content = $request->param('content', '');
-        
+
         if ($toUserId <= 0) {
             return $this->error('接收者不能为空');
         }
-        
+
         if (empty($content)) {
             return $this->error('消息内容不能为空');
         }
-        
+
         // 不能给自己发私信
         if ($toUserId == $userId) {
             return $this->error('不能给自己发送私信');
         }
-        
+
         $result = $this->privateMessageModel->send($userId, $toUserId, $content);
         if (!$result) {
             return $this->error('发送失败,对方可能已关闭私信功能');
         }
-        
+
         return $this->success('发送成功', ['id' => $result]);
     }
-    
+
     /**
      * 标记私信为已读
      */
@@ -94,20 +95,20 @@ class PrivateMessageController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $id = $request->param('id/d', 0);
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->privateMessageModel->markAsRead($id, $userId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('操作成功');
     }
-    
+
     /**
      * 标记与指定用户的所有私信为已读
      */
@@ -117,20 +118,20 @@ class PrivateMessageController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $partnerId = $request->param('partner_id/d', 0);
         if ($partnerId < 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->privateMessageModel->markAllAsRead($userId, $partnerId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('操作成功');
     }
-    
+
     /**
      * 删除私信
      */
@@ -140,20 +141,20 @@ class PrivateMessageController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $id = $request->param('id/d', 0);
         if ($id <= 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->privateMessageModel->delete($id, $userId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 删除与指定用户的所有对话
      */
@@ -163,20 +164,20 @@ class PrivateMessageController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $partnerId = $request->param('partner_id/d', 0);
         if ($partnerId < 0) {
             return $this->error('参数错误');
         }
-        
+
         $result = $this->privateMessageModel->deleteConversation($userId, $partnerId);
         if (!$result) {
             return $this->error('操作失败');
         }
-        
+
         return $this->success('删除成功');
     }
-    
+
     /**
      * 获取未读私信数量
      */
@@ -186,9 +187,9 @@ class PrivateMessageController extends BaseController
         if (!$userId) {
             return $this->error('请先登录');
         }
-        
+
         $count = $this->privateMessageModel->getUnreadCount($userId);
-        
+
         return $this->success('获取成功', ['count' => $count]);
     }
 }

+ 11 - 10
src/Entity/AnnouncementEntity.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Entity;
@@ -12,7 +13,7 @@ class AnnouncementEntity extends Model
 {
     // 设置表名
     protected $name = 'message_announcements';
-    
+
     // 设置字段信息
     protected $schema = [
         'id'          => 'int',
@@ -26,13 +27,13 @@ class AnnouncementEntity extends Model
         'update_time' => 'int',
         'delete_time' => 'int',
     ];
-    
+
     // 自动时间戳
     protected $autoWriteTimestamp = true;
-    
+
     // 软删除
     protected $deleteTime = 'delete_time';
-    
+
     /**
      * 获取公告类型文本
      */
@@ -43,10 +44,10 @@ class AnnouncementEntity extends Model
             2 => '重要公告',
             3 => '紧急公告',
         ];
-        
+
         return $types[$this->type] ?? '未知类型';
     }
-    
+
     /**
      * 获取状态文本
      */
@@ -56,19 +57,19 @@ class AnnouncementEntity extends Model
             0 => '禁用',
             1 => '启用',
         ];
-        
+
         return $statuses[$this->status] ?? '未知状态';
     }
-    
+
     /**
      * 判断公告是否有效
      */
     public function isValid()
     {
         $now = time();
-        
+
         // 检查状态和时间范围
-        return $this->status == 1 
+        return $this->status == 1
             && ($this->start_time == 0 || $this->start_time <= $now)
             && ($this->end_time == 0 || $this->end_time >= $now);
     }

+ 4 - 1
src/Entity/MessageNotificationsEntity.php

@@ -1,10 +1,13 @@
 <?php
+
 declare(strict_types=1);
+
 namespace SixShop\Message\Entity;
 
 use SixShop\Core\Entity\BaseEntity;
 use SixShop\Message\Model\MessageNotificationsModel;
 use think\Paginator;
+
 use function SixShop\Core\throw_logic_exception;
 
 /**
@@ -29,4 +32,4 @@ class MessageNotificationsEntity extends BaseEntity
         $entity->save();
         return $entity;
     }
-}
+}

+ 10 - 9
src/Entity/MessageSettingEntity.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Entity;
@@ -12,7 +13,7 @@ class MessageSettingEntity extends Model
 {
     // 设置表名
     protected $name = 'message_settings';
-    
+
     // 设置字段信息
     protected $schema = [
         'id'               => 'int',
@@ -25,10 +26,10 @@ class MessageSettingEntity extends Model
         'create_time'      => 'int',
         'update_time'      => 'int',
     ];
-    
+
     // 自动时间戳
     protected $autoWriteTimestamp = true;
-    
+
     /**
      * 关联用户
      */
@@ -36,7 +37,7 @@ class MessageSettingEntity extends Model
     {
         return $this->belongsTo('app\common\model\User', 'user_id');
     }
-    
+
     /**
      * 获取系统通知状态文本
      */
@@ -44,7 +45,7 @@ class MessageSettingEntity extends Model
     {
         return $this->system_notify ? '开启' : '关闭';
     }
-    
+
     /**
      * 获取活动通知状态文本
      */
@@ -52,7 +53,7 @@ class MessageSettingEntity extends Model
     {
         return $this->activity_notify ? '开启' : '关闭';
     }
-    
+
     /**
      * 获取订单通知状态文本
      */
@@ -60,7 +61,7 @@ class MessageSettingEntity extends Model
     {
         return $this->order_notify ? '开启' : '关闭';
     }
-    
+
     /**
      * 获取物流通知状态文本
      */
@@ -68,7 +69,7 @@ class MessageSettingEntity extends Model
     {
         return $this->logistics_notify ? '开启' : '关闭';
     }
-    
+
     /**
      * 获取私信状态文本
      */
@@ -76,7 +77,7 @@ class MessageSettingEntity extends Model
     {
         return $this->private_message ? '开启' : '关闭';
     }
-    
+
     /**
      * 检查指定类型的通知是否开启
      *

+ 10 - 9
src/Entity/MessageTemplateEntity.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Entity;
@@ -12,7 +13,7 @@ class MessageTemplateEntity extends Model
 {
     // 设置表名
     protected $name = 'message_templates';
-    
+
     // 设置字段信息
     protected $schema = [
         'id'          => 'int',
@@ -25,10 +26,10 @@ class MessageTemplateEntity extends Model
         'create_time' => 'int',
         'update_time' => 'int',
     ];
-    
+
     // 自动时间戳
     protected $autoWriteTimestamp = true;
-    
+
     /**
      * 获取模板类型文本
      */
@@ -42,10 +43,10 @@ class MessageTemplateEntity extends Model
             5 => '私信',
             6 => '其他',
         ];
-        
+
         return $types[$this->type] ?? '未知类型';
     }
-    
+
     /**
      * 获取状态文本
      */
@@ -55,10 +56,10 @@ class MessageTemplateEntity extends Model
             0 => '禁用',
             1 => '启用',
         ];
-        
+
         return $statuses[$this->status] ?? '未知状态';
     }
-    
+
     /**
      * 解析模板内容
      *
@@ -69,13 +70,13 @@ class MessageTemplateEntity extends Model
     {
         $title = $this->title;
         $content = $this->content;
-        
+
         // 替换变量
         foreach ($data as $key => $value) {
             $title = str_replace('{' . $key . '}', $value, $title);
             $content = str_replace('{' . $key . '}', $value, $content);
         }
-        
+
         return [
             'title' => $title,
             'content' => $content,

+ 11 - 10
src/Entity/NotificationEntity.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Entity;
@@ -12,7 +13,7 @@ class NotificationEntity extends Model
 {
     // 设置表名
     protected $name = 'message_notifications';
-    
+
     // 设置字段信息
     protected $schema = [
         'id'          => 'int',
@@ -26,13 +27,13 @@ class NotificationEntity extends Model
         'update_time' => 'int',
         'delete_time' => 'int',*/
     ];
-    
+
     // 自动时间戳
     protected $autoWriteTimestamp = true;
-    
+
     // 软删除
     protected $deleteTime = 'delete_time';
-    
+
     /**
      * 获取通知类型文本
      */
@@ -45,10 +46,10 @@ class NotificationEntity extends Model
             4 => '物流通知',
             5 => '其他通知',
         ];
-        
+
         return $types[$this->type] ?? '未知类型';
     }
-    
+
     /**
      * 获取是否已读文本
      */
@@ -58,10 +59,10 @@ class NotificationEntity extends Model
             0 => '未读',
             1 => '已读',
         ];
-        
+
         return $statuses[$this->is_read] ?? '未知状态';
     }
-    
+
     /**
      * 标记为已读
      */
@@ -72,10 +73,10 @@ class NotificationEntity extends Model
             $this->read_time = time();
             $this->save();
         }
-        
+
         return $this;
     }
-    
+
     /**
      * 关联用户
      */

+ 11 - 10
src/Entity/PrivateMessageEntity.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Entity;
@@ -12,7 +13,7 @@ class PrivateMessageEntity extends Model
 {
     // 设置表名
     protected $name = 'message_privates';
-    
+
     // 设置字段信息
     protected $schema = [
         'id'           => 'int',
@@ -25,13 +26,13 @@ class PrivateMessageEntity extends Model
         'update_time'  => 'int',
         'delete_time'  => 'int',
     ];
-    
+
     // 自动时间戳
     protected $autoWriteTimestamp = true;
-    
+
     // 软删除
     protected $deleteTime = 'delete_time';
-    
+
     /**
      * 获取是否已读文本
      */
@@ -41,10 +42,10 @@ class PrivateMessageEntity extends Model
             0 => '未读',
             1 => '已读',
         ];
-        
+
         return $statuses[$this->is_read] ?? '未知状态';
     }
-    
+
     /**
      * 标记为已读
      */
@@ -55,10 +56,10 @@ class PrivateMessageEntity extends Model
             $this->read_time = time();
             $this->save();
         }
-        
+
         return $this;
     }
-    
+
     /**
      * 关联发送者用户
      */
@@ -66,7 +67,7 @@ class PrivateMessageEntity extends Model
     {
         return $this->belongsTo('app\common\model\User', 'from_user_id');
     }
-    
+
     /**
      * 关联接收者用户
      */
@@ -74,7 +75,7 @@ class PrivateMessageEntity extends Model
     {
         return $this->belongsTo('app\common\model\User', 'to_user_id');
     }
-    
+
     /**
      * 判断是否为系统消息
      */

+ 3 - 1
src/Enum/NotificationsTypeEnum.php

@@ -1,8 +1,10 @@
 <?php
+
 declare(strict_types=1);
+
 namespace SixShop\Message\Enum;
 
-enum NotificationsTypeEnum:int
+enum NotificationsTypeEnum: int
 {
     //类型:1-系统通知,2-活动通知,3-订单通知,4-物流通知,5-其他
     case SYSTEM = 1;

+ 1 - 0
src/Extension.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message;

+ 2 - 1
src/Hook/SendNotificationsHook.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Hook;
@@ -47,4 +48,4 @@ readonly class SendNotificationsHook
         }
         $msgList && $this->messageNotificationsEntity->insertAll($msgList);
     }
-}
+}

+ 19 - 19
src/Model/AnnouncementModel.php

@@ -1,10 +1,10 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Model;
 
 use SixShop\Message\Entity\AnnouncementEntity;
-use think\facade\Db;
 
 /**
  * 系统公告模型
@@ -22,22 +22,22 @@ class AnnouncementModel
     public function getList(array $params = [], int $page = 1, int $limit = 10)
     {
         $query = AnnouncementEntity::where('1=1');
-        
+
         // 标题搜索
         if (!empty($params['title'])) {
             $query->where('title', 'like', '%' . $params['title'] . '%');
         }
-        
+
         // 状态筛选
         if (isset($params['status']) && $params['status'] !== '') {
             $query->where('status', $params['status']);
         }
-        
+
         // 类型筛选
         if (isset($params['type']) && $params['type'] !== '') {
             $query->where('type', $params['type']);
         }
-        
+
         // 时间范围筛选
         if (!empty($params['start_time'])) {
             $query->where('create_time', '>=', strtotime($params['start_time']));
@@ -45,16 +45,16 @@ class AnnouncementModel
         if (!empty($params['end_time'])) {
             $query->where('create_time', '<=', strtotime($params['end_time']));
         }
-        
+
         // 获取总数
         $total = $query->count();
-        
+
         // 获取分页数据
         $list = $query->order('id', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+
         return [
             'list' => $list,
             'total' => $total,
@@ -62,7 +62,7 @@ class AnnouncementModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取单个公告详情
      *
@@ -73,7 +73,7 @@ class AnnouncementModel
     {
         return AnnouncementEntity::find($id);
     }
-    
+
     /**
      * 添加公告
      *
@@ -83,14 +83,14 @@ class AnnouncementModel
     public function add(array $data)
     {
         $entity = new AnnouncementEntity();
-        $result =$entity->save($data);
+        $result = $entity->save($data);
         if ($result) {
             return $entity->id ?: true; // 如果没有id属性,至少返回true表示成功
         }
-        
+
         return false;
     }
-    
+
     /**
      * 更新公告
      *
@@ -104,10 +104,10 @@ class AnnouncementModel
         if (!$entity) {
             return false;
         }
-        
+
         return $entity->save($data);
     }
-    
+
     /**
      * 删除公告
      *
@@ -120,10 +120,10 @@ class AnnouncementModel
         if (!$entity) {
             return false;
         }
-        
+
         return $entity->delete();
     }
-    
+
     /**
      * 批量删除公告
      *
@@ -134,7 +134,7 @@ class AnnouncementModel
     {
         return AnnouncementEntity::destroy($ids);
     }
-    
+
     /**
      * 获取有效的公告列表
      *
@@ -144,7 +144,7 @@ class AnnouncementModel
     public function getValidList(int $limit = 5)
     {
         $now = time();
-        
+
         return AnnouncementEntity::where('status', 1)
             ->where(function ($query) use ($now) {
                 $query->where('start_time', 0)

+ 4 - 2
src/Model/MessageNotificationsModel.php

@@ -1,5 +1,7 @@
 <?php
+
 declare(strict_types=1);
+
 namespace SixShop\Message\Model;
 
 use SixShop\Message\Enum\NotificationsTypeEnum;
@@ -19,8 +21,8 @@ class MessageNotificationsModel extends Model
         ];
     }
 
-    public function template():BelongsTo
+    public function template(): BelongsTo
     {
         return $this->belongsTo(MessageTemplatesModel::class, 'template_code', 'code');
     }
-}
+}

+ 16 - 15
src/Model/MessageSettingModel.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Model;
@@ -21,21 +22,21 @@ class MessageSettingModel
     public function getList(array $params = [], int $page = 1, int $limit = 10)
     {
         $query = MessageSettingEntity::where('1=1');
-        
+
         // 用户ID筛选
         if (isset($params['user_id']) && $params['user_id'] !== '') {
             $query->where('user_id', $params['user_id']);
         }
-        
+
         // 获取总数
         $total = $query->count();
-        
+
         // 获取分页数据
         $list = $query->order('id', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+
         return [
             'list' => $list,
             'total' => $total,
@@ -43,7 +44,7 @@ class MessageSettingModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取系统默认设置
      *
@@ -53,7 +54,7 @@ class MessageSettingModel
     {
         return MessageSettingEntity::where('user_id', 0)->find();
     }
-    
+
     /**
      * 获取用户消息设置
      *
@@ -65,7 +66,7 @@ class MessageSettingModel
         if ($userId <= 0) {
             return null;
         }
-        
+
         $setting = MessageSettingEntity::where('user_id', $userId)->find();
         if (!$setting) {
             // 如果用户没有设置,则使用系统默认设置
@@ -81,10 +82,10 @@ class MessageSettingModel
                 $setting->save();
             }
         }
-        
+
         return $setting;
     }
-    
+
     /**
      * 更新或创建消息设置
      *
@@ -99,7 +100,7 @@ class MessageSettingModel
             $setting = new MessageSettingEntity();
             $setting->user_id = $userId;
         }
-        
+
         // 更新设置
         if (isset($data['system_notify'])) {
             $setting->system_notify = (int)$data['system_notify'];
@@ -116,10 +117,10 @@ class MessageSettingModel
         if (isset($data['private_message'])) {
             $setting->private_message = (int)$data['private_message'];
         }
-        
+
         return $setting->save();
     }
-    
+
     /**
      * 更新系统默认设置
      *
@@ -130,7 +131,7 @@ class MessageSettingModel
     {
         return $this->updateSetting(0, $data);
     }
-    
+
     /**
      * 检查指定类型的通知是否对用户开启
      *
@@ -143,12 +144,12 @@ class MessageSettingModel
         if ($userId <= 0) {
             return true;
         }
-        
+
         $setting = $this->getUserSetting($userId);
         if (!$setting) {
             return true;
         }
-        
+
         return $setting->isNotifyEnabled($type);
     }
 }

+ 23 - 22
src/Model/MessageTemplateModel.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Model;
@@ -21,36 +22,36 @@ class MessageTemplateModel
     public function getList(array $params = [], int $page = 1, int $limit = 10)
     {
         $query = MessageTemplateEntity::where('1=1');
-        
+
         // 模板代码搜索
         if (!empty($params['code'])) {
             $query->where('code', 'like', '%' . $params['code'] . '%');
         }
-        
+
         // 模板名称搜索
         if (!empty($params['name'])) {
             $query->where('name', 'like', '%' . $params['name'] . '%');
         }
-        
+
         // 类型筛选
         if (isset($params['type']) && $params['type'] !== '') {
             $query->where('type', $params['type']);
         }
-        
+
         // 状态筛选
         if (isset($params['status']) && $params['status'] !== '') {
             $query->where('status', $params['status']);
         }
-        
+
         // 获取总数
         $total = $query->count();
-        
+
         // 获取分页数据
         $list = $query->order('id', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+
         return [
             'list' => $list,
             'total' => $total,
@@ -58,7 +59,7 @@ class MessageTemplateModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取单个模板详情
      *
@@ -69,7 +70,7 @@ class MessageTemplateModel
     {
         return MessageTemplateEntity::find($id);
     }
-    
+
     /**
      * 根据模板代码获取模板
      *
@@ -82,7 +83,7 @@ class MessageTemplateModel
             ->where('status', 1)
             ->find();
     }
-    
+
     /**
      * 添加模板
      *
@@ -96,18 +97,18 @@ class MessageTemplateModel
         if ($exists) {
             return false;
         }
-        
+
         $entity = new MessageTemplateEntity();
         $result = $entity->save($data);
-        
+
         // 确保保存成功并返回ID
         if ($result) {
             return $entity->id ?: true; // 如果没有id属性,至少返回true表示成功
         }
-        
+
         return false;
     }
-    
+
     /**
      * 更新模板
      *
@@ -121,7 +122,7 @@ class MessageTemplateModel
         if (!$entity) {
             return false;
         }
-        
+
         // 检查模板代码是否已存在
         if (isset($data['code']) && $data['code'] != $entity->code) {
             $exists = MessageTemplateEntity::where('code', $data['code'])->find();
@@ -129,10 +130,10 @@ class MessageTemplateModel
                 return false;
             }
         }
-        
+
         return $entity->save($data);
     }
-    
+
     /**
      * 删除模板
      *
@@ -145,10 +146,10 @@ class MessageTemplateModel
         if (!$entity) {
             return false;
         }
-        
+
         return $entity->delete();
     }
-    
+
     /**
      * 批量删除模板
      *
@@ -160,10 +161,10 @@ class MessageTemplateModel
         if (empty($ids)) {
             return false;
         }
-        
+
         return MessageTemplateEntity::destroy($ids);
     }
-    
+
     /**
      * 解析模板内容
      *
@@ -177,7 +178,7 @@ class MessageTemplateModel
         if (!$template) {
             return null;
         }
-        
+
         return $template->parse($data);
     }
 }

+ 4 - 2
src/Model/MessageTemplatesModel.php

@@ -1,10 +1,12 @@
 <?php
+
 declare(strict_types=1);
+
 namespace SixShop\Message\Model;
 
 use think\Model;
 
-class MessageTemplatesModel extends  Model
+class MessageTemplatesModel extends Model
 {
     protected function getOptions(): array
     {
@@ -12,4 +14,4 @@ class MessageTemplatesModel extends  Model
             'name' => 'message_templates',
         ];
     }
-}
+}

+ 50 - 49
src/Model/NotificationModel.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Model;
@@ -23,27 +24,27 @@ class NotificationModel
     public function getList(array $params = [], int $page = 1, int $limit = 10)
     {
         $query = NotificationEntity::where('1=1');
-        
+
         // 用户ID筛选
         if (!empty($params['user_id'])) {
             $query->where('user_id', $params['user_id']);
         }
-        
+
         // 标题搜索
         if (!empty($params['title'])) {
             $query->where('title', 'like', '%' . $params['title'] . '%');
         }
-        
+
         // 类型筛选
         if (isset($params['type']) && $params['type'] !== '') {
             $query->where('type', $params['type']);
         }
-        
+
         // 是否已读筛选
         if (isset($params['is_read']) && $params['is_read'] !== '') {
             $query->where('is_read', $params['is_read']);
         }
-        
+
         // 时间范围筛选
         if (!empty($params['start_time'])) {
             $query->where('create_time', '>=', strtotime($params['start_time']));
@@ -51,16 +52,16 @@ class NotificationModel
         if (!empty($params['end_time'])) {
             $query->where('create_time', '<=', strtotime($params['end_time']));
         }
-        
+
         // 获取总数
         $total = $query->count();
-        
+
         // 获取分页数据
         $list = $query->order('id', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+
         return [
             'list' => $list,
             'total' => $total,
@@ -68,7 +69,7 @@ class NotificationModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取用户通知列表
      *
@@ -82,35 +83,35 @@ class NotificationModel
     {
         $query = MessageNotificationsModel::with(['template'])
             ->where(function ($query) use ($userId) {
-            $query->where('user_id', $userId)
-                ->whereOr('user_id', 0); // 包括全局通知
-        });
-        
+                $query->where('user_id', $userId)
+                    ->whereOr('user_id', 0); // 包括全局通知
+            });
+
         // 类型筛选
         if (isset($params['type']) && $params['type'] !== '') {
             $query->where('type', $params['type']);
         }
-        
+
         // 是否已读筛选
         if (isset($params['is_read']) && $params['is_read'] !== '') {
             $query->where('is_read', $params['is_read']);
         }
-        
+
         // 获取总数
         $total = $query->count();
-        
+
         // 获取分页数据
         $list = $query->order('id', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+
         // 获取未读数量
         $unreadCount = MessageNotificationsModel::where(function ($query) use ($userId) {
             $query->where('user_id', $userId)
                 ->whereOr('user_id', 0);
         })->where('is_read', 0)->count();
-        
+
         return [
             'list' => $list,
             'total' => $total,
@@ -119,7 +120,7 @@ class NotificationModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取单个通知详情
      *
@@ -130,7 +131,7 @@ class NotificationModel
     {
         return NotificationEntity::find($id);
     }
-    
+
     /**
      * 添加通知
      *
@@ -141,10 +142,10 @@ class NotificationModel
     {
         $entity = new NotificationEntity();
         $entity->save($data);
-        
+
         return $entity->id;
     }
-    
+
     /**
      * 发送通知给用户
      *
@@ -164,7 +165,7 @@ class NotificationModel
                 return false;
             }
         }
-        
+
         $data = [
             'user_id' => $userId,
             'title' => $title,
@@ -175,10 +176,10 @@ class NotificationModel
             'create_time' => time(),
             'update_time' => time(),
         ];
-        
+
         return $this->add($data);
     }
-    
+
     /**
      * 批量发送通知给多个用户
      *
@@ -193,10 +194,10 @@ class NotificationModel
         if (empty($userIds)) {
             return false;
         }
-        
+
         $time = time();
         $data = [];
-        
+
         foreach ($userIds as $userId) {
             // 检查用户的消息设置
             $setting = MessageSettingEntity::where('user_id', $userId)->find();
@@ -204,7 +205,7 @@ class NotificationModel
                 // 用户已关闭此类型的通知
                 continue;
             }
-            
+
             $data[] = [
                 'user_id' => $userId,
                 'title' => $title,
@@ -216,14 +217,14 @@ class NotificationModel
                 'update_time' => $time,
             ];
         }
-        
+
         if (empty($data)) {
             return false;
         }
-        
+
         return Db::name('message_notifications')->insertAll($data);
     }
-    
+
     /**
      * 发送全局通知
      *
@@ -236,7 +237,7 @@ class NotificationModel
     {
         return $this->sendToUser(0, $title, $content, $type);
     }
-    
+
     /**
      * 标记通知为已读
      *
@@ -250,15 +251,15 @@ class NotificationModel
         if (!$entity) {
             return false;
         }
-        
+
         // 验证权限
         if ($userId > 0 && $entity->user_id > 0 && $entity->user_id != $userId) {
             return false;
         }
-        
+
         return $entity->markAsRead()->save();
     }
-    
+
     /**
      * 批量标记通知为已读
      *
@@ -271,9 +272,9 @@ class NotificationModel
         if (empty($ids)) {
             return false;
         }
-        
+
         $query = NotificationEntity::where('id', 'in', $ids);
-        
+
         // 验证权限
         if ($userId > 0) {
             $query->where(function ($query) use ($userId) {
@@ -281,13 +282,13 @@ class NotificationModel
                     ->whereOr('user_id', 0);
             });
         }
-        
+
         return $query->update([
             'is_read' => 1,
             'read_time' => time(),
         ]);
     }
-    
+
     /**
      * 标记用户所有通知为已读
      *
@@ -299,7 +300,7 @@ class NotificationModel
         if ($userId <= 0) {
             return false;
         }
-        
+
         return NotificationEntity::where(function ($query) use ($userId) {
             $query->where('user_id', $userId)
                 ->whereOr('user_id', 0);
@@ -308,7 +309,7 @@ class NotificationModel
             'read_time' => time(),
         ]);
     }
-    
+
     /**
      * 删除通知
      *
@@ -322,15 +323,15 @@ class NotificationModel
         if (!$entity) {
             return false;
         }
-        
+
         // 验证权限
         if ($userId > 0 && $entity->user_id > 0 && $entity->user_id != $userId) {
             return false;
         }
-        
+
         return $entity->delete();
     }
-    
+
     /**
      * 批量删除通知
      *
@@ -343,9 +344,9 @@ class NotificationModel
         if (empty($ids)) {
             return false;
         }
-        
+
         $query = NotificationEntity::where('id', 'in', $ids);
-        
+
         // 验证权限
         if ($userId > 0) {
             $query->where(function ($query) use ($userId) {
@@ -353,10 +354,10 @@ class NotificationModel
                     ->whereOr('user_id', 0);
             });
         }
-        
+
         return $query->delete();
     }
-    
+
     /**
      * 获取用户未读通知数量
      *
@@ -368,7 +369,7 @@ class NotificationModel
         if ($userId <= 0) {
             return 0;
         }
-        
+
         return NotificationEntity::where(function ($query) use ($userId) {
             $query->where('user_id', $userId)
                 ->whereOr('user_id', 0);

+ 51 - 50
src/Model/PrivateMessageModel.php

@@ -1,4 +1,5 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Model;
@@ -23,27 +24,27 @@ class PrivateMessageModel
     public function getList(array $params = [], int $page = 1, int $limit = 10)
     {
         $query = PrivateMessageEntity::where('1=1');
-        
+
         // 发送者ID筛选
         if (!empty($params['from_user_id'])) {
             $query->where('from_user_id', $params['from_user_id']);
         }
-        
+
         // 接收者ID筛选
         if (!empty($params['to_user_id'])) {
             $query->where('to_user_id', $params['to_user_id']);
         }
-        
+
         // 是否已读筛选
         if (isset($params['is_read']) && $params['is_read'] !== '') {
             $query->where('is_read', $params['is_read']);
         }
-        
+
         // 内容搜索
         if (!empty($params['content'])) {
             $query->where('content', 'like', '%' . $params['content'] . '%');
         }
-        
+
         // 时间范围筛选
         if (!empty($params['start_time'])) {
             $query->where('create_time', '>=', strtotime($params['start_time']));
@@ -51,16 +52,16 @@ class PrivateMessageModel
         if (!empty($params['end_time'])) {
             $query->where('create_time', '<=', strtotime($params['end_time']));
         }
-        
+
         // 获取总数
         $total = $query->count();
-        
+
         // 获取分页数据
         $list = $query->order('id', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+
         return [
             'list' => $list,
             'total' => $total,
@@ -68,7 +69,7 @@ class PrivateMessageModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取用户私信列表
      *
@@ -84,7 +85,7 @@ class PrivateMessageModel
             $query->where('to_user_id', $userId)
                 ->whereOr('from_user_id', $userId);
         });
-        
+
         // 对话用户ID筛选
         if (!empty($params['partner_id'])) {
             $partnerId = $params['partner_id'];
@@ -98,26 +99,26 @@ class PrivateMessageModel
                 });
             });
         }
-        
+
         // 是否已读筛选
         if (isset($params['is_read']) && $params['is_read'] !== '') {
             $query->where('is_read', $params['is_read']);
         }
-        
+
         // 获取总数
         $total = $query->count();
-        
+
         // 获取分页数据
         $list = $query->order('id', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+
         // 获取未读数量
         $unreadCount = PrivateMessageEntity::where('to_user_id', $userId)
             ->where('is_read', 0)
             ->count();
-        
+
         return [
             'list' => $list,
             'total' => $total,
@@ -126,7 +127,7 @@ class PrivateMessageModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取用户的对话列表
      *
@@ -150,36 +151,36 @@ class PrivateMessageModel
             GROUP BY partner_id
             ORDER BY last_message_id DESC
             LIMIT " . (($page - 1) * $limit) . ", {$limit}";
-        
+
         $conversations = Db::query($rawSql);
-        
+
         // 获取总数
         $totalSql = "SELECT COUNT(DISTINCT CASE WHEN from_user_id = {$userId} THEN to_user_id ELSE from_user_id END) AS total
             FROM cy_message_privates
             WHERE (from_user_id = {$userId} OR to_user_id = {$userId})
             AND delete_time IS NULL";
-        
+
         $totalResult = Db::query($totalSql);
         $total = $totalResult[0]['total'] ?? 0;
-        
+
         // 获取每个对话的最后一条消息
         $result = [];
         foreach ($conversations as $conversation) {
             $partnerId = $conversation['partner_id'];
             $lastMessageId = $conversation['last_message_id'];
-            
+
             // 获取最后一条消息
             $lastMessage = PrivateMessageEntity::find($lastMessageId);
             if (!$lastMessage) {
                 continue;
             }
-            
+
             // 获取未读消息数量
             $unreadCount = PrivateMessageEntity::where('from_user_id', $partnerId)
                 ->where('to_user_id', $userId)
                 ->where('is_read', 0)
                 ->count();
-            
+
             // 获取对话用户信息
             $partnerInfo = null;
             if ($partnerId > 0) {
@@ -194,7 +195,7 @@ class PrivateMessageModel
                     'avatar' => '/static/images/system-avatar.png',
                 ];
             }
-            
+
             $result[] = [
                 'partner_id' => $partnerId,
                 'partner_info' => $partnerInfo,
@@ -202,7 +203,7 @@ class PrivateMessageModel
                 'unread_count' => $unreadCount,
             ];
         }
-        
+
         return [
             'list' => $result,
             'total' => $total,
@@ -210,7 +211,7 @@ class PrivateMessageModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取两个用户之间的对话消息
      *
@@ -231,16 +232,16 @@ class PrivateMessageModel
                     ->where('to_user_id', $userId);
             });
         });
-        
+
         // 获取总数
         $total = $query->count();
-        
+
         // 获取分页数据
         $list = $query->order('id', 'desc')
             ->page($page, $limit)
             ->select()
             ->toArray();
-        
+
         // 自动标记接收的消息为已读
         PrivateMessageEntity::where('from_user_id', $partnerId)
             ->where('to_user_id', $userId)
@@ -249,7 +250,7 @@ class PrivateMessageModel
                 'is_read' => 1,
                 'read_time' => time(),
             ]);
-        
+
         return [
             'list' => $list,
             'total' => $total,
@@ -257,7 +258,7 @@ class PrivateMessageModel
             'limit' => $limit,
         ];
     }
-    
+
     /**
      * 获取单个私信详情
      *
@@ -268,7 +269,7 @@ class PrivateMessageModel
     {
         return PrivateMessageEntity::find($id);
     }
-    
+
     /**
      * 发送私信
      *
@@ -282,14 +283,14 @@ class PrivateMessageModel
         if ($toUserId <= 0) {
             return false;
         }
-        
+
         // 检查接收者的消息设置
         $setting = MessageSettingEntity::where('user_id', $toUserId)->find();
         if ($setting && !$setting->isNotifyEnabled(5)) {
             // 用户已关闭私信
             return false;
         }
-        
+
         $entity = new PrivateMessageEntity();
         $entity->from_user_id = $fromUserId;
         $entity->to_user_id = $toUserId;
@@ -297,10 +298,10 @@ class PrivateMessageModel
         $entity->is_read = 0;
         $entity->read_time = 0;
         $entity->save();
-        
+
         return $entity->id;
     }
-    
+
     /**
      * 发送系统私信
      *
@@ -312,7 +313,7 @@ class PrivateMessageModel
     {
         return $this->send(0, $toUserId, $content);
     }
-    
+
     /**
      * 标记私信为已读
      *
@@ -326,10 +327,10 @@ class PrivateMessageModel
         if (!$entity || $entity->to_user_id != $userId) {
             return false;
         }
-        
+
         return $entity->markAsRead()->save();
     }
-    
+
     /**
      * 批量标记私信为已读
      *
@@ -342,7 +343,7 @@ class PrivateMessageModel
         if (empty($ids) || $userId <= 0) {
             return false;
         }
-        
+
         return PrivateMessageEntity::where('id', 'in', $ids)
             ->where('to_user_id', $userId)
             ->where('is_read', 0)
@@ -351,7 +352,7 @@ class PrivateMessageModel
                 'read_time' => time(),
             ]);
     }
-    
+
     /**
      * 标记与指定用户的所有私信为已读
      *
@@ -364,7 +365,7 @@ class PrivateMessageModel
         if ($userId <= 0) {
             return false;
         }
-        
+
         return PrivateMessageEntity::where('from_user_id', $partnerId)
             ->where('to_user_id', $userId)
             ->where('is_read', 0)
@@ -373,7 +374,7 @@ class PrivateMessageModel
                 'read_time' => time(),
             ]);
     }
-    
+
     /**
      * 删除私信
      *
@@ -387,10 +388,10 @@ class PrivateMessageModel
         if (!$entity || ($entity->from_user_id != $userId && $entity->to_user_id != $userId)) {
             return false;
         }
-        
+
         return $entity->delete();
     }
-    
+
     /**
      * 批量删除私信
      *
@@ -403,7 +404,7 @@ class PrivateMessageModel
         if (empty($ids) || $userId <= 0) {
             return false;
         }
-        
+
         return PrivateMessageEntity::where('id', 'in', $ids)
             ->where(function ($query) use ($userId) {
                 $query->where('from_user_id', $userId)
@@ -411,7 +412,7 @@ class PrivateMessageModel
             })
             ->delete();
     }
-    
+
     /**
      * 删除与指定用户的所有对话
      *
@@ -424,7 +425,7 @@ class PrivateMessageModel
         if ($userId <= 0 || $partnerId < 0) {
             return false;
         }
-        
+
         return PrivateMessageEntity::where(function ($query) use ($userId, $partnerId) {
             $query->where(function ($query) use ($userId, $partnerId) {
                 $query->where('from_user_id', $userId)
@@ -435,7 +436,7 @@ class PrivateMessageModel
             });
         })->delete();
     }
-    
+
     /**
      * 获取用户未读私信数量
      *
@@ -447,7 +448,7 @@ class PrivateMessageModel
         if ($userId <= 0) {
             return 0;
         }
-        
+
         return PrivateMessageEntity::where('to_user_id', $userId)
             ->where('is_read', 0)
             ->count();

+ 3 - 3
test/Hook/SendNotificationsHookTest.php

@@ -1,9 +1,9 @@
 <?php
+
 declare(strict_types=1);
 
 namespace SixShop\Message\Hook;
 
-
 use PHPUnit\Framework\TestCase;
 use think\Event;
 
@@ -28,8 +28,8 @@ class SendNotificationsHookTest extends TestCase
                 'content' => 'test',
                 'type' => 5,
                 'template_code' => 'fasfsad',
-                'template_context' => ['abd'=>123],
+                'template_context' => ['abd' => 123],
             ]
         ]);
     }
-}
+}