Browse Source

Merge branch 'master' of http://git.bocai108.com:10180/Ethan/Customer-Service

Jonlin 6 years ago
parent
commit
9f3e57d5dd

+ 3 - 3
application/admin/controller/Robot.php

@@ -22,7 +22,8 @@ class Robot extends Base
             $offset = (($param['pageNumber'] - 1) * $limit);
             $where  = [];
             if (empty($param['searchText']) === false) {
-                $where['robot_name'] = $param['searchText'];
+                // $where['robot_name'] = $param['searchText'];
+                $where['robot_name'] = ['like', '%' . $param['searchText'] . '%'];
             }
 
             $join   = [
@@ -30,7 +31,6 @@ class Robot extends Base
                 'robotgroups c' => 'a.robotgroups_id = c.robotgroups_id',
             ];
             $result = model('Robot')->selectJoin($join, $where, $offset, $limit);
-
             foreach ($result as $key => $vo) {
                 // 优化显示状态.
                 if(1 === $vo['robot_status']) {
@@ -49,7 +49,7 @@ class Robot extends Base
                 // 生成操作按钮.
                 $result[$key]['operate'] = $this->makeBtn($vo['robot_id']);
             }
-
+// var_dump($where);die;
             // 总数据.
             $return['total'] = model('Robot')->count($where);
             $return['rows'] = $result;

+ 138 - 0
application/admin/controller/Sensitivec.php

@@ -0,0 +1,138 @@
+<?php
+namespace app\admin\controller;
+
+class Sensitivec extends Base
+{	
+	//敏感词管理
+    public function index()
+    {
+    	if (request()->isAjax()) {
+            $param  = input('param.');
+
+            $limit  = $param['pageSize'];
+            $offset = (($param['pageNumber'] - 1) * $limit);
+
+            $where  = [];
+            if (empty($param['searchText']) === false) {
+                $where['sensitivewords_word'] = ['like', '%' . $param['searchText'] . '%'];
+            }
+            
+            $result = db('sensitivewords')->where($where)->limit($offset, $limit)->select();
+
+            foreach ($result as $key => $vo) {
+                // 优化显示状态.
+                if(1 === $vo['sensitivewords_status']) {
+                    $result[$key]['sensitivewords_status'] = '<span style="color: #2fbe1b">启用</span>';
+                } else {
+                    $result[$key]['sensitivewords_status'] = '<span style="color: red">禁用</span>';
+                }
+
+                // 生成操作按钮.
+                $result[$key]['operate'] = $this->makeBtn($vo['sensitivewords_id']);
+            }
+
+            // 总数据.
+            $return['total'] = db('sensitivewords')->where($where)->count();  //总数据
+            $return['rows'] = $result;
+
+            return json($return);
+
+        }
+
+    	return $this->fetch();
+    }
+
+    //敏感词添加
+    public function addsensitive(){
+    	if(request()->isPost()){
+
+            $param = input('post.');
+
+            $has = db('sensitivewords')->field('sensitivewords_id')->where('sensitivewords_word', $param['sensitivewords_word'])->find();
+            if(!empty($has)){
+                return json(['code' => -1, 'data' => '', 'msg' => '该敏感词已经存在']);
+            }
+
+			$param['sensitivewords_time'] = date('Y-m-d H:i:s');
+			$param['sensitivewords_uid'] = 1;//uid
+			// var_dump($param);die;
+            try{
+                db('sensitivewords')->insert($param);
+            }catch(\Exception $e){
+                return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
+            }
+
+            return json(['code' => 1, 'data' => '', 'msg' => '添加敏感词成功']);
+        }
+
+        $this->assign([
+            'status' => config('kf_status')
+        ]);
+
+        return $this->fetch();
+    }
+
+    //敏感词编辑
+    public function editsensitive(){
+    	if(request()->isAjax()){
+
+            $param = input('post.');
+
+            // 检测用户修改的管理员是否重复
+            $has = db('sensitivewords')->where('sensitivewords_word', $param['sensitivewords_word'])->where('sensitivewords_id', '<>', $param['sensitivewords_id'])->find();
+            if(!empty($has)){
+                return json(['code' => -1, 'data' => '', 'msg' => '该敏感词已经存在']);
+            }
+
+            $param['sensitivewords_time'] = date('Y-m-d H:i:s');
+            $param['sensitivewords_uid'] = 1;//uid
+
+            try{
+                db('sensitivewords')->where('sensitivewords_id', $param['sensitivewords_id'])->update($param);
+            }catch(\Exception $e){
+                return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
+            }
+
+            return json(['code' => 1, 'data' => '', 'msg' => '编辑敏感词成功']);
+        }
+
+        $id = input('param.sensitivewords_id/d');
+        $info = db('sensitivewords')->where('sensitivewords_id', $id)->find();
+
+        $this->assign([
+            'info' => $info,
+            'status' => config('kf_status')
+        ]);
+        return $this->fetch();
+    }
+
+    //删除
+    public function delWord(){
+    	if(request()->isAjax()){
+            $id = input('param.id/d');
+            // return $id;
+
+            try{
+                db('sensitivewords')->where('sensitivewords_id', $id)->delete();
+            }catch(\Exception $e){
+                return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
+            }
+
+            return json(['code' => 1, 'data' => '', 'msg' => '删除敏感词成功']);
+        }
+    }
+
+    // 生成按钮
+    private function makeBtn($id)
+    {
+        $operate = '<a href="' . url('sensitivec/editsensitive', ['sensitivewords_id' => $id]) . '">';
+        $operate .= '<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 编辑</button></a> ';
+
+        $operate .= '<a href="javascript:userDel(' . $id . ')"><button type="button" class="btn btn-danger btn-sm">';
+        $operate .= '<i class="fa fa-trash-o"></i> 删除</button></a> ';
+
+        return $operate;
+    }
+
+
+}

+ 3 - 3
application/admin/model/Robot.php

@@ -62,10 +62,10 @@ class Robot extends Model
     {
         $result = $this;
         if (empty($where) === false) {
-            $result = $result->where($where);
+            $result = $result->where($where)->count();
+        }else{
+            $result = $result->where($where)->count();
         }
-
-        $result = $result->count();
         return $result;
 
     }//end count()

+ 13 - 0
application/admin/model/Sensitivewords.php

@@ -0,0 +1,13 @@
+<?php
+namespace app\index\model;
+
+use think\Model;
+
+/**
+ * 敏感词分组模型
+ */
+class Sensitivewords extends Model
+{
+
+	
+}

+ 17 - 0
application/admin/view/menu.html

@@ -136,3 +136,20 @@
         </li>
     </ul>
 </li>
+
+<li class="menu">
+    <a href="#">
+        <i class="fa fa-comments-o"></i>
+        <span class="nav-label">敏感词管理</span>
+        <span class="fa arrow"></span>
+    </a>
+    <ul class="nav nav-second-level">
+        <li>
+            <a class="J_menuItem" href="{:url('sensitivec/index')}">敏感词</a>
+        </li>
+        <li>
+            <a class="J_menuItem" href="{:url('sensitivec/addsensitive')}">添加敏感词</a>
+        </li>
+    </ul>
+</li>
+

+ 143 - 0
application/admin/view/sensitivec/addsensitive.html

@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>添加敏感词</title>
+    <link rel="shortcut icon" href="favicon.ico">
+    <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
+    <link href="__CSS__/animate.min.css" rel="stylesheet">
+    <link href="__JS__/layui/css/layui.css" rel="stylesheet">
+    <link href="__CSS__/style.min.css?v=4.1.0" rel="stylesheet">
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content animated fadeInRight">
+    <div class="row">
+        <div class="col-sm-8">
+            <div class="ibox float-e-margins">
+                <div class="ibox-title">
+                    <h5>添加敏感词</h5>
+                </div>
+                <div class="ibox-content">
+                    <form class="form-horizontal m-t layui-form" id="commentForm" method="post" action="{:url('Sensitivec/addsensitive')}">
+
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">内容:</label>
+                            <div class="input-group col-sm-4">
+                                <textarea class="form-control" name="sensitivewords_word" required="" aria-required="true" style="width: 400px;height: 38px;resize:none"></textarea>
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">选择对象:</label>
+                            <input type="hidden" id="sensitivewords_for" name="sensitivewords_for"/>
+                            <div class="input-group col-sm-4 layui-form">
+                                <select lay-verify="required" lay-filter="group">
+                                    <option value="">请选择对象</option>
+                                    <option value="1">用户</option>
+                                    <option value="2">客服</option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="form-group layui-form-item">
+                            <label class="col-sm-3 control-label">是否启用:</label>
+                            <div class="input-group col-sm-6">
+                                {if !empty($status)}
+                                {foreach name="status" item="vo" key="key"}
+                                <input type="radio" name="sensitivewords_status" value="{$key}" title="{$vo}" {if $key eq 1}checked{/if}>
+                                {/foreach}
+                                {/if}
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <div class="col-sm-4 col-sm-offset-6">
+                                <button class="btn btn-primary" type="submit">提交</button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</div>
+<script src="__JS__/jquery.min.js?v=2.1.4"></script>
+<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
+<script src="__JS__/content.min.js?v=1.0.0"></script>
+<script src="__JS__/plugins/validate/jquery.validate.min.js"></script>
+<script src="__JS__/plugins/validate/messages_zh.min.js"></script>
+<script src="__JS__/plugins/layer/layer.min.js"></script>
+<script src="__JS__/layui/layui.js"></script>
+<script src="__JS__/jquery.form.js"></script>
+<script type="text/javascript">
+    const myHost = "http://" + window.location.host;
+    layui.use(['form', 'upload'], function(){
+        var form = layui.form;
+
+        form.on('select(group)', function(value){
+            $("#sensitivewords_for").val(value.value);
+        });
+
+        // form.on('select(robotgroups)', function(value){
+        //     $("#robotgroups_id").val(value.value);
+        // });
+    });
+
+    layui.use(['form', 'upload'], function(){
+        var form = layui.form;
+    });
+
+    var index = '';
+    function showStart(){
+        index = layer.load(0, {shade: false});
+        return true;
+    }
+
+    function showSuccess(res){
+
+        layer.ready(function(){
+            layer.close(index);
+            if(1 == res.code){
+               layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
+                   window.location.href = myHost + '/admin/Sensitivec/index';
+               });
+            }else if(111 == res.code){
+                window.location.reload();
+            }else{
+                layer.msg(res.msg, {anim: 6});
+            }
+        });
+    }
+
+    $(document).ready(function(){
+        // 添加管理员
+        var options = {
+            beforeSubmit:showStart,
+            success:showSuccess
+        };
+
+        $('#commentForm').submit(function(){
+            $(this).ajaxSubmit(options);
+            return false;
+        });
+    });
+
+    // 表单验证
+    $.validator.setDefaults({
+        highlight: function(e) {
+            $(e).closest(".form-group").removeClass("has-success").addClass("has-error")
+        },
+        success: function(e) {
+            e.closest(".form-group").removeClass("has-error").addClass("has-success")
+        },
+        errorElement: "span",
+        errorPlacement: function(e, r) {
+            e.appendTo(r.is(":radio") || r.is(":checkbox") ? r.parent().parent().parent() : r.parent())
+        },
+        errorClass: "help-block m-b-none",
+        validClass: "help-block m-b-none"
+    });
+
+</script>
+</body>
+</html>

