瀏覽代碼

通知问题

shish 10 月之前
父節點
當前提交
dcb36b2be8
共有 2 個文件被更改,包括 62 次插入3 次删除
  1. 21 3
      app-mall/controllers/ChatController.php
  2. 41 0
      biz/wx/classes/WxMessageClass.php

+ 21 - 3
app-mall/controllers/ChatController.php

@@ -2,7 +2,10 @@
 
 namespace mall\controllers;
 
+use biz\wx\classes\WxMessageClass;
+use bizMall\custom\classes\CustomClass;
 use bizMall\goods\services\GoodsService;
+use bizMall\merchant\classes\ShopClass;
 use bizMall\merchant\services\MerchantService;
 use bizMall\message\services\ChatService;
 use common\components\business;
@@ -134,7 +137,7 @@ class ChatController extends BaseController
     public function actionUnReadMsgCount()
     {
         $c = ChatService::getUnReadMsgCount(intval($this->userId), 'message');
-        util::success(['msg_count'=>$c]);
+        util::success(['msg_count' => $c]);
     }
 
     //用 redis key 获取商品报价
@@ -149,9 +152,9 @@ class ChatController extends BaseController
 
         $val = Yii::$app->redis->executeCommand('GET', [$key]);
         if (empty($val)) {
-            util::success(['price'=>-1]);
+            util::success(['price' => -1]);
         }
-        util::success(['price'=>$val]);
+        util::success(['price' => $val]);
     }
 
     // message_server 远程调用专用方法,可用于:1.有未读消息的通知(可以额外添加触发条件)2.
@@ -171,6 +174,21 @@ class ChatController extends BaseController
             }
         }
 
+        $shopId = $callbackData['shopId'] ?? 0;
+        $userId = $callbackData['userId'] ?? '';
+        $key = 'has_remind_' . $shopId . '_' . $userId;
+        if (!empty($shopId) && !empty($userId)) {
+            //5秒不重复通知
+            $hasRemind = Yii::$app->redis->executeCommand('GET', [$key]);
+            if (empty($hasRemind)) {
+                $shop = ShopClass::getById($shopId, true);
+                if (!empty($shop)) {
+                    WxMessageClass::newMessageInform($shop, "商城上客户有留言");
+                    Yii::$app->redis->executeCommand('SETEX', [$key, 5, 'has']);
+                }
+            }
+        }
+
         Yii::info(json_encode($callbackData));
         return $this->asJson(['return_code' => 0, 'return_msg' => 'OK']); // 成功状态的返回数据
     }

+ 41 - 0
biz/wx/classes/WxMessageClass.php

@@ -130,6 +130,47 @@ class WxMessageClass extends BaseClass
         }
     }
 
+    //客户发留言通知花店 ssh 20250906
+    public static function newMessageInform($shop, $result)
+    {
+        $ptStyle = $shop->ptStyle ?? 0;
+        $wxBase = WxOpenClass::getWxBase();
+        $wx = $wxBase[$ptStyle] ?? [];
+        $message = self::getAllByCondition(['ptStyle' => $ptStyle], null, '*', 'shortTemplateId');
+        $shortTempId = 'OPENTM408238177';
+        $tempId = $message[$shortTempId]['templateId'] ?? '';
+        if (empty($tempId)) {
+            return false;
+        }
+        $adminList = ShopAdminClass::getRemainAdmin($shop);
+        if (empty($adminList)) {
+            return false;
+        }
+        foreach ($adminList as $admin) {
+            $openId = $admin['openId'] ?? '';
+            if ($ptStyle == dict::getDict('ptStyle', 'ghs')) {
+                $openId = $admin['ghsOpenId'] ?? '';
+            }
+            if (empty($openId)) {
+                continue;
+            }
+            $data = [
+                "touser" => $openId,
+                "template_id" => $tempId,
+                "url" => Yii::$app->params['ghsDomain'],
+                "data" => [
+                    "first" => ["value" => $result, "color" => "#173177"],
+                    "keyword1" => ["value" => $result, "color" => "#173177"],
+                    "keyword2" => ["value" => '请及时回复', "color" => "#173177"],
+                    "remark" => ["value" => '点击查看详情', "color" => "#173177"]
+                ]
+            ];
+            $data['miniprogram']['appid'] = $wx['miniAppId'];
+            $data['miniprogram']['pagepath'] = 'admin/chat/list';
+            wxUtil::sendTaskInform($data, $wx, $ptStyle);
+        }
+    }
+
     //初始化消息模板
     // ./yii.bat wx-message/init
     public static function init()