Эх сурвалжийг харах

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

# Conflicts:
#	vendor/GatewayWorker_windows/Applications/whisper/Events.php
vali 6 жил өмнө
parent
commit
fdd39e4178

+ 28 - 6
application/admin/controller/Messages.php

@@ -27,13 +27,13 @@ class Messages extends Base
                 $start = strtotime($param['start']);
                 $end = strtotime($param['end'] . ' 23:59:59');
             }
-//            $join   = [
-//                'accounts b'      => 'a.account_id = b.id',
-//            ];
+            $join   = [
+                'messagetype b'      => 'a.type_id = b.id',
+            ];
             $leftjoin   = [
                 'users c'      => 'a.user_id = c.id',
             ];
-            $result = model('Accountsmessage')->selectJoin($leftjoin,$where, $start,$end,$offset, $limit);
+            $result = model('Accountsmessage')->selectJoin($join,$leftjoin,$where, $start,$end,$offset, $limit);
             foreach($result as $key=>$vo){
 
                 // 优化显示附件
@@ -91,8 +91,9 @@ class Messages extends Base
             $param = input('post.');
             $id = $param['id'];
             $if_public = $param['if_public'];
+            $type_id = $param['type_id'];
             try{
-                db('accountsmessage')->where('message_id', $id)->update(['if_public' => $if_public]);
+                db('accountsmessage')->where('message_id', $id)->update(['if_public' => $if_public,'type_id' => $type_id]);
             }catch(\Exception $e){
                 return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
             }
@@ -106,6 +107,8 @@ class Messages extends Base
         //$info['account_email'] = $account['account_email'];
         $info['user_name'] = $user['user_name'];
 
+        $messagetype = db('messagetype')->select();
+
         // 优化显示附件
         $images = $info['image'];
         //转换成数组格式
@@ -135,12 +138,28 @@ class Messages extends Base
 
         $this->assign([
             'info' => $info,
+            'messagetype' => $messagetype,
             'status' => config('kf_status'),
 //            'groups' => db('groups')->select()
         ]);
         return $this->fetch();
     }
 
+    //删除留言
+    public function delMessage(){
+        if (request()->isAjax()) {
+            //留言类型id
+            $id = input('param.id/d');
+
+            try {
+                db('accountsmessage')->where('message_id', $id)->delete();
+            } catch (\Exception $e) {
+                return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
+            }
+            return json(['code' => 1, 'data' => '', 'msg' => '删除留言成功']);
+        }
+    }
+
     // 上传客服头像
     public function upAvatar()
     {
@@ -161,13 +180,16 @@ class Messages extends Base
         }
     }
 
-    // 生成按钮
+    // 生成留言操作按钮
     private function makeBtn($id)
     {
         $operate = '<a href="' . url('Messages/detail', ['id' => $id]) . '">';
 
         $operate .= '<button type="button" class="btn btn-info btn-sm"><i class="fa fa-institution"></i> 详情</button></a>';
 
+        $operate .= '<a href="javascript:messageDel(' . $id . ')"><button type="button" class="btn btn-danger btn-sm">';
+        $operate .= '<i class="fa fa-trash-o"></i> 删除</button></a> ';
+
         return $operate;
     }
 

+ 7 - 8
application/admin/model/Accountsmessage.php

@@ -20,17 +20,16 @@ class Accountsmessage extends Model
      * @param mixed $order 排序
      * @return array 返回类型
      */