+ 143 - 0
application/admin/view/sensitivec/editsensitive.html

@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>编辑敏感词</title>
+    <link rel="shortcut icon" href="favicon.ico">
+    <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
+    <link href="__CSS__/animate.min.css" rel="stylesheet">
+    <link href="__JS__/layui/css/layui.css" rel="stylesheet">
+    <link href="__CSS__/style.min.css?v=4.1.0" rel="stylesheet">
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content animated fadeInRight">
+    <div class="row">
+        <div class="col-sm-8">
+            <div class="ibox float-e-margins">
+                <div class="ibox-title">
+                    <h5>编辑敏感词</h5>
+                </div>
+                <div class="ibox-content">
+                    <form class="form-horizontal m-t layui-form" id="commentForm" method="post" action="{:url('Sensitivec/editsensitive')}">
+                        <input type="hidden" name="sensitivewords_id" value="{$info['sensitivewords_id']}"/>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">敏感词:</label>
+                            <div class="input-group col-sm-4">
+                                <textarea class="form-control" name="sensitivewords_word" required="" aria-required="true" style="width: 400px;height: 38px;resize:none">{$info['sensitivewords_word']}</textarea>
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">选择对象:</label>
+                            <input type="hidden" id="sensitivewords_for" name="sensitivewords_for" value="{$info['sensitivewords_for']}"/>
+                            <div class="input-group col-sm-4 layui-form">
+                                <select lay-verify="required" lay-filter="group">
+                                    <option value=""> <?php if($info['sensitivewords_for']==1){echo "用户";}elseif($info['sensitivewords_for']==2){echo "客服";}else{echo "请选择";} ?>  </option>
+                                    <option value="1">用户</option>
+                                    <option value="2">客服</option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="form-group layui-form-item">
+                            <label class="col-sm-3 control-label">是否启用:</label>
+                            <div class="input-group col-sm-6">
+                                {if !empty($status)}
+                                {foreach name="status" item="vo" key="key"}
+                                <input type="radio" name="sensitivewords_status" value="{$key}" title="{$vo}" {if $key eq $info['sensitivewords_status']}checked{/if}>
+                                {/foreach}
+                                {/if}
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <div class="col-sm-4 col-sm-offset-6">
+                                <button class="btn btn-primary" type="submit">提交</button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</div>
+<script src="__JS__/jquery.min.js?v=2.1.4"></script>
+<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
+<script src="__JS__/content.min.js?v=1.0.0"></script>
+<script src="__JS__/plugins/validate/jquery.validate.min.js"></script>
+<script src="__JS__/plugins/validate/messages_zh.min.js"></script>
+<script src="__JS__/plugins/layer/layer.min.js"></script>
+<script src="__JS__/layui/layui.js"></script>
+<script src="__JS__/jquery.form.js"></script>
+<script type="text/javascript">
+    const myHost = "http://" + window.location.host;
+
+    layui.use(['form', 'upload'], function(){
+        var form = layui.form;
+    });
+
+    var index = '';
+    function showStart(){
+        index = layer.load(0, {shade: false});
+        return true;
+    }
+
+    function showSuccess(res){
+
+        layer.ready(function(){
+            layer.close(index);
+            if(1 == res.code){
+                layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
+                    window.location.href = myHost + '/admin/Sensitivec/index';
+                });
+            }else if(111 == res.code){
+                window.location.reload();
+            }else{
+                layer.msg(res.msg, {anim: 6});
+            }
+        });
+    }
+
+    $(document).ready(function(){
+        // 添加管理员
+        var options = {
+            beforeSubmit:showStart,
+            success:showSuccess
+        };
+
+        $('#commentForm').submit(function(){
+            $(this).ajaxSubmit(options);
+            return false;
+        });
+    });
+
+    // 表单验证
+    $.validator.setDefaults({
+        highlight: function(e) {
+            $(e).closest(".form-group").removeClass("has-success").addClass("has-error")
+        },
+        success: function(e) {
+            e.closest(".form-group").removeClass("has-error").addClass("has-success")
+        },
+        errorElement: "span",
+        errorPlacement: function(e, r) {
+            e.appendTo(r.is(":radio") || r.is(":checkbox") ? r.parent().parent().parent() : r.parent())
+        },
+        errorClass: "help-block m-b-none",
+        validClass: "help-block m-b-none"
+    });
+
+    layui.use(['form', 'upload'], function(){
+        var form = layui.form;
+
+        form.on('select(group)', function(value){
+            $("#sensitivewords_for").val(value.value);
+        });
+
+        // form.on('select(robotgroups)', function(value){
+        //     $("#robotgroups_id").val(value.value);
+        // });
+    });
+</script>
+</body>
+</html>

