Просмотр исходного кода

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

vali 6 лет назад
Родитель
Сommit
e816b73c7c

+ 121 - 0
application/admin/controller/System.php

@@ -1,6 +1,8 @@
 <?php
 namespace app\admin\controller;
 
+use app\admin\model\Office;
+
 /**
  * 管理系统系统设置类
  */
@@ -154,6 +156,8 @@ class System extends Base
     // 历史会话记录
     public function wordsLog()
     {
+        $toExcel = input('param.toExcel', 0);
+
         if(request()->isAjax()){
 
             $param = input('param.');
@@ -297,6 +301,15 @@ class System extends Base
             $return['total'] = $countTmp->count();  //总数据
             $return['rows'] = $result;
 
+            if (!$toExcel) {
+                return json($return);
+            } else {
+                $head = ['工单id', '访客进线时间', '接待客服', '所在组', '访客账号', '开始时间', '结束时间', '会话时长', '响应时长', '关闭原因', '满意度'];
+                $key = ['servicelog_id', 'intime', 'kefu_name', 'group_name', 'user_name', 'start_time', 'end_time', 'conversation', 'response', 'servicelog_close_type', 'evaluate_name'];
+                (new Office())->outdata('工作报表数据导出', $result, $head, $key);
+                return true;
+            }
+
             return json($return);
 
         }
@@ -433,4 +446,112 @@ class System extends Base
         return $key;
     }
 
+    public function toexcel()
+    {
+        $result = db('service_log')->order('start_time', 'desc')->select();
+
+        //所有客服
+        $users = db('users')->select();
+        //所有客服组
+        $groups = db('groups')->select();
+        //满意度
+        $evaluate = db('evaluate')->select();
+        //$alarm报警信息
+        $alarm =  db('alarm')->select();
+        foreach($result as $key=>$vo){
+            if($result[$key]['intime'] != 0){
+                $result[$key]['intime'] = date('Y-m-d H:i:s', $vo['intime']);
+            }else{
+                $result[$key]['intime'] = '-';
+            }
+            if($result[$key]['start_time'] != 0){
+                $result[$key]['start_time'] = date('Y-m-d H:i:s', $vo['start_time']);
+            }else{
+                $result[$key]['start_time'] = '-';
+            }
+            if($result[$key]['end_time'] != 0){
+                $result[$key]['end_time'] = date('Y-m-d H:i:s', $vo['end_time']);
+            }else{
+                $result[$key]['end_time'] = '-';
+            }
+            //客服名称
+            for($i=0;$i<count($users);$i++){
+                if($result[$key]['kf_id'] == $users[$i]['id']){
+                    $result[$key]['kefu_name'] = $users[$i]['user_name'];
+                }
+            }
+
+            //满意度
+            $result[$key]['evaluate_name'] = '';
+            for($j=0;$j<count($evaluate);$j++){
+                if($result[$key]['evaluate_id'] == $evaluate[$j]['evaluate_id']){
+                    $result[$key]['evaluate_name'] = $evaluate[$j]['evaluate_name'];
+                }
+            }
+
+            //客服所在组
+            for($a=0;$a<count($groups);$a++){
+                if($result[$key]['group_id'] == $groups[$a]['id']){
+                    $result[$key]['group_name'] = $groups[$a]['name'];
+                }
+            }
+
+            //会话时长/响应时长
+            $result[$key]['conversation'] = '';
+            $result[$key]['response'] = '';
+            for($b=0;$b<count($alarm);$b++){
+                if($result[$key]['servicelog_id'] == $alarm[$b]['servicelog_id']){
+                    //会话时长
+                    $conversation_min = intval($alarm[$b]['alarm_cvtOvertime']/60);
+                    $conversation_s = $alarm[$b]['alarm_cvtOvertime']%60;
+                    $result[$key]['conversation'] = $conversation_min.'分'.$conversation_s.'秒';
+                    //响应时长
+                    $response_min = intval($alarm[$b]['alarm_corresponding']/60);
+                    $response_s = $alarm[$b]['alarm_corresponding']%60;
+                    $result[$key]['response'] = $response_min.'分'.$response_s.'秒';
+                }
+            }
+
+            if($vo['servicelog_close_type'] == 0){
+                $result[$key]['servicelog_close_type'] = '未知';
+            }
+            if($vo['servicelog_close_type'] == 1){
+                $result[$key]['servicelog_close_type'] = '访客静默';
+            }
+            if($vo['servicelog_close_type'] == 2){
+                $result[$key]['servicelog_close_type'] = '会话超时';
+            }
+            if($vo['servicelog_close_type'] == 3){
+                $result[$key]['servicelog_close_type'] = '客服关闭';
+            }
+            if($vo['servicelog_close_type'] == 4){
+                $result[$key]['servicelog_close_type'] = '客服掉线';
+            }
+            if($vo['servicelog_close_type'] == 5){
+                $result[$key]['servicelog_close_type'] = '转接';
+            }
+
+            //工单聊天详情
+            $chat_log = db('chat_log')->where('servicelog_id',$vo['servicelog_id'])->order('time_line', 'desc')->select();
+            $result[$key]['detail'] = '';
+            for($c=0;$c<count($chat_log);$c++){
+                $content = json_decode($chat_log[$c]['content'], true);
+                $chat_log[$c]['time_line'] = date('Y-m-d H:i:s',$chat_log[$c]['time_line']);
+                $result[$key]['detail'] = $result[$key]['detail'].$chat_log[$c]['time_line'];
+                if(!empty($content['text'])){
+                    $content['content'] = $content['text'];
+                }
+                if(!empty($content['img'])){
+                    $content['content'] = '<img width="100%" src="'.$content['img'].'"/>';
+                }
+                $result[$key]['detail'] = $result[$key]['detail'].$content['content'];
+            }
+
+        }
+        $head = ['工单id', '访客进线时间', '接待客服', '所在组', '访客账号', '开始时间', '结束时间', '会话时长', '响应时长', '关闭原因', '满意度','聊天详情'];
+        $key = ['servicelog_id', 'intime', 'kefu_name', 'group_name', 'user_name', 'start_time', 'end_time', 'conversation', 'response', 'servicelog_close_type', 'evaluate_name','detail'];
+        (new Office())->outdata('工单数据导出', $result, $head, $key);
+        return true;
+    }
+
 }

