فهرست منبع

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

# Conflicts:
#	vendor/GatewayWorker_windows/Applications/whisper/Events.php
vali 6 سال پیش
والد
کامیت
bdfc8627a2

+ 8 - 2
application/admin/controller/Report.php

@@ -129,7 +129,7 @@ class Report extends Base
             ],
         ];
         $transfer = model('ServiceturnLog')->countSlg($transferWhere);
-        // 答比.
+        // 答比.
         $replyWhere['time_line'] = [
             'between',
             [
@@ -294,7 +294,7 @@ class Report extends Base
         return $return;
     }
 
-  
+
     /**
      * 时间分割
      *
@@ -421,6 +421,12 @@ class Report extends Base
                     $num = $result[$key]['send_words'] / $result[$key]['receive_words'] * 100;
                     $result[$key]['answer_problem'] = round($num, 2) . '%';
                 }
+                if($result[$key]['receive_words'] == 0 && $result[$key]['send_words'] != 0){
+                    $result[$key]['answer_problem'] = '100%';
+                }
+                if($result[$key]['receive_words'] == 0 && $result[$key]['send_words'] == 0){
+                    $result[$key]['answer_problem'] = '0%';
+                }
                 //平均会话时长
                 $result[$key]['conversation'] = round(db('service_log a')->join('alarm b', 'a.servicelog_id=b.servicelog_id')->whereBetween('a.start_time', [$start, $end])->where('a.kf_id', $vo['id'])->avg('b.alarm_cvtOvertime'));
                 if ($result[$key]['conversation'] >= 60) {

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

@@ -67,7 +67,7 @@
                     </div>
                     <div class="ibox-content" style="font-size: 12px; padding: 5px 20px 5px; height: 45px; line-height: 3;">
                         <div style="justify-content: center; display: flex">
-                            <div style="text-align: right;">答比</div>
+                            <div style="text-align: right;">答比</div>
                             <div style="margin-left: 20px; text-align: right;">{$reply}%</div>
                         </div>
                     </div>

+ 1 - 1
application/admin/view/system/wordslog.html

@@ -194,7 +194,7 @@
 
         $("#toExcel").on("click", function () {
             $("#toExcel").val(1);
-            var url = "{:url('system/wordsLog')}" + "?pageNumber=1&pageSize=100&toExcel=1";
+            var url = "{:url('system/toexcel')}" + "?pageNumber=1&pageSize=100&toExcel=1";
             window.open(url);
             return false;
         });

+ 5 - 4
application/index/controller/Alarm.php

@@ -28,6 +28,7 @@ class Alarm extends Common
         try {
             $conversationId         = input('get.conversationId');
             $type                   = input('get.type');
+            $number                 = input('get.number');
             $where['servicelog_id'] = $conversationId;
             // 获取数据.
             if ($type == '1') {
@@ -35,11 +36,11 @@ class Alarm extends Common
                 $alarm = model('Alarm')->findAlarm($field, $where);
                 // 修改或新增数据.
                 if (empty($alarm) === true) {
-                    $data['alarm_userSensitive'] = 1;
+                    $data['alarm_userSensitive'] = intval($number);
                     $data['servicelog_id']       = $conversationId;
                     model('Alarm')->addAlarm($data);
                 } else {
-                    $data['alarm_userSensitive'] = ($alarm['alarm_userSensitive'] + 1);
+                    $data['alarm_userSensitive'] = ($alarm['alarm_userSensitive'] + intval($number));
                     model('Alarm')->updateAlarm($where, $data);
                 }
             } else {
@@ -47,11 +48,11 @@ class Alarm extends Common
                 $alarm = model('Alarm')->findAlarm($field, $where);
                 // 修改或新增数据.
                 if (empty($alarm) === true) {
-                    $data['alarm_serverSensitive'] = 1;
+                    $data['alarm_serverSensitive'] = intval($number);
                     $data['servicelog_id']         = $conversationId;
                     model('Alarm')->addAlarm($data);
                 } else {
-                    $data['alarm_serverSensitive'] = ($alarm['alarm_serverSensitive'] + 1);
+                    $data['alarm_serverSensitive'] = ($alarm['alarm_serverSensitive'] + intval($number));
                     model('Alarm')->updateAlarm($where, $data);
                 }
             }//end if

+ 6 - 8
application/service/controller/Services.php

@@ -96,23 +96,21 @@ class Services extends Base
 //                return json(['code' => -1, 'data' => '', 'msg' => '该客服已经存在']);
 //            }
 
-//            $useremail = db('users')->where('user_email', $user_email)->where('id', '<>', $user_id)->find();
-//            if(!empty($useremail)){
-//                return json(['code' => -3, 'data' => '', 'msg' => '该邮箱已经存在']);
-//            }
-
-
             // 更新客服信息
             $param = [
                 'user_name' => $user_name,
                 'user_email' => $user_email,
                 'signature' => $signature,
                 'fullname' => $fullname,
-                'phone' => $phone
+                'phone' => $phone,
+                'expire_time' => time()
             ];
             db('users')->where('id', $user_id)->update($param);
+            $user = db('users')->where('id', $user_id)->select();
+            $group = db('groups')->where('id', $user[0]['group_id'])->find();
+            $user[0]['group'] = $group['name'];
 
-            return json(['code' => 1, 'data' => '', 'msg' => '修改成功']);
+            return json(['code' => 1, 'data' => ['user' => $user[0]], 'msg' => '修改成功']);
         }
     }
 

+ 26 - 12
vendor/GatewayWorker_windows/Applications/whisper/Events.php

@@ -209,7 +209,6 @@ class Events
             //echo "onMessage: " . $message . "\r\n";
             // print_r([self::$global->kfList, self::$global->userList, self::$global->uidSimpleList, self::$global->userToKf, $_SESSION['remotip'] . '.' . $_SESSION['remotport']]);
         }
-
         $message = json_decode($message, true);
         if (isset($message['type'])) {
             switch ($message['type']) {
@@ -854,11 +853,13 @@ class Events
                     if ($serviceLog) {
                         $servicelog_id = $serviceLog[0]['servicelog_id'];
                         $logCount = self::$db->query("select count(*) as `count` from `ws_chat_log` where `servicelog_id`= '$servicelog_id'");
-                        $alarmCount = $logCount[0]['count'];
-                        $cvtOvertime = time() - $serviceLog[0]['start_time'];
-                        $alarmLineTime = $serviceLog[0]['start_time'] - $serviceLog[0]['intime'];
-                        self::$db->query("update `ws_alarm` set `alarm_cvtOvertime` = '$cvtOvertime',`alarm_lineTime` = '$alarmLineTime',`alarm_count` = '$alarmCount'
+                        if ($logCount) {
+                            $alarmCount = $logCount[0]['count'];
+                            $cvtOvertime = time() - $serviceLog[0]['start_time'];
+                            $alarmLineTime = $serviceLog[0]['start_time'] - $serviceLog[0]['intime'];
+                            self::$db->query("update `ws_alarm` set `alarm_cvtOvertime` = '$cvtOvertime',`alarm_lineTime` = '$alarmLineTime',`alarm_count` = '$alarmCount'
                                       where `servicelog_id`= '$servicelog_id'");
+                        }
                     }
                 }
                 Gateway::closeClient($val);
@@ -963,7 +964,7 @@ class Events
                         ];
                         $now = time();
                         $kf__uid = substr($kfuid, 2);
-                        $sql = "update `ws_service_log` set `status` = '3',end_time=$now  where `user_id`= '$uid' and  kf_id='$kf__uid' and  group_id=$kfgroup  and  status=1 ";
+                        $sql = "update `ws_service_log` set `status` = '3'  where `user_id`= '$uid' and  kf_id='$kf__uid' and  group_id=$kfgroup  and  status=1 ";
                         //echo "客户退出:". $sql ."\n";
                         self::$db->query($sql);
                         Gateway::sendToClient($krclient_id, json_encode($chat_message, 256));
@@ -991,8 +992,19 @@ class Events
                 'id' => $userId
             ]
         ];
-        Gateway::sendToClient($kfList[$groupId]['KF' . $kf_id]['client_id'], json_encode($del_message, 256));
+        Gateway::sendToClient($kfList[$groupId][$kf_id]['client_id'], json_encode($del_message, 256));
         unset($del_message);
+        $now = time();
+        $sql = "update `ws_service_log` set `status`='2',end_time=$now  where `servicelog_id`= '$servicelog_id'";
+        self::$db->query($sql);
+        // 修改会话时长
+        $serviceLog = self::$db->query("select `start_time`,`intime` from `ws_service_log` where `servicelog_id`= '$servicelog_id'");
+        $logCount = self::$db->query("select count(*) as `count` from `ws_chat_log` where `servicelog_id`= '$servicelog_id'");
+        $alarmCount = $logCount[0]['count'];
+        $cvtOvertime = time() - $serviceLog[0]['start_time'];
+        $alarmLineTime = $serviceLog[0]['start_time'] - $serviceLog[0]['intime'];
+        self::$db->query("update `ws_alarm` set `alarm_cvtOvertime` = '$cvtOvertime',`alarm_lineTime` = '$alarmLineTime',`alarm_count` = '$alarmCount'
+                          where `servicelog_id`= '$servicelog_id'");
     }
 
 
@@ -1879,13 +1891,13 @@ class Events
           join `ws_users` on ws_service_log.kf_id=ws_users.id 
           WHERE ws_service_log.status='1' OR ws_service_log.status='3'");
         // 查询系统设置表.
-        $systemconfig = self::$db->query("SELECT `systemconfig_data` FROM `ws_systemconfig` WHERE `systemconfig_enName`='verifyReturnTime' or `systemconfig_enName`='verifyAllTime'");
-        $found_key = array_search('verifyReturnTime', array_column($systemconfig, 'systemconfig_enName'));
+        $systemconfig = self::$db->query("SELECT `systemconfig_data`,`systemconfig_enName` FROM `ws_systemconfig` WHERE `systemconfig_enName`='verifyReturnTime' or `systemconfig_enName`='verifyAllTime'");
+        $returnTimeKey = array_search('verifyReturnTime', array_column($systemconfig, 'systemconfig_enName'));
         // 质检会话响应时长.
-        $verifyReturnTime = $systemconfig[$found_key]['systemconfig_data'];
-        $found_key = array_search('verifyAllTime', array_column($systemconfig, 'systemconfig_enName'));
+        $verifyReturnTime = $systemconfig[$returnTimeKey]['systemconfig_data'];
+        $allTimeKey = array_search('verifyAllTime', array_column($systemconfig, 'systemconfig_enName'));
         // 质检会话时长.
-        $verifyAllTime = $systemconfig[$found_key]['systemconfig_data'];
+        $verifyAllTime = $systemconfig[$allTimeKey]['systemconfig_data'];
         // 差评次数.
         $evaluateCount = 0;
         // 未结束工单id.
@@ -1924,7 +1936,9 @@ class Events
             }
             $serviceLog[$k]['allCount'] = $allCount;
         }
+
         print_r([$serviceLog, $csdTime, $verifyReturnTime]);
+
         // 查询对话时效设置.
         foreach ($adminList as $v) {
             $chat_message = [