소스 검색

修改用户登录,是否自动排队连接客服

lip 1 개월 전
부모
커밋
f3cb81bb5a
2개의 변경된 파일62개의 추가작업 그리고 37개의 파일을 삭제
  1. 31 1
      app/common/controller/User.php
  2. 31 36
      app/common/listener/UserRegister.php

+ 31 - 1
app/common/controller/User.php

@@ -112,6 +112,13 @@ class User
                 'avatar' => !empty($params['avatar']) ? $params['avatar'] : '',
                 'language_code' => $this->lang,
             ];
+
+            //是否自动排队,连接客服
+            $auto_chat_kefu = Config::getFieldValue('auto_chat_kefu');
+            if ($auto_chat_kefu == 1 && (empty($userInfo['service_status']) || $userInfo['service_status'] == -1)) {
+                $update['service_status'] = 0;//登录后如果没有服务中,则直接进入排队状态
+            }
+            
             if ($userInfo['cs_uid'] == 1) {
                 $update['cs_uid'] = $cs_uid;
             }
@@ -148,7 +155,30 @@ class User
             'authToken'=>$authToken,
             'userInfo'=>$userInfo
         ];
-           
+
+        // 如果设置了欢迎语则发送欢迎语
+        // $first_auto_reply = Config::getFieldValue('first_auto_reply', $this->lang);
+        // if(!empty($first_auto_reply)){
+        //     if($userInfo){
+        //         $userInfo['dispalayName']=$userInfo['realname'];
+        //         $userInfo['id']=$userInfo['user_id'];
+        //         $userInfo['avatar']=avatarUrl($userInfo['avatar'],$userInfo['realname'],$userInfo['user_id']);
+        //         $msg=[
+        //             'id'=>\utils\Str::getUuid(),
+        //             'user_id'=>$cs_uid,
+        //             'content'=>$first_auto_reply,
+        //             'toContactId'=>$userInfo['user_id'],
+        //             'sendTime'=>time()*1000,
+        //             'type'=>'html',
+        //             'is_group'=>0,
+        //             'status'=>'succeed',
+        //             'fromUser'=>$userInfo,
+        //             'at'=>[]
+        //         ];
+        //         Message::sendMsg($msg,0,1);
+        //     }
+        // }
+        
         return success(lang('user.loginOk'),$data);
    }
 

+ 31 - 36
app/common/listener/UserRegister.php

@@ -17,48 +17,43 @@ class UserRegister
                 return true;
             }
             // 获取聊天设置
-            $chatInfo=Config::getFieldValue('chatInfo');
-            $autoAdduser=$chatInfo['autoAddUser'] ?? [];
+            // $chatInfo=Config::getFieldValue('chatInfo');
             $autoTask=Config::autoTask();
             $cs_uid = getAutoCsUid();
-            // 是否开启自动客服
-            if($autoAdduser && $autoAdduser['status']==1){
-                // 获取机器人客服ID
-                if($cs_uid){
-                    $user->update(['cs_uid'=>$cs_uid],['user_id'=>$data['user_id']]);
-                    // 设置双方为好友
-                    Friend::create(['create_user'=>$data['user_id'],'friend_user_id'=>$cs_uid,'status'=>1]);
-                    Friend::create(['create_user'=>$cs_uid,'friend_user_id'=>$data['user_id'],'status'=>1]);
+            // 获取机器人客服ID
+            if($cs_uid){
+                $user->update(['cs_uid'=>$cs_uid],['user_id'=>$data['user_id']]);
+                // 设置双方为好友
+                Friend::create(['create_user'=>$data['user_id'],'friend_user_id'=>$cs_uid,'status'=>1]);
+                Friend::create(['create_user'=>$cs_uid,'friend_user_id'=>$data['user_id'],'status'=>1]);
 
-                    KefuLog::addData($cs_uid, $data['user_id'], 3);
-                    // 如果设置了欢迎语则发送欢迎语
-                    if($autoAdduser['welcome'] ?? ''){
-                        $userInfo=$user->field('user_id,realname,avatar')->where(['user_id'=>$cs_uid])->find();
-                        if($userInfo){
-                            $userInfo['dispalayName']=$userInfo['realname'];
-                            $userInfo['id']=$userInfo['user_id'];
-                            $userInfo['avatar']=avatarUrl($userInfo['avatar'],$userInfo['realname'],$userInfo['user_id']);
-                            $first_auto_reply = Config::getFieldValue('first_auto_reply', $data['language_code']);
-                            $msg=[
-                                'id'=>\utils\Str::getUuid(),
-                                'user_id'=>$cs_uid,
-                                'content'=>$first_auto_reply,
-                                'toContactId'=>$data['user_id'],
-                                'sendTime'=>time()*1000,
-                                'type'=>'html',
-                                'is_group'=>0,
-                                'status'=>'succeed',
-                                'fromUser'=>$userInfo,
-                                'at'=>[]
-                            ];
-                            if (!empty($msg['content'])) {
-                                Message::sendMsg($msg,0,1);
-                            }
-                        }
+                KefuLog::addData($cs_uid, $data['user_id'], 3);
+                $userInfo=$user->field('user_id,realname,avatar')->where(['user_id'=>$cs_uid])->find();
+                if($userInfo){
+                    $userInfo['dispalayName']=$userInfo['realname'];
+                    $userInfo['id']=$userInfo['user_id'];
+                    $userInfo['avatar']=avatarUrl($userInfo['avatar'],$userInfo['realname'],$userInfo['user_id']);
+                    $first_auto_reply = Config::getFieldValue('first_auto_reply', $data['language_code']);
+                    
+                    if (!empty($first_auto_reply)) {
+                        $msg=[
+                            'id'=>\utils\Str::getUuid(),
+                            'user_id'=>$cs_uid,
+                            'content'=>$first_auto_reply,
+                            'toContactId'=>$data['user_id'],
+                            'sendTime'=>time()*1000,
+                            'type'=>'html',
+                            'is_group'=>0,
+                            'status'=>'succeed',
+                            'fromUser'=>$userInfo,
+                            'at'=>[]
+                        ];
+                        Message::sendMsg($msg,0,1);
                     }
                 }
             }
-            $autoAddGroup=$chatInfo['autoAddGroup'] ?? [];
+            
+            $autoAddGroup=[];
             // 是否自动加入群聊
             if($autoAddGroup && $autoAddGroup['status']==1){
                 $group_id=$autoTask['group_id']??0;