vali преди 6 години
родител
ревизия
2e81e63327
променени са 2 файла, в които са добавени 47 реда и са изтрити 47 реда
  1. 44 44
      application/admin/controller/Report.php
  2. 3 3
      application/admin/model/Kfstatetimes.php

+ 44 - 44
application/admin/controller/Report.php

@@ -160,9 +160,9 @@ class Report extends Base
                 }
 
                 if (isset($timesdata[$day][$kfuid])) {
-                    $all_last[] = array_merge($timesdata[$day][$kfuid], $allData[$day][$kfuid], ['uname' => $uobjarr[$uid]->user_name,'account' => $uobjarr[$uid]->user_account,'day'=>$day]);
+                    $all_last[] = array_merge($timesdata[$day][$kfuid], $allData[$day][$kfuid], ['uname' => $uobjarr[$uid]->user_name, 'account' => $uobjarr[$uid]->user_account, 'day' => $day]);
                 } else {
-                    $all_last[] = array_merge(['0' => 0, '1' => 0, '2' => 0, '3' => 0], $allData[$day][$kfuid], ['uname' => $uobjarr[$uid]->user_name, 'account' => $uobjarr[$uid]->user_account,'day'=>$day]);
+                    $all_last[] = array_merge(['0' => 0, '1' => 0, '2' => 0, '3' => 0, 'all' => 0, 's1p' => 0, 'sp2' => 0, 'sp3' => 0], $allData[$day][$kfuid], ['uname' => $uobjarr[$uid]->user_name, 'account' => $uobjarr[$uid]->user_account, 'day' => $day]);
                 }
             }
         }