-    public function selectJoin($leftjoin, $where=[],$start,$end, $offset='', $limit='', $order=['a.message_id'=>'desc'])
+    public function selectJoin($join,$leftjoin, $where=[],$start,$end, $offset='', $limit='', $order=['a.message_id'=>'desc'])
     {
         $result = $this;
         $result = $result->alias('a');
-        $result = $result->field('a.message_id,a.name,a.email,a.content,a.add_time,a.message_status,a.user_id,a.dealWith_time,a.image,a.phone,a.qq,a.wechat,a.if_public,c.user_name');
-//        if (empty($join) === false) {
-//            $result = $result->alias('a');
-//            foreach ($join as $k => $v) {
-//                $result = $result->join($k, $v);
-//            }
-//        }
+        $result = $result->field('a.message_id,a.name,a.email,a.content,a.add_time,a.message_status,a.user_id,a.dealWith_time,a.image,a.phone,a.qq,a.wechat,a.if_public,a.reply_content,b.name as type_name,c.user_name');
+        if (empty($join) === false) {
+            foreach ($join as $k => $v) {
+                $result = $result->join($k, $v,'LEFT');
+            }
+        }
 
         if (empty($leftjoin) === false) {
             foreach ($leftjoin as $k => $v) {

+ 26 - 7
application/admin/view/messages/detail.html

@@ -37,7 +37,7 @@
                         <div class="form-group">
                             <label class="col-sm-3 control-label">内容:</label>
                             <div class="input-group col-sm-4">
-                                <input id="content" type="text" class="form-control" name="user_pwd" value="{$info['content']}" readonly="readonly">
+                                <input id="content" type="text" class="form-control" name="content" value="{$info['content']}" readonly="readonly">
                             </div>
                         </div>
                         <div class="form-group layui-form-item form-inline" style="">
@@ -51,7 +51,7 @@
                         <div class="form-group">
                             <label class="col-sm-3 control-label">手机:</label>
                             <div class="input-group col-sm-4">
-                                <input id="phone" type="text" class="form-control" name="user_pwd" value="{$info['phone']}" readonly="readonly">
+                                <input id="phone" type="text" class="form-control" name="phone" value="{$info['phone']}" readonly="readonly">
                             </div>
                         </div>
                         <div class="form-group">
@@ -63,13 +63,19 @@
                         <div class="form-group">
                             <label class="col-sm-3 control-label">当前状态:</label>
                             <div class="input-group col-sm-4">
-                                <input id="message_status" type="text" class="form-control" name="user_pwd" value="{$info['message_status']}" readonly="readonly">
+                                <input id="message_status" type="text" class="form-control" name="message_status" value="{$info['message_status']}" readonly="readonly">
                             </div>
                         </div>
                         <div class="form-group">
                             <label class="col-sm-3 control-label">处理人:</label>
                             <div class="input-group col-sm-4">
-                                <input id="user_name" type="text" class="form-control" name="user_pwd" value="{$info['user_name']}" readonly="readonly">
+                                <input id="user_name" type="text" class="form-control" name="user_name" value="{$info['user_name']}" readonly="readonly">
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">处理人:</label>
+                            <div class="input-group col-sm-4">
+                                <input id="reply_content" type="text" class="form-control" name="reply_content" value="{$info['reply_content']}" readonly="readonly">
                             </div>
                         </div>
                         <div class="form-group">
@@ -78,6 +84,20 @@
                                 <input id="dealWith_time" type="text" class="form-control" name="user_pwd" value="{$info['dealWith_time']}" readonly="readonly">
                             </div>
                         </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">选择留言类型:</label>
+                            <input type="hidden" id="type_id" name="type_id" value="-1"/>
+                            <div class="input-group col-sm-4 layui-form">
+                                <select lay-verify="required" lay-filter="type">
+                                    <option value="-1">选择留言类型</option>
+                                    {if !empty($messagetype)}
+                                    {foreach name="messagetype" item="vo"}
+                                    <option value="{$vo['id']}">{$vo['name']}</option>
+                                    {/foreach}
+                                    {/if}
+                                </select>
+                            </div>
+                        </div>
                         <div class="form-group">
                             <label class="col-sm-3 control-label">是否公开:</label>
                             <div class="input-group col-sm-4">
@@ -85,7 +105,6 @@
                                 <input id="public" type="radio" class="form-control" name="if_public" value="1" {$info['if_public']==1?'checked':''} title="公开">
                             </div>
                         </div>
-
                         <div class="form-group">
                             <div class="col-sm-4 col-sm-offset-6" style="margin-left: 25%;">
                                 <a class="layui-btn layui-btn-sm lay-btn-diy" href="javascript:history.go(-1)" style="background-color:#1E9FFF;margin-bottom: 5px;height: 35px;line-height: 35px;">返回</a>
@@ -131,8 +150,8 @@
             }
         });
 
-        form.on('select(group)', function(value){
-            $("#group_id").val(value.value);
+        form.on('select(type)', function(value){
+            $("#type_id").val(value.value);
         });
     });
 