+ 131 - 0
application/admin/view/sensitivec/index.html

@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>敏感词列表</title>
+    <link rel="shortcut icon" href="favicon.ico">
+    <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
+    <link href="__CSS__/plugins/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
+    <link href="__CSS__/animate.min.css" rel="stylesheet">
+    <link href="__CSS__/style.min.css?v=4.1.0" rel="stylesheet">
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content animated fadeInRight">
+    <!-- Panel Other -->
+    <div class="ibox float-e-margins">
+        <div class="ibox-title">
+            <h5>敏感词列表</h5>
+        </div>
+        <div class="ibox-content">
+            <!--搜索框开始-->
+            <form id='commentForm' role="form" method="post" class="form-inline pull-right">
+                <div class="content clearfix m-b">
+                    <div class="form-group">
+                        <label>敏感词关键字:</label>
+                        <input type="text" class="form-control" id="content" name="content" value="" placeholder="请输入敏感词">
+                    </div>
+                    <div class="form-group">
+                        <button class="btn btn-primary" type="button" style="margin-top:5px" id="search"><strong>搜 索</strong>
+                        </button>
+                    </div>
+                </div>
+            </form>
+            <!--搜索框结束-->
+            <div class="example-wrap">
+                <div class="example">
+                    <table id="cusTable">
+                        <thead>
+                        <th data-field="sensitivewords_id">ID</th>
+                        <th data-field="sensitivewords_word">内容</th>
+                        <th data-field="sensitivewords_time">时间</th>
+                        <th data-field="sensitivewords_for">对象</th>
+                        <th data-field="sensitivewords_status">状态</th>
+                        <th data-field="operate">操作</th>
+                        </thead>
+                    </table>
+                </div>
+            </div>
+
+            <!-- End Example Pagination -->
+        </div>
+    </div>
+</div>
+<!-- End Panel Other -->
+<script src="__JS__/jquery.min.js?v=2.1.4"></script>
+<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
+<script src="__JS__/content.min.js?v=1.0.0"></script>
+<script src="__JS__/plugins/bootstrap-table/bootstrap-table.min.js"></script>
+<script src="__JS__/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
+<script src="__JS__/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
+<script src="__JS__/plugins/layer/layer.min.js"></script>
+<script type="text/javascript">
+    function initTable() {
+        //先销毁表格
+        $('#cusTable').bootstrapTable('destroy');
+        //初始化表格,动态从服务器加载数据
+        $("#cusTable").bootstrapTable({
+            method: "get",  //使用get请求到服务器获取数据
+            url: "{:url('sensitivec/index')}", //获取数据的地址
+            striped: true,  //表格显示条纹
+            pagination: true, //启动分页
+            pageSize: 10,  //每页显示的记录数
+            pageNumber:1, //当前第几页
+            pageList: [5, 10, 15, 20, 25],  //记录数可选列表
+            sidePagination: "server", //表示服务端请求
+            paginationFirstText: "首页",
+            paginationPreText: "上一页",
+            paginationNextText: "下一页",
+            paginationLastText: "尾页",
+            queryParamsType : "undefined",
+            queryParams: function queryParams(params) {   //设置查询参数
+                var param = {
+                    pageNumber: params.pageNumber,
+                    pageSize: params.pageSize,
+                    searchText:$('#content').val()
+                };
+                return param;
+            },
+            onLoadSuccess: function(res){  //加载成功时执行
+                if(111 == res.code){
+                    window.location.reload();
+                }
+                layer.msg("加载成功", {time : 1000});
+            },
+            onLoadError: function(){  //加载失败时执行
+                layer.msg("加载数据失败");
+            }
+        });
+    }
+
+    $(document).ready(function () {
+        //调用函数,初始化表格
+        initTable();
+
+        //当点击查询按钮的时候执行
+        $("#search").bind("click", initTable);
+    });
+
+    function userDel(id){
+        layer.confirm('确认删除此敏感词?', {icon: 3, title:'提示'}, function(index){
+            //do something
+            $.getJSON("{:url('sensitivec/delWord')}", {'id' : id}, function(res){
+                if(1 == res.code){
+                    layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
+                        initTable();
+                    });
+                }else if(111 == res.code){
+                    window.location.reload();
+                }else{
+                    layer.alert(res.msg, {title: '友情提示', icon: 2});
+                }
+            });
+
+            layer.close(index);
+        })
+
+    }
+</script>
+</body>
+</html>

