lip hace 3 meses
padre
commit
f67bed22ce

+ 1 - 1
app/admin/command/UserQueue.php

@@ -91,7 +91,7 @@ class UserQueue extends Command
             wsSendMsg(0,'handleChat',['user_id'=>$user_id]);
 
             //自动回复-人工客服接线成功
-            Message::sendAutoReply('transfer_to_human_success', $user_id, $cs_uid);
+            Message::sendAutoReply('transfer_to_human_success', $user_id, $cs_uid, $user['language_code']);
         } catch (\Exception $e) {
             Db::rollback();
         }

+ 5 - 1
app/admin/controller/Config.php

@@ -19,7 +19,11 @@ class Config extends BaseController
     public function list()
     {
         $flag = $this->request->param('flag', 1);
-        $list = ConfigModel::where('flag', $flag)->select();
+        $where['flag'] = $flag;
+        if ($flag == 3) {
+            $where['language_code'] = $this->lang;
+        }
+        $list = ConfigModel::where($where)->select();
         $select = ConfigModel::getSelect($this->lang, true);
         foreach ($list as &$item) {
             if (isset($select[$item['field']])) {

+ 27 - 18
app/admin/controller/Home.php

@@ -57,18 +57,11 @@ class Home extends BaseController
                 'code' => 'zh',
                 'name' => '中文简体',
                 'icon' => '',
+            ], [
             ], [
                 'code' => 'en',
                 'name' => '英语',
                 'icon' => '',
-            ], [
-                'code' => 'zh-tw',
-                'name' => '中文繁体',
-                'icon' => '',
-            ], [
-                'code' => 'pt',
-                'name' => '葡萄牙语',
-                'icon' => '',
             ], [
                 'code' => 'jp',
                 'name' => '日语',
@@ -77,27 +70,43 @@ class Home extends BaseController
                 'code' => 'ko',
                 'name' => '韩语',
                 'icon' => '',
-            ], [
-                'code' => 'th',
-                'name' => '泰语',
-                'icon' => '',
             ], [
                 'code' => 'id',
-                'name' => '印度尼西亚',
+                'name' => '印度尼西亚语',
                 'icon' => '',
             ], [
                 'code' => 'vi',
                 'name' => '越南语',
                 'icon' => '',
             ],[
-                'code' => 'hi',
-                'name' => '印地语',
+                'code' => 'ar',
+                'name' => '阿拉伯语',
                 'icon' => '',
             ],[
-                'code' => 'en-ph',
-                'name' => '菲律宾语',
+                'code' => 'fr',
+                'name' => '法语',
+                'icon' => '',
+            ], [
+                'code' => 'de',
+                'name' => '德语',
+                'icon' => '',
+            ], [
+                'code' => 'es',
+                'name' => '西班牙语',
+                'icon' => '',
+            ], [
+                'code' => 'it',
+                'name' => '意大利语',
+                'icon' => '',
+            ], [
+                'code' => 'th',
+                'name' => '泰语',
+                'icon' => '',
+            ], [
+                'code' => 'tr',
+                'name' => '土耳其语',
                 'icon' => '',
-            ], 
+            ],
         ];
         foreach ($list as &$item ) {
             $item['name'] = Lang::get($item['name']);

+ 5 - 4
app/admin/controller/Kefu.php

@@ -241,7 +241,7 @@ class Kefu extends BaseController
             wsSendMsg(0,'handleChat',['user_id'=>$user_id]);
 
             //自动回复-人工客服接线成功
-            Message::sendAutoReply('transfer_to_human_success', $user_id, $cs_uid);
+            Message::sendAutoReply('transfer_to_human_success', $user_id, $cs_uid,$user->language_code);
         } catch (\Exception $e) {
             Db::rollback();
             return $this->error($e->getMessage());
@@ -298,7 +298,7 @@ class Kefu extends BaseController
             wsSendMsg(0,'handleChat',['user_id'=>$user_id]);
 
             //自动回复-人工客服接线成功
-            Message::sendAutoReply('transfer_to_human_success', $user_id, $cs_uid);
+            Message::sendAutoReply('transfer_to_human_success', $user_id, $cs_uid, $user->language_code);
         } catch (\Exception $e) {
             Db::rollback();
             return $this->error($e->getMessage());
@@ -384,7 +384,7 @@ class Kefu extends BaseController
                 wsSendMsg(0,'handleChat',['user_id'=>$user_id]);
     
                 //给用户发送客服评分的消息
-                $user_open_comment = Config::getFieldValue('user_open_comment');
+                $user_open_comment = Config::getFieldValue('user_open_comment', $user->language_code);
                 if ($user_open_comment == 1 ) {
                     $param = [
                         'id' => \utils\Str::getUuid(),
@@ -392,13 +392,14 @@ class Kefu extends BaseController
                         'status' => 'going',
                         'sendTime' => time() * 1000,
                         'toContactId' => $user_id,
-                        'content' => Config::getFieldValue('kefu_finished_chat'),
+                        'content' => Config::getFieldValue('kefu_finished_chat', $user->language_code),
                         'file_id' => 0,
                         'is_group' => 0,
                         'user_id' => $cs_uid,
                         'extends' => json_encode([
                             'cs_uid' => $old_cs_uid,
                         ]),
+                        'language_code' => $user->language_code,
                     ];
                     Message::sendMsg($param, 0);
                 }

+ 6 - 2
app/admin/model/Config.php

@@ -47,9 +47,13 @@ class Config extends BaseModel
     // }
 
     //获取指定配置的数据
-    public static function getFieldValue($field)
+    public static function getFieldValue($field, $language_code = '')
     {
-        $config = self::where('field', $field)->find();
+        $where['field'] = $field;
+        if($language_code){
+            $where['language_code'] = $language_code;
+        }
+        $config = self::where($where)->find();
         if (!empty($config['type']) && $config['type'] == 'rich_text') {
             return $config['val'] ? json_decode($config['val'], true) : '';
         }

+ 4 - 0
app/common/controller/Pub.php

@@ -27,6 +27,7 @@ class Pub
      * @var \think\App
      */
     protected $app;
+    protected $lang;
 
     /**
      * 构造方法
@@ -39,6 +40,8 @@ class Pub
         $this->app     = $app;
         $this->request = $this->app->request;
 
+        //获取header里面的语言
+        $this->lang = request()->header('Lang', 'en');
         // 控制器初始化
         // $this->initialize();
     }
@@ -207,6 +210,7 @@ class Pub
             $data['name_py'] = pinyin_sentence($data['realname']);
             $user->save($data);
             $data['user_id']=$user->user_id;
+            $data['language_code'] = $this->lang;
             // 监听用户注册后的操作
             event('UserRegister',$data);
             // x分钟后才能再注册

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

@@ -90,7 +90,7 @@ class User
                     'login_count' => 1
                 ]);
                 // 监听用户注册后的操作
-                event('UserRegister',['user_id' => $userInfo['user_id'], 'realname' => $userInfo['realname']]);
+                event('UserRegister',['user_id' => $userInfo['user_id'], 'realname' => $userInfo['realname'], 'language_code' => $this->lang]);
 
             } else {
                 //$userInfo['avatar']=avatarUrl($userInfo['avatar'],$userInfo['realname'],$userInfo['user_id']);

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

@@ -42,7 +42,7 @@ class UserRegister
                             $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');
+                            $first_auto_reply = Config::getFieldValue('first_auto_reply', $data['language_code']);
                             $msg=[
                                 'id'=>\utils\Str::getUuid(),
                                 'user_id'=>$autoTask['user_id'],

+ 2 - 1
app/enterprise/controller/Im.php

@@ -254,10 +254,11 @@ class Im extends BaseController
                     'status' => 'going',
                     'sendTime' => time() * 1000,
                     'toContactId' => $user_id,
-                    'content' => Config::getFieldValue('transfer_to_human'),
+                    'content' => Config::getFieldValue('transfer_to_human', $this->lang),
                     'file_id' => 0,
                     'is_group' => 0,
                     'user_id' => $auto_cs_uid,
+                    'language_code' => $this->lang,
                 ];
                 Message::sendMsg($param, 0);
                 

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

@@ -20,9 +20,9 @@ class Message extends BaseModel
     protected static $fileType=['file','image','video','voice','emoji'];
 
     //给用户发送自动消息
-    public static function sendAutoReply($field, $user_id, $cs_uid){
+    public static function sendAutoReply($field, $user_id, $cs_uid, $language_code){
         //获取自动回复的消息内容
-        $content = Config::getFieldValue($field);
+        $content = Config::getFieldValue($field, $language_code);
 
         // 如果设置了自动回复消息,则发送
         if($content){
@@ -43,7 +43,8 @@ class Message extends BaseModel
                     'is_group'=>0,
                     'status'=>'succeed',
                     'fromUser'=>$userInfo,
-                    'at'=>[]
+                    'at'=>[],
+                    'language_code'=>$language_code,
                 ];
                 self::sendMsg($msg,0,1);
             }
@@ -188,13 +189,13 @@ class Message extends BaseModel
                 if ($question) {
                     $param['type'] = 'list';
                     $content = [
-                        'title' => Config::getFieldValue('reply_keyword'),
+                        'title' => Config::getFieldValue('reply_keyword',$param['language_code']),
                         'list' => $question,
                     ];
                     $param['content'] = json_encode($content);
                 } else {
                     $param['type'] = 'text';
-                    $param['content'] = Config::getFieldValue('reply_keyword_math_fail');
+                    $param['content'] = Config::getFieldValue('reply_keyword_math_fail',$param['language_code']);
                 }
             }
             

+ 6 - 2
app/manage/model/Config.php

@@ -60,9 +60,13 @@ class Config extends BaseModel
     }
 
     //获取指定配置的数据
-    public static function getFieldValue($field)
+    public static function getFieldValue($field, $language_code = '')
     {
-        $config = self::where('field', $field)->find();
+        $where['field'] = $field;
+        if($language_code){
+            $where['language_code'] = $language_code;
+        }
+        $config = self::where($where)->find();
         if (!empty($config['type']) && $config['type'] == 'rich_text') {
             return $config['val'] ? json_decode($config['val'], true) : '';
         }