Kaynağa Gözat

系统消息通知01

rkljw 1 gün önce
ebeveyn
işleme
2ed9e427e2

+ 83 - 0
app/Amqp/Consumer/MqConsumer.php

@@ -63,6 +63,89 @@ class MqConsumer extends ConsumerMessage
                     $this->messageController->sendAdminMessage($data);
                     return Result::ACK;
                     break;
+                case 101:
+                    //审核资讯-通知所有的管理员
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 200:
+                    //审核商品-通知所有的管理员
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 201:
+                    //审核商品-通知发布者
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 300:
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 301:
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 400:
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 401:
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 500:
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 501:
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 600:
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 601:
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 700:
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 701:
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 800:
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 801:
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 802:
+                        $this->messageController->sendOtherUserMessage($data);
+                        return Result::ACK;
+                        break;
+                case 900:
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 901:
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
+                case 1000:
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                case 1001:
+                    $this->messageController->sendUserMessage($data);
+                    return Result::ACK;
+                    break;
                 default:
                     // 调用数据处理服务
                     $result = $this->chatServiceClient->addChatRecords($data);

+ 36 - 0
app/Controller/MessageController.php

@@ -46,5 +46,41 @@ class MessageController extends AbstractController
             return false;
         }
     }
+    public function sendUserMessage($data){
+        try { 
+            // 获取 Swoole WebSocket Server 实例
+            $server = \Hyperf\Context\ApplicationContext::getContainer()->get(\Swoole\Server::class);
+            $redisClient = new RedisService();
+            $fd = $redisClient->findFd((int)$data['user_id']);
+            if ($fd && $server->isEstablished((int)$fd)) {
+                $server->push((int)$fd, json_encode($data));
+            }
+        } catch (\Throwable $e) {
+            var_dump('发送消息错误: ' . $e->getMessage());
+            return false;
+        }
+    }
+    public function sendOtherUserMessage($data){
+        try {
+            // 获取 Swoole WebSocket Server 实例
+            $server = \Hyperf\Context\ApplicationContext::getContainer()->get(\Swoole\Server::class);
+            $redisClient = new RedisService();
+            $data['user_id'] = json_decode($data['user_id'],true);
+            // var_dump($data['user_id'],"====================%%%%%%%%%%%====");
+            
+            if(is_array($data['user_id'])){
+                foreach($data['user_id'] as $user_id){
+                    $fd = $redisClient->findFd((int)$user_id);
+                    if ($fd && $server->isEstablished((int)$fd)) {
+                        $server->push((int)$fd, json_encode($data));
+                    }
+                }
+            }
+           
+        } catch (\Throwable $e) {
+            var_dump('发送消息错误: ' . $e->getMessage());
+            return false;
+        }
+    }
 
 }

+ 3 - 3
app/Controller/WebSocketController.php

@@ -54,7 +54,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
 
         // $show_id = $result['show_id'];
 
-        var_dump($result, '-------------1----');
+        // var_dump($result, '-------------1----');
         $userInfo = $redisClient->getUserInfo((string) $userId);
         // var_dump($userInfo, '-------------22----');
         if ($userInfo) {
@@ -63,7 +63,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
             $result['user_name'] = $userInfoArr['user_name'];
         } else {
             $userInfos = $this->userServiceClient->getUserInfo((int) $userId);
-            var_dump($userInfos, '-------------33----');
+            // var_dump($userInfos, '-------------33----');
             $redisClient->setUserInfo($userId, $userInfos['data']);
             $result['user_avatar'] = $userInfos['data']['avatar'];
             $result['user_name'] = $userInfos['data']['user_name'];
@@ -174,7 +174,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
         } else if (isset($result['talk_type']) && $result['talk_type'] == 2) {
             //根据群找到 群用户,群发一遍消息
             $groupUserList = $this->chatServiceClient->getGroupMembers(['group_id' => $result['receiver_id']]);
-            var_dump($groupUserList['data'], '-----------------############-----------------');
+            // var_dump($groupUserList['data'], '-----------------############-----------------');
             if ($groupUserList['data']) {
                 $chatdata = $result;
                 foreach ($groupUserList['data'] as $val) {