lip 2 месяцев назад
Родитель
Сommit
30e02574b5

+ 27 - 0
app/common/controller/User.php

@@ -7,6 +7,7 @@ use app\enterprise\model\User as UserModel;
 use app\enterprise\model\Group;
 use app\admin\model\UserView;
 use app\manage\model\Config;
+use app\enterprise\model\Message;
 use think\facade\Session;
 use think\facade\Db;
 use GatewayClient\Gateway;
@@ -112,6 +113,10 @@ class User
                 'avatar' => !empty($params['avatar']) ? $params['avatar'] : '',
                 'language_code' => $this->lang,
             ];
+            if (empty($userInfo['service_status']) || $userInfo['service_status'] == -1) {
+                $update['service_status'] = 0;//登录后如果没有服务中,则直接进入排队状态
+            }
+            
             if ($userInfo['cs_uid'] == 1) {
                 $update['cs_uid'] = $cs_uid;
             }
@@ -149,6 +154,28 @@ class User
             '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);
    }
 

+ 1 - 25
app/common/listener/UserRegister.php

@@ -31,31 +31,7 @@ class UserRegister
                     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);
-                            }
-                        }
-                    }
+                    
                 }
             }
             $autoAddGroup=$chatInfo['autoAddGroup'] ?? [];

+ 12 - 0
app/enterprise/controller/Im.php

@@ -323,6 +323,11 @@ class Im extends BaseController
     public function sendMessage()
     {
         $param = $this->request->param();
+        $content = strip_tags($param['content']);
+        
+        if (empty($content) || $content == '') {
+            return warning("请输入内容");
+        }
         $param['user_id'] = $this->userInfo['user_id'];
         $param['language_code'] = $this->lang;
         if ($this->userInfo['role'] != 0 && $param['type'] == 'text') {
@@ -335,6 +340,13 @@ class Im extends BaseController
                 $param['language_code'] = $toUser['language_code'];
             }
         }
+        // if ($this->userInfo['role'] == 0) {
+        //     //用户发送消息时,如果是机器人对话的状态,则变更为排队中
+        //     $service_status = User::where('user_id', $this->userInfo['user_id'])->value('service_status');
+        //     if ($service_status == -1) {
+        //         User::where('user_id', $this->userInfo['user_id'])->update(['service_status' => 0]);
+        //     }
+        // }
         $param['language_code'] = $this->lang;
         $message=new Message();
         $data = $message->sendMessage($param,$this->globalConfig);

+ 5 - 4
app/enterprise/model/Message.php

@@ -141,10 +141,11 @@ class Message extends BaseModel
                 }
 
                 //判断是否给机器人客服发送消息
-                $autoCsUid = getAutoCsUid();
-                if ($autoCsUid && $param['toContactId'] == $autoCsUid) { 
-                    $is_robot = true;
-                }
+                // $autoCsUid = getAutoCsUid();
+                // if ($autoCsUid && $param['toContactId'] == $autoCsUid) { 
+                //     $is_robot = true;
+                // }
+                $is_robot = false;
             }else{
                 // 群聊必须群成员才能发送消息
                 $group_id = explode('-', $param['toContactId'])[1] ?? '';