+ 6 - 4
application/admin/view/messages/index.html

@@ -45,14 +45,16 @@
                         <thead>
                         <th class="user_name" id="user_name" data-field="name">用户名称</th>
                         <th class="add_time" id="add_time" data-field="add_time">留言时间</th>
-                        <th data-field="content">内容</th>
+                        <th data-field="content">留言内容</th>
                         <th data-field="image">附件</th>
                         <th data-field="phone">手机</th>
                         <th data-field="email">邮箱</th>
                         <th data-field="status">当前状态</th>
                         <th data-field="user_name">处理人</th>
+                        <th data-field="reply_content">回复内容</th>
                         <th data-field="dealWith_time">处理时间</th>
                         <th data-field="if_public">公开状态</th>
+                        <th data-field="type_name">类型</th>
                         <th data-field="operate">操作</th>
                         </thead>
                     </table>
@@ -130,10 +132,10 @@
 
     });
 
-    function userDel(id){
-        layer.confirm('确认删除此客服?', {icon: 3, title:'提示'}, function(index){
+    function messageDel(id){
+        layer.confirm('确认删除此留言?', {icon: 3, title:'提示'}, function(index){
             //do something
-            $.getJSON("{:url('users/delUser')}", {'id' : id}, function(res){
+            $.getJSON("{:url('Messages/delMessage')}", {'id' : id}, function(res){
                 if(1 == res.code){
                     layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
                         initTable();

+ 23 - 16
application/common/KfjkLogic.php

@@ -34,13 +34,14 @@ class KfjkLogic
             return false;
         }
         $todayall = $this->getTodayServiceData($kfuidarray);
+
         if (!$todayall) {
             return false;
         }
-        $kfuidarray_index = kftoKey($kfuidarray, 1);
 
+        $kfuidarray_index = kftoKey($kfuidarray, 1);
 
-        $uids = $kfuidarray ;
+        $uids = $kfuidarray;
         $hyl = $this->hyl($kfuidarray, $todayall);
         $jdl = $this->jdl($kfuidarray, $todayall);
         $pjhysc = $this->pjhusc($kfuidarray, $todayall);
@@ -54,8 +55,8 @@ class KfjkLogic
             $kfuidarray_index[$uid]['cpl'] = $cpl[$uid];
         }
 
-        $last = [] ;
-        foreach ( $kfuidarray_index as $val){
+        $last = [];
+        foreach ($kfuidarray_index as $val) {
             $last[] = $val;
         }
 
@@ -84,13 +85,14 @@ class KfjkLogic
     {
         $rets = kftoKey($uidArray);
 
-        foreach ($rets as $uid) {
+        foreach ($rets as $uid => $aaaa) {
             foreach ($alllogs as $log) {
-                if ($uid == $log['kf_id']) {
+                if ($uid == $log['kf_id'] && $log['status'] == 2) {
                     $rets[$uid]++;
                 }
             }
         }
+
         return $rets;
     }
 
@@ -99,7 +101,7 @@ class KfjkLogic
     public function jdl($uidArray, $alllogs)
     {
         $rets = kftoKey($uidArray);
-        foreach ($rets as $uid) {
+        foreach ($rets as $uid => $aaa) {
             foreach ($alllogs as $log) {
                 if ($uid == $log['kf_id']) {
                     $rets[$uid]++;
@@ -112,14 +114,16 @@ class KfjkLogic
     //平均会话时长 统计
     public function pjhusc($uidArray, $alllogs)
     {
-
         $rets = kftoKey($uidArray, 1);
 
-        foreach ($rets as $uid) {
+        foreach ($rets as $uid => $aaa) {
             foreach ($alllogs as $log) {
-                if ($uid == $log['kf_id'] && $log['status'] == 2) {
-                    $rets[$uid]['count']++;
-                    $rets[$uid]['times'] += ($log['end_time'] - $log['start_time']);
+                //if ($uid == $log['kf_id'] && $log['status'] == 2) {
+                if ($uid == $log['kf_id']) {
+                    (!isset($rets[$uid]['count'])) ? ($rets[$uid]['count'] = 1) : $rets[$uid]['count']++;
+
+                    (!isset($rets[$uid]['times'])) ? ($rets[$uid]['times'] = 0) : ($log['end_time'] - $log['start_time']);
+
                 }
             }
         }
@@ -127,7 +131,7 @@ class KfjkLogic
         $return = [];
         foreach ($rets as $uid => $val) {
             if (isset($rets[$uid]['count'])) {
-                $return[$uid] = $return[$uid]['times'] / $return[$uid]['count'];
+                $return[$uid] = $rets[$uid]['times'] / $rets[$uid]['count'];
             } else {
                 $return[$uid] = 0;
             }
@@ -140,12 +144,15 @@ class KfjkLogic
     //参评率
     public function cpl($uidArray, $alllogs)
     {
+
         $rets = kftoKey($uidArray, 1);
-        foreach ($rets as $uid) {
+        foreach ($rets as $uid => $aaa) {
             foreach ($alllogs as $log) {
                 if ($uid == $log['kf_id']) {
-                    $rets[$uid]['count']++;
-                    $rets[$uid]['pl'] += ($log['evaluate_id'] > 0 ? 1 : 0);
+
+                    !(isset($rets[$uid]['count'])) ? 1 : $rets[$uid]['count']++;
+                    isset($rets[$uid]['pl']) ? ($rets[$uid]['pl'] = ($log['evaluate_id'] > 0 ? 1 : 0)) : 0;
+
                 }
             }
         }

+ 68 - 0
application/index/controller/Message.php

@@ -0,0 +1,68 @@
+<?php
+namespace app\index\controller;
+
+use think\Controller;
+
+class Message extends Controller
+{
+    public function index()
+    {
+        // 留言知识库(默认查询前七天的留言)
+        $end = time();
+        $start = time()-604800;
+        if(request()->isPost()){
+            $time = input("param.time/s");
+            $key = input("param.key/s");
+            $type = input("param.type/s");
+            if($time == 'week'){
+                //前一周
+                $start = time()-604800;
+            }
+            if($time == 'oneMonth'){
+                //前一个月
+                $start = time()-2592000;
+            }
+            if($time == 'threeMonth'){
+                //前三个月
+                $start = time()-7776000;
+            }
+            if(!empty($start_time)){
+                $start = strtotime($start_time);
+            }
+            if(!empty($end_time)){
+                $end = strtotime($end_time . ' 23:59:59');
+            }
+
+            $where  = array();
+            if(!empty($type)){
+                $type_id = db('messagetype')->where('name', $type)->find();
+                if(!empty($type)){
+                    $where['type_id'] = $type_id['id'];
+                }
+            }
+        }
+        if(!empty($key)){
+            $message = db('accountsmessage')->whereBetween('add_time', [$start, $end])->where($where)->whereLike('content','%'.$key.'%')->where('if_public', 1)->select();
+        }else{
+            $message = db('accountsmessage')->whereBetween('add_time', [$start, $end])->where($where)->where('if_public', 1)->select();
+        }
+
+        $type = db('messagetype')->select();
+        foreach($message as $key=>$vo){
+            for($i=0;$i<count($type);$i++){
+                if($vo['type_id'] == $type[$i]['id']){
+                    $message[$key]['type_name'] = $type[$i]['name'];
+                }
+            }
+        }
+
+        $data = [
+            'status'=>1,
+            'msg'=>'成功',
+            'data'=>$message
+        ];
+
+        return json_encode($data,JSON_UNESCAPED_UNICODE);
+    }
+
+}

+ 6 - 6
application/index/controller/User.php

@@ -97,13 +97,13 @@ class User extends Controller
 //                return json(['code' => -2, 'data' => '', 'msg' => '邮箱不能为空']);
 //            }
 
-            if(empty($qq)){
-                return json(['code' => -3, 'data' => '', 'msg' => 'QQ不能为空']);
-            }
+//            if(empty($qq)){
+//                return json(['code' => -3, 'data' => '', 'msg' => 'QQ不能为空']);
+//            }
 
-            if(empty($wechat)){
-                return json(['code' => -4, 'data' => '', 'msg' => '微信不能为空']);
-            }
+//            if(empty($wechat)){
+//                return json(['code' => -4, 'data' => '', 'msg' => '微信不能为空']);
+//            }
 
             if(empty($content)){
                 return json(['code' => -5, 'data' => '', 'msg' => '内容不能为空']);