rkljw hai 10 horas
pai
achega
fec1391db8

+ 19 - 3
app/Amqp/Consumer/MqConsumer.php

@@ -12,7 +12,7 @@ use Hyperf\Di\Annotation\Inject;
 use PhpAmqpLib\Message\AMQPMessage;
 use Psr\Log\LoggerInterface;
 use Hyperf\Redis\RedisFactory;
-
+use App\Controller\MessageController;
 #[Consumer(exchange: 'chatprod', routingKey: 'chatprod', queue: 'chatprod', name: "chatprod", nums: 1)]
 class MqConsumer extends ConsumerMessage
 {
@@ -21,6 +21,11 @@ class MqConsumer extends ConsumerMessage
      */
     #[Inject]
     private $chatServiceClient;
+    /**
+     * @var MessageController
+     */
+    #[Inject]
+    protected MessageController $messageController;
 
     protected $logger;
     #[Inject]
@@ -52,8 +57,19 @@ class MqConsumer extends ConsumerMessage
             // 数据存储
             $this->logger->info('消费数据', ['data' => $data]);
             var_dump($data, '=================消费数据==============');
-            // 调用数据处理服务
-            $result = $this->chatServiceClient->addChatRecords($data);
+            switch ($data['talk_type']) {
+                case 100:
+                    //审核资讯-通知所有的管理员
+                    $this->messageController->sendAdminMessage($data);
+                    return Result::ACK;
+                    break;
+                default:
+                    // 调用数据处理服务
+                    $result = $this->chatServiceClient->addChatRecords($data);
+                    return Result::ACK;
+                    break;
+            }
+        
             // 记录处理结果
             $this->logger->info("消费成功:", ['result' => $result]);
             return Result::ACK;

+ 50 - 0
app/Controller/MessageController.php

@@ -0,0 +1,50 @@
+<?php
+
+declare(strict_types=1);
+namespace App\Controller;
+
+/**
+ * MessageController
+ * @package App\Controller
+ */
+use App\JsonRpc\UserServiceInterface;
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\Context\ApplicationContext;
+use Swoole\WebSocket\Server as WebSocketServer;
+use App\Service\RedisService;
+use Hyperf\Server\ServerManager;
+use function Hyperf\Support\call;
+use swoole\Server;
+class MessageController extends AbstractController
+{
+
+    /**
+     * @var UserServiceInterface
+     */
+    #[Inject]
+    private $userServiceClient;
+    public function sendAdminMessage($data)
+    {
+        try {
+            // 获取管理员列表
+            $adminList = $this->userServiceClient->getTypeUserList(['type_id' => 10000]);
+            // 获取 Swoole WebSocket Server 实例
+            $server = \Hyperf\Context\ApplicationContext::getContainer()->get(\Swoole\Server::class);
+            $redisClient = new RedisService();
+    
+            if ($adminList && isset($adminList['data'])) {
+                foreach ($adminList['data'] as $admin) {
+                    $fd = $redisClient->findFd((int)$admin['id']);
+                    if ($fd && $server->isEstablished((int)$fd)) {
+                        $server->push((int)$fd, json_encode($data));
+                    }
+                }
+            }
+            return true;
+        } catch (\Throwable $e) {
+            var_dump('发送消息错误: ' . $e->getMessage());
+            return false;
+        }
+    }
+
+}

+ 3 - 3
app/Controller/NewsController.php

@@ -104,7 +104,7 @@ class NewsController extends AbstractController
         //获取用户信息
         $user_id = Context::get("UserId");
         $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
-        var_dump("用户信息:", $userInfo);
+        // var_dump("用户信息:", $userInfo);
         $sszq = $userInfo['data']['sszq'];
         $type_id = $userInfo['data']['type_id']; //'1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员 20000:游客(小程序)'
         //管理员看所有
@@ -253,7 +253,7 @@ class NewsController extends AbstractController
         //获取用户信息
         $user_id = Context::get("UserId");
         $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
-        var_dump("用户信息:", $userInfo);
+        // var_dump("用户信息:", $userInfo);
         $sszq = $userInfo['data']['sszq'];
         //获取websiteid
         // $groupInfo = $this->WebsiteServiceClient->getWebsiteGroupInfo(['id' => $sszq]);
@@ -569,7 +569,7 @@ class NewsController extends AbstractController
         );
         $user_id = Context::get("UserId");
         $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
-        var_dump("用户信息:", $userInfo);
+        // var_dump("用户信息:", $userInfo);
         $type_id = $userInfo['data']['type_id']; //'1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员 20000:游客(小程序)'
         $requireData['user_type_id'] = $type_id; //重名了
         $requireData['user_id'] = $user_id;

+ 1 - 1
app/Controller/WebSocketController.php

@@ -56,7 +56,7 @@ class WebSocketController implements OnMessageInterface, OnOpenInterface, OnClos
 
         var_dump($result, '-------------1----');
         $userInfo = $redisClient->getUserInfo((string) $userId);
-        var_dump($userInfo, '-------------22----');
+        // var_dump($userInfo, '-------------22----');
         if ($userInfo) {
             $userInfoArr = json_decode($userInfo);
             $result['user_avatar'] = $userInfoArr['avatar'];

+ 2 - 2
app/Controller/WebsiteController.php

@@ -1686,7 +1686,7 @@ class WebsiteController extends AbstractController
         $user_id = Context::get("UserId");
         var_dump("用户id:", $user_id);
         $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
-        var_dump("用户信息:", $userInfo);
+        // var_dump("用户信息:", $userInfo);
         $sszq = $userInfo['data']['sszq'];
         $type_id = $userInfo['data']['type_id'];
         //  if($type_id != 10000){
@@ -1733,7 +1733,7 @@ class WebsiteController extends AbstractController
         $user_id = Context::get("UserId");
         var_dump("用户id:", $user_id);
         $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
-        var_dump("用户信息:", $userInfo);
+        // var_dump("用户信息:", $userInfo);
         $sszq = $userInfo['data']['sszq'];
         $type_id = $userInfo['data']['type_id'];
         $sszqarr = '';

+ 7 - 0
app/JsonRpc/UserService.php

@@ -181,4 +181,11 @@ class UserService extends AbstractServiceClient implements UserServiceInterface
     public function getWebsiteGroupInfo(array $data){
         return $this->__request(__FUNCTION__, $data);
     }
+    /**
+     * @param array $data
+     * @return array|mixed
+     */
+    public function getTypeUserList(array $data){
+        return $this->__request(__FUNCTION__, $data);
+    }
 }

+ 4 - 0
app/JsonRpc/UserServiceInterface.php

@@ -119,5 +119,9 @@ interface UserServiceInterface
      * @return mixed
      */
     public function getWebsiteGroupInfo(array $data);
+    /**
+     * @param array $data
+     */
+    public function getTypeUserList(array $data);
 
 }