+ 1 - 1
application/admin/view/report/workreport.html

@@ -36,7 +36,7 @@
                         <button class="btn btn-primary" type="button" style="margin-top:5px" id="search"><strong>搜 索</strong>
                         </button>
                     </div>
-                    <div class="form-group" style="margin-left:50px;">
+                    <div class="form-group" style="margin-left:50px;margin-top:5px">
                         <button class="btn btn-primary" type="button" id="toExcel" name="toExcel" value="0"><strong>导出Excel</strong>
                         </button>
                     </div>

+ 1 - 1
application/admin/view/robot/index.html

@@ -29,7 +29,7 @@
                         <a href="/static/admin/file/robot.xlsx" class="btn btn-primary" style="margin-top:5px" >下载智能问答模板文件</a>
                     </div>
                     <div class="form-group">
-                        <label>导入智能问答:</label>
+                        <!--<label>导入智能问答:</label>-->
                         <input type="file" class="form-control" name="excel" style="width: 200px;border: none;" />
                     </div>
                     <div class="form-group">

+ 1 - 1
application/admin/view/sensitivec/index.html

@@ -37,7 +37,7 @@
                         <a href="/static/admin/file/sensitivewords.xlsx" class="btn btn-primary" style="margin-top:5px" >下载敏感词模板文件</a>
                     </div>
                     <div class="form-group">
-                        <label>导入敏感词:</label>
+                        <!--<label>导入敏感词:</label>-->
                         <input type="file" class="form-control" name="excel" style="width: 200px;border: none;" />
                     </div>
                     <div class="form-group">

+ 13 - 3
application/admin/view/system/wordslog.html

@@ -55,13 +55,17 @@
                     &nbsp;&nbsp;
                     <div class="form-group">
                         <label>访客名称:</label>
-                        <input type="text" class="form-control" id="username" name="user_name">
+                        <input type="text" class="form-control" id="username" name="user_name" style="width: 120px;">
                     </div>
                     <div class="form-group">
                         <button class="btn btn-primary" type="button" style="margin-top:5px" id="search">
                             <strong>搜 索</strong>
                         </button>
                     </div>
+                    <div class="form-group" style="margin-left:40px;margin-top:5px">
+                        <button class="btn btn-primary" type="button" id="toExcel" name="toExcel" value="0"><strong>导出Excel</strong>
+                        </button>
+                    </div>
                 </div>
             </form>
             <!--搜索框结束-->
@@ -146,7 +150,6 @@
                     user_id: $('#user_id').val(),
                     group_id: $('#group_id').val()
                 };
-                console.log(param);
                 return param;
             },
             onLoadSuccess: function(res){  //加载成功时执行
@@ -179,7 +182,7 @@
 //                layer.tips("输入结束时间", '#end');
 //                return false;
 //            }
-
+//
 //            if(start > end){
 //                layer.msg('开始时间不能大于结束时间');
 //                return false;
@@ -187,6 +190,13 @@
 
             initTable();
         });
+
+        $("#toExcel").on("click", function () {
+            $("#toExcel").val(1);
+            var url = "{:url('system/toexcel')}" + "?pageNumber=1&pageSize=100&toExcel=1";
+            window.open(url);
+            return false;
+        });
     });
 
     layui.use('laydate', function(){