+ 14 - 13
vendor/GatewayWorker_windows/Applications/whisper/Events.php

@@ -252,8 +252,8 @@ class Events
      */
     public static function onMessage($client_id, $message)
     {
-        if ($message == '{"type":"ping"}' || $message == '{"message_type":"ping"}' ) {
-            Gateway::sendToCurrentClient('{"type":"pong"}');
+        if ($message == '{"type":"ping"}' || $message == '{"type":"pong"}') {
+            //Gateway::sendToCurrentClient('{"type":"pong"}');
             return;
         } else {
             echo "onMessage: " . $message . "\r\n";
@@ -444,13 +444,16 @@ class Events
 
 
     //客户工单内部组转接
-    public static function changeOtherhKeFu($client_id, $message)
+    public static function changeOtherhKeFu($client_id, $smessage)
     {
+        $message = $smessage['data'];
+
         $groupid = isset($message['group']) ? intval($message['group']) : 0;
-        $toukfid = isset($message['toukfuid']) ? intval($message['toukfuid']) : 0;
+        $toukfid = isset($message['toukfuid']) ? $message['toukfuid'] : 0;
         $fromkfuid = isset($message['fromkfuid']) ? $message['fromkfuid'] : 0;
         $uid = isset($message['uid']) ? $message['uid'] : 0;
         $word = isset($message['word']) ? $message['word'] : '';
+
         if (empty($groupid) || empty($toukfid) || empty($fromkfuid) || empty($uid) || empty($word) || ($toukfid == $fromkfuid)) {
             return false;
         }
@@ -458,6 +461,7 @@ class Events
             return false;
         }
 
+
         $tokfidclientid = Gateway::getClientIdByUid($toukfid);
         $tokfidclientid = $tokfidclientid['0'];
         $uidclientid = Gateway::getClientIdByUid($uid);
@@ -493,15 +497,14 @@ class Events
         do {
         } while (!self::$global->cas('userToKf', $userToKf, $userToKf_new));
 
-
         /////////取消原有会话,开启新会话
         $histarttimelimit = time() - 3600 * 24;
-        $bindval = ['user_id' => $uid, 'kf_id' => intval(trim($toukfid, 'KF')), 'histime' => $histarttimelimit];
-        $oldlog = self::$db->select('*')->from('ws_service_log')->where('user_id= :user_id and  client_id=:client_id and kf_id=:kf_id and  status=2 and  start_time>=:histime ')->bindValues($bindval)->row();
+        $bindval = ['user_id' => $uid, 'client_id' => $uidclientid, 'kf_id' => intval(trim($fromkfuid, 'KF')), 'histime' => $histarttimelimit];
+        $oldlog = self::$db->select('*')->from('ws_service_log')->where('user_id= :user_id and  client_id=:client_id and kf_id=:kf_id and  status!=2 and  start_time>=:histime ')->bindValues($bindval)->row();
         if (!$oldlog) {
             return false;
         }
-        self::$db->update('ws_service_log')->cols(['status' => 2, 'endtime' => time()])->where('servicelog_id=' . $oldlog['servicelog_id'])->query();
+        self::$db->update('ws_service_log')->cols(['status' => 2, 'end_time' => time()])->where('servicelog_id=' . $oldlog['servicelog_id'])->query();
         unset($oldlog['servicelog_id']);
         $oldlog = array_merge($oldlog, ['kf_id' => intval(trim($toukfid, 'KF')), 'start_time' => time(), 'end_time' => 0, 'status' => 1, 'evaluate_id' => 0]);
         $new_id = self::$db->insert('ws_service_log')->cols($oldlog)->query();
@@ -515,7 +518,7 @@ class Events
             'message_type' => 'connect',
             'data' => [
                 'kf_id' => $toukfid,
-                'kf_name' => Gateway::getSession($toukfid)['name'],
+                'kf_name' => Gateway::getSession( Gateway::getClientIdByUid($toukfid)['0'])['name'],
             ]
         ];
         Gateway::sendToClient($uidclientid, json_encode($noticeUser, 256));
@@ -525,7 +528,7 @@ class Events
         $noticeKf = [
             'message_type' => 'connect',
             'data' => [
-                'user_info' => $uidclientid
+                'user_info' => $uid
             ]
         ];
         Gateway::sendToClient($tokfidclientid, json_encode($noticeKf, 256));
@@ -540,7 +543,6 @@ class Events
     public static function Kfinit($client_id, $message)
     {
         $kfList = self::$global->kfList;
-
         //客服登陆验证 不符合的直接断掉
         $logcheck = true;     //开发时使用
         //$logcheck = self::KfloginChedk($client_id, $message);
@@ -551,7 +553,6 @@ class Events
 
         // 如果该客服未在内存中记录则记录
         if (!isset($kfList[$message['group']]) || !array_key_exists($message['uid'], $kfList[$message['group']])) {
-
             do {
                 $newKfList = $kfList;
                 $newKfList[$message['group']][$message['uid']] = [
@@ -1099,7 +1100,7 @@ class Events
                 'system' => $res['data']['3']['system'],
                 'browse' => $res['data']['3']['browse'],
                 'status' => 1,
-                'intime'=>$res['data']['3']['intime'],
+                'intime' => $res['data']['3']['intime'],
                 'end_time' => 0
             ];
             $hisSession = self::$db->select('*')->from('ws_service_log')->where('user_id=:user_id and kf_id=:kf_id and group_id=:group_id and status in (1,3)')->bindValues(array('user_id' => $res['data']['3']['id'], 'kf_id' => intval(ltrim($res['data']['0'], 'KF')), 'group_id' => $group))->row();