@@ -270,15 +270,15 @@ class Report extends Base
     // 工作报表
     public function workreport()
     {
-        if(request()->isAjax()){
+        if (request()->isAjax()) {
 
-            $param  = input('param.');
-            $limit  = $param['pageSize'];
+            $param = input('param.');
+            $limit = $param['pageSize'];
             $offset = ($param['pageNumber'] - 1) * $limit;
-            $where  = [];
+            $where = [];
             //用户名称
             if (empty($param['searchText']) === false) {
-                $where['user_account|user_name|user_job_number'] = array('like','%'.$param['searchText'].'%');
+                $where['user_account|user_name|user_job_number'] = array('like', '%' . $param['searchText'] . '%');
             }
             if (empty($param['start']) === false && empty($param['end']) === false && $param['start'] <= $param['end']) {
                 $start = strtotime($param['start']);
@@ -286,63 +286,63 @@ class Report extends Base
             }
             $result = db('users')->limit($offset, $limit)->where($where)->select();
 
-            foreach($result as $key=>$vo){
+            foreach ($result as $key => $vo) {
                 //客服工单数
-                $result[$key]['service_num'] = db('service_log')->whereBetween('start_time', [$start, $end])->where('kf_id',$vo['id'])->count();
+                $result[$key]['service_num'] = db('service_log')->whereBetween('start_time', [$start, $end])->where('kf_id', $vo['id'])->count();
                 //客服发出消息数
-                $result[$key]['send_words'] = db('chat_log')->whereBetween('time_line', [$start, $end])->where('from_id','KF'.$vo['id'])->count();
+                $result[$key]['send_words'] = db('chat_log')->whereBetween('time_line', [$start, $end])->where('from_id', 'KF' . $vo['id'])->count();
                 //接入转接量
-                $result[$key]['transfer_in'] = db('serviceturn_log')->whereBetween('ctime', [date('Y-m-d',$start), date('Y-m-d',$end).' 23:59:59'])->where('stype','IN')->where('uid',$vo['id'])->count();
+                $result[$key]['transfer_in'] = db('serviceturn_log')->whereBetween('ctime', [date('Y-m-d', $start), date('Y-m-d', $end) . ' 23:59:59'])->where('stype', 'IN')->where('uid', $vo['id'])->count();
                 //客服收到消息数
-                $result[$key]['receive_words'] = db('chat_log')->whereBetween('time_line', [$start, $end])->where('to_id','KF'.$vo['id'])->count();
+                $result[$key]['receive_words'] = db('chat_log')->whereBetween('time_line', [$start, $end])->where('to_id', 'KF' . $vo['id'])->count();
                 //客服回复工单数
-                $a = db('service_log a')->join('alarm b', 'a.servicelog_id=b.servicelog_id')->where('a.kf_id',$vo['id'])->whereBetween('a.start_time', [$start, $end])->where('b.alarm_respond',2)->count();
+                $a = db('service_log a')->join('alarm b', 'a.servicelog_id=b.servicelog_id')->where('a.kf_id', $vo['id'])->whereBetween('a.start_time', [$start, $end])->where('b.alarm_respond', 2)->count();
                 //回复率
-                if(!empty($result[$key]['service_num'])){
-                    $n = $a/$result[$key]['service_num']*100;
-                    $result[$key]['reply'] = round($n,2).'%';
+                if (!empty($result[$key]['service_num'])) {
+                    $n = $a / $result[$key]['service_num'] * 100;
+                    $result[$key]['reply'] = round($n, 2) . '%';
                 }
 
                 //答问比
-                if($result[$key]['receive_words'] != 0){
-                    $num = $result[$key]['send_words']/$result[$key]['receive_words']*100;
-                    $result[$key]['answer_problem'] = round($num,2).'%';
+                if ($result[$key]['receive_words'] != 0) {
+                    $num = $result[$key]['send_words'] / $result[$key]['receive_words'] * 100;
+                    $result[$key]['answer_problem'] = round($num, 2) . '%';
                 }
                 //平均会话时长
-                $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){
-                    $result[$key]['conversation'] = floor($result[$key]['conversation']/60).'分'.($result[$key]['conversation']%60).'秒';
-                }else{
-                    $result[$key]['conversation'] = $result[$key]['conversation'].'秒';
+                $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) {
+                    $result[$key]['conversation'] = floor($result[$key]['conversation'] / 60) . '分' . ($result[$key]['conversation'] % 60) . '秒';
+                } else {
+                    $result[$key]['conversation'] = $result[$key]['conversation'] . '秒';
                 }
                 //平均响应时长
-                $result[$key]['response'] = 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_corresponding'));
-                if($result[$key]['response'] >= 60){
-                    $result[$key]['response'] = floor($result[$key]['response']/60).'分'.($result[$key]['response']%60).'秒';
-                }else{
-                    $result[$key]['response'] = $result[$key]['response'].'秒';
+                $result[$key]['response'] = 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_corresponding'));
+                if ($result[$key]['response'] >= 60) {
+                    $result[$key]['response'] = floor($result[$key]['response'] / 60) . '分' . ($result[$key]['response'] % 60) . '秒';
+                } else {
+                    $result[$key]['response'] = $result[$key]['response'] . '秒';
                 }
                 //已评价的工单数
-                $m = db('service_log')->whereBetween('start_time', [$start, $end])->where('kf_id',$vo['id'])->where('evaluate_id','<>',0)->count();
+                $m = db('service_log')->whereBetween('start_time', [$start, $end])->where('kf_id', $vo['id'])->where('evaluate_id', '<>', 0)->count();
                 //参评率
-                if($result[$key]['service_num'] != 0){
-                    $result[$key]['appraise'] = $m/$result[$key]['service_num']*100;
-                    $result[$key]['appraise'] = round($num,2).'%';
+                if ($result[$key]['service_num'] != 0) {
+                    $result[$key]['appraise'] = $m / $result[$key]['service_num'] * 100;
+                    $result[$key]['appraise'] = round($num, 2) . '%';
                 }
                 //满意评价
-                $result[$key]['pleased_num'] = db('service_log a')->join('evaluate b', 'a.evaluate_id=b.evaluate_id')->whereBetween('a.start_time', [$start, $end])->where('kf_id',$vo['id'])->where('evaluate_name','满意')->count();
+                $result[$key]['pleased_num'] = db('service_log a')->join('evaluate b', 'a.evaluate_id=b.evaluate_id')->whereBetween('a.start_time', [$start, $end])->where('kf_id', $vo['id'])->where('evaluate_name', '满意')->count();
                 //一般评价
-                $result[$key]['commonly'] = db('service_log a')->join('evaluate b', 'a.evaluate_id=b.evaluate_id')->whereBetween('a.start_time', [$start, $end])->where('kf_id',$vo['id'])->where('evaluate_name','一般')->count();
+                $result[$key]['commonly'] = db('service_log a')->join('evaluate b', 'a.evaluate_id=b.evaluate_id')->whereBetween('a.start_time', [$start, $end])->where('kf_id', $vo['id'])->where('evaluate_name', '一般')->count();
                 //不满意评价
-                $result[$key]['no_pleased'] = db('service_log a')->join('evaluate b', 'a.evaluate_id=b.evaluate_id')->whereBetween('a.start_time', [$start, $end])->where('kf_id',$vo['id'])->where('evaluate_name','不满意')->count();
+                $result[$key]['no_pleased'] = db('service_log a')->join('evaluate b', 'a.evaluate_id=b.evaluate_id')->whereBetween('a.start_time', [$start, $end])->where('kf_id', $vo['id'])->where('evaluate_name', '不满意')->count();
                 //相对满意度率
-                if($m != 0){
-                    $result[$key]['pleased'] = $result[$key]['pleased_num']/$m*100;
-                    $result[$key]['pleased'] = round($result[$key]['pleased'],2).'%';
+                if ($m != 0) {
+                    $result[$key]['pleased'] = $result[$key]['pleased_num'] / $m * 100;
+                    $result[$key]['pleased'] = round($result[$key]['pleased'], 2) . '%';
                 }
 
                 //留言处理量
-                $result[$key]['message'] = db('accountsmessage')->whereBetween('dealWith_time', [$start, $end])->where('user_id',$vo['id'])->count();
+                $result[$key]['message'] = db('accountsmessage')->whereBetween('dealWith_time', [$start, $end])->where('user_id', $vo['id'])->count();
 
 
                 // 生成操作按钮
@@ -357,12 +357,12 @@ class Report extends Base
         }
         //所有客服
         $users = db('users')->select();
-        if(!empty($users)){
+        if (!empty($users)) {
             $option = '<option value="0">处理人</option>';
-            for($i=0;$i<count($users);$i++){
-                $option = $option.'<option value="'.$users[$i]['id'].'">'.$users[$i]['user_name'].'</option>';
+            for ($i = 0; $i < count($users); $i++) {
+                $option = $option . '<option value="' . $users[$i]['id'] . '">' . $users[$i]['user_name'] . '</option>';
             }
-            $useroption = '<select lay-verify="required" lay-filter="user_id">'.$option.'</select>';
+            $useroption = '<select lay-verify="required" lay-filter="user_id">' . $option . '</select>';
         }
 
         $this->assign([

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

@@ -30,7 +30,6 @@ class Kfstatetimes extends Model
         $return = [];
         foreach ($array as $val) {
             $return[$val->sday][$val->kfuid][$val->kstatus] = $val->stime;
-
         }
 
         foreach ($return as $sday => $sval) {
@@ -50,8 +49,9 @@ class Kfstatetimes extends Model
                     $return[$sday][$kfuid]['3'] = 0;
                 }
 
-                $return[$sday][$kfuid]['all'] = $return[$sday][$kfuid]['1'] + $return[$sday][$kfuid]['2'] + $return[$sday][$kfuid]['3'];
-                if ($return[$sday][$kfuid]['all']) {
+                $return[$sday][$kfuid]['all'] = intval($return[$sday][$kfuid]['1']) + intval($return[$sday][$kfuid]['2']) + intval($return[$sday][$kfuid]['3']);
+
+                if ($return[$sday][$kfuid]['all'] > 0) {
                     $return[$sday][$kfuid]['s1p'] = floatPointDigit($return[$sday][$kfuid]['1'] / $return[$sday][$kfuid]['all']);
                     $return[$sday][$kfuid]['s2p'] = floatPointDigit($return[$sday][$kfuid]['2'] / $return[$sday][$kfuid]['all']);
                     $return[$sday][$kfuid]['s3p'] = floatPointDigit($return[$sday][$kfuid]['3'] / $return[$sday][$kfuid]['all']);