Bläddra i källkod

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

xiang 6 år sedan
förälder
incheckning
72eee7b1ed
2 ändrade filer med 367 tillägg och 7 borttagningar
  1. 361 3
      application/service/controller/Ext.php
  2. 6 4
      application/service/controller/Login.php

+ 361 - 3
application/service/controller/Ext.php

@@ -4,6 +4,16 @@ namespace app\service\controller;
 
 use think\cache\driver\Redis;
 use think\Request;
+use think\Db;
+
+use app\admin\model\Advertisement;
+use app\admin\model\Users;
+use app\admin\model\Admins;
+use app\admin\model\ServiceLog;
+use app\admin\model\ChatLog;
+
+use app\service\model\Alarm;
+use app\service\model\Accounts;
 
 /**
  * 客服系统 Event 接口
@@ -13,15 +23,363 @@ class Ext extends Common
     public function __construct(Request $request = null)
     {
         parent::__construct($request);
-
         // 验证token.
-        $this->verifyToken();
+        $this->doTokenCheck();
+    }
+
+    //获取广告数据
+    public function getAdinfo()
+    {
+        $model = new Advertisement();
+        $ret = $model->where('advertisement_status', 1)->select();
+        return json(['code' => 1, 'data' => $ret, 'msg' => '成功']);
+    }
+
+
+    //更具id获取客服信息
+    public function getKfbyid()
+    {
+        $id = intval(input('post.id', 0));
+        if (empty($id)) {
+            return json(['code' => 0, 'data' => [], 'msg' => '参数错误!']);;
+        }
+        $model = Users::get($id);
+        if ($model) {
+            return json(['code' => 1, 'data' => $model, 'msg' => '成功']);;
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => '无此用户']);;
+        }
+    }
+
+    //更具id获取 用户 信息
+    public function getUserbyid()
+    {
+        $id = intval(input('post.id', 0));
+        if (empty($id)) {
+            return json(['code' => 0, 'data' => [], 'msg' => '参数错误!']);;
+        }
+        $model = Accounts::get($id);
+        if ($model) {
+            return json(['code' => 1, 'data' => $model, 'msg' => '成功']);;
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => '无此用户']);;
+        }
+    }
+
+
+    //更具token 查管理员
+    public function getAdminbytoken()
+    {
+        $token = trim(input('post.token', ''));
+        if (empty($token)) {
+            return json(['code' => 0, 'data' => [], 'msg' => '参数错误!']);;
+        }
+        $model = new  Admins();
+        $model = $model->where('token', $token)->find();
+        if ($model) {
+            return json(['code' => 1, 'data' => $model, 'msg' => '成功']);;
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => '无此用户']);;
+        }
+    }
+
+
+    //更具工单ID查工单
+    public function getServerbyid()
+    {
+        $id = intval(input('post.id', 0));
+        if (empty($id)) {
+            return json(['code' => 0, 'data' => [], 'msg' => '参数错误!']);;
+        }
+        $model = ServiceLog::get($id);
+        if ($model) {
+            return json(['code' => 1, 'data' => $model, 'msg' => '成功']);;
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => '无此数据']);;
+        }
+    }
+
+    //添加工单
+    public function addService()
+    {
+        $datas = [
+            'user_id' => input('post.user_id', 0),
+            'client_id' => input('post.client_id', ''),
+            'user_name' => input('post.user_name', ''),
+            'user_avatar' => input('post.user_avatar', ''),
+            'user_ip' => input('post.user_ip', ''),
+            'kf_id' => input('post.kf_id', 0),
+            'start_time' => input('post.start_time', ''),
+            'group_id' => input('post.group_id', ''),
+            'website' => input('post.website', ''),
+            'system' => input('post.system', ''),
+            'browse' => input('post.browse', ''),
+            'intime' => input('post.intime', ''),
+            'status' => input('post.status', ''),
+            'evaluate_id' => input('post.evaluate_id', ''),
+            'servicelog_close_type' => input('post.servicelog_close_type', ''),
+        ];
+
+        $id = Db::name('service_log')->insertGetId($datas);
+
+        if ($id) {
+            return json(['code' => 1, 'data' => ['service_id' => $id], 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'fails!']);
+        }
+    }
+
+
+    //更新工单信息
+    public function updateServerlog()
+    {
+        $id = intval(input('post.id', 0));
+        if (empty($id)) {
+            return json(['code' => 0, 'data' => [], 'msg' => '参数错误!']);;
+        }
+        $model = ServiceLog::get($id);
+        if (!$model) {
+            return json(['code' => 0, 'data' => [], 'msg' => '无此数据']);
+        }
+        $datas = [
+            'status' => input('post.status', 1),
+            'evaluate_id' => input('post.evaluate_id', 1),
+            'evaluate_content' => input('post.evaluate_content', 1),
+            'servicelog_close_type' => input('post.servicelog_close_type', 0),
+        ];
+
+        $ret = $model->save($datas, ['servicelog_id' => $id]);
+        if ($ret) {
+            return json(['code' => 1, 'data' => [], 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'faile']);
+        }
+
+    }
+
+
+    //统计某个工单会话条数
+    public function getSRcount()
+    {
+        $id = input('post.id', 0);
+        $model = new ChatLog();
+        $count = $model->selectChatLog(['servicelog_id' => $id]);
+        return json(['code' => 1, 'data' => ['count' => $count], 'msg' => 'success']);
+    }
+
+    //初始化一条报警记录数据
+    public function addSArecord()
+    {
+        $id = intval(input('post.id', 0));
+        $model = new Alarm();
+        $model->servicelog_id = $id;
+        $ret = $model->save();
+        if ($ret) {
+            return json(['code' => 1, 'data' => ['alarm_id' => $model->alarm_id], 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'failse']);
+        }
+    }
+
+    //获取某个工单的报敬记录数据
+    public function getSAbyid()
+    {
+        $sid = intval(input('post.sid', 0));
+        $aid = intval(input('post.aid', 0));
+        $id = $sid ? $sid : $aid;
+        $fild = $sid ? 'servicelog_id' : 'alarm_id';
+        $where = ["$fild" => $id];
+
+        $model = new Alarm();
+        $record = $model->where($where)->find();
+
+        if ($record) {
+            return json(['code' => 1, 'data' => ['count' => $record], 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'faile']);
+        }
+
+    }
+
+
+    //更新报警数据
+    public function updateSArecord()
+    {
+        $id = intval(input('post.sid', 0));
+        if (empty($id)) {
+            return json(['code' => 0, 'data' => [], 'msg' => '参数错误!']);;
+        }
+        $model = Alarm::get(['servicelog_id' => $id]);
+        if (!$model) {
+            return json(['code' => 0, 'data' => [], 'msg' => '无此数据']);
+        }
+
+        $datas = [
+            'alarm_userSensitive' => input('post.alarm_userSensitive', 0),
+            'alarm_serverSensitive' => input('post.alarm_serverSensitive', 0),
+            'alarm_corresponding' => input('post.alarm_corresponding', 0),
+            'alarm_cvtOvertime' => input('post.alarm_cvtOvertime', 0),
+            'alarm_respond' => input('post.alarm_respond', 0),
+            'alarm_lineTime' => input('post.alarm_lineTime', 0),
+            'alarm_count' => input('post.alarm_count', 0),
+        ];
+
+        $ret = $model->save($datas, ['servicelog_id' => $id]);
+        if ($ret) {
+            return json(['code' => 1, 'data' => [], 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'faile']);
+        }
+    }
+
+
+    //查询统计中间表记录
+    public function countmidtabquery()
+    {
+        $dtype = input('post.dtype', '');
+        $mdate = input('post.mdate', date("Y-m-d"));
+
+        $ret = DB::name('countmidtable')->where(['dtype' => $dtype, 'mdate' => $mdate])->find();
+        if ($ret) {
+            return json(['code' => 1, 'data' => $ret, 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'faile']);
+        }
+
+    }
+
+
+    //更新或新增统计中间统计表
+    public function countmidtabupdate()
+    {
+        $id = input('post.id', 0);
+        $dtype = input('post.dtype', '');
+        $mdate = input('post.mdate', date("Y-m-d"));
+
+        $dcontent = input('post.dcontent', '');
+        $datatype = input('post.datatype', '');
+
+        $flag = intval(input('post.flag', 0));
+
+        if ($flag == 1) {
+            $ret = Db::table('ws_countmidtable')->update(['datatype' => $datatype, 'dcontent' => $dcontent, 'id' => $id]);
+        } else {
+            $ret = Db::table('ws_countmidtable')->insert(['dtype' => $dtype, 'mdate' => $mdate, 'dcontent' => $dcontent, 'datatype' => $datatype]);
+        }
+
+        if ($ret) {
+            return json(['code' => 1, 'data' => [], 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'fail']);
+        }
+
+    }
+
+
+    //获取系统配置
+    public function getsysconfig()
+    {
+        $all = Db::name("systemconfig")->select();
+        return json(['code' => 1, 'data' => $all, 'msg' => 'success']);
+    }
+
+
+    //获取所有分组信息
+    public function getgroups()
+    {
+        $all = Db::name("groups")->select();
+        return json(['code' => 1, 'data' => $all, 'msg' => 'success']);
+    }
+
+
+    //获取所有自动回答信息
+    public function wsreplay()
+    {
+        $type = intval(input('post.type', 1));
+        $all = Db::name("reply")->where('type', $type)->select();
+        return json(['code' => 1, 'data' => $all, 'msg' => 'success']);
+    }
+
+
+    //获取所有用户分组标签
+    public function accountlab()
+    {
+        $all = Db::name("accountslabel")->select();
+        return json(['code' => 1, 'data' => $all, 'msg' => 'success']);
+    }
+
+
+    //更新客服在线状态
+    public function upKfStatus()
+    {
+        $flag = intval(input('post.flag', -1));
+        $kfuid = trim(input('post.uid', ''));
+
+        if ($flag == 0) {
+            $ret = Db::name('kfonline')->where('uid', $kfuid)->delete();
+            if ($ret) {
+                return json(['code' => 1, 'data' => [], 'msg' => 'success']);
+            } else {
+                return json(['code' => 0, 'data' => [], 'msg' => 'fail']);
+            }
+        }
+
+        if ($flag == 1) {
+            $status = intval(input('post.status'));
+            $ip = trim(input('post.ip', ''));
+            $ret = Db::name('kfonline')->insert(['uid' => $kfuid, 'status' => $status, 'ip' => $ip, 'uptime' => date('Y-m-d H:i:s')]);
+            if ($ret) {
+                return json(['code' => 1, 'data' => [], 'msg' => 'success']);
+            } else {
+                return json(['code' => 0, 'data' => [], 'msg' => 'fail']);
+            }
+        }
+
+        if ($flag == 2) {
+            $status = intval(input('post.status'));
+            $ret = Db::name('kfonline')->where('uid', $kfuid)->update(['status' => $status]);
+            if ($ret) {
+                return json(['code' => 1, 'data' => [], 'msg' => 'success']);
+            } else {
+                return json(['code' => 0, 'data' => [], 'msg' => 'fail']);
+            }
+        }
+
+    }
+
+    public function batchupserverlog()
+    {
+        $kfid = input('post.kfid', '');
+
+        $t = strtotime("-7 day");
+        $now = time();
+
+        if ($kfid) {
+            $ret = Db::execute("update ws_service_log set status=2,end_time=$now where  start_time>=$t and  kf_id=$kfid and  status!=2");
+        } else {
+            $ret = Db::execute("update ws_service_log set status=2,end_time=$now where  start_time>=$t and  status!=2");
+        }
+
+        if ($ret) {
+            return json(['code' => 1, 'data' => [], 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'fail']);
+        }
     }
 
-    public function allConversation()
+    public function torobot()
     {
+        $groups_id = intval(input('post.groups_id'));
+        $robot_name = trim(input('post.robot_name'));
+        $robotgroups_id = intval(input('post.robotgroups_id'));
 
+        $ret = Db::name('robot')->field('robot_content')->where(['robot_status' => 1, 'groups_id' => $groups_id, 'robot_name' => $robot_name, 'robotgroups_id' => $robotgroups_id])->select();
 
+        if ($ret) {
+            return json(['code' => 1, 'data' => $ret, 'msg' => 'success']);
+        } else {
+            return json(['code' => 0, 'data' => [], 'msg' => 'fail']);
+        }
 
     }
 

+ 6 - 4
application/service/controller/Login.php

@@ -75,7 +75,7 @@ class Login extends Controller
         $verifySystem = isset($param['verifySystem']) ? $param['verifySystem'] : '';
         $verifySystemId = isset($param['verifySystemId']) ? $param['verifySystemId'] : '';
         $platformData = db('platform')->find();
-        if ($platformData['platform_status'] === 1 && empty($verifySystem) === false) {
+        if (empty($verifySystem) === false) {
             $appUserName = unlock_url($verifySystem, $platformData['platform_code']);
             $verifyData = json_encode([
                 'appUserName' => $appUserName,
@@ -89,7 +89,7 @@ class Login extends Controller
             }
             return json($backData);
         }
-        
+
         // 验证码验证.
         $securityCode = isset($param['securityCode']) ? $param['securityCode'] : '';
         $securityData = json_encode([
@@ -99,12 +99,12 @@ class Login extends Controller
         $securityToken = lock_url($securityData, $platformData['platform_code']);
         $platformUrl = $platformData['platform_url_code'] . '?backSystem=' . $securityToken . '&platformCode=' . $platformData['platform_code'];
         $backData = json_decode(make_request($platformUrl, ''), true);
-        if($this->_checkEnabledValid()==1){
+        if ($this->_checkEnabledValid() == 1) {
             if ($backData['code'] != 1) {
                 return json(['code' => -2, 'data' => [], 'msg' => '验证码错误']);
             }
         }
-        
+
 
         $this->assign([
             'token' => $token,
@@ -114,12 +114,14 @@ class Login extends Controller
 
         return json(['code' => 1, 'data' => ['user' => $user[0]], 'msg' => '登录成功']);
     }
+
     private function _checkEnabledValid()
     {
         $checkcode = db('platform')->where('platform_code', 'Customer-Service')->find();
         $chkcode = $checkcode ? $checkcode['platform_status'] : 1;
         return $chkcode;
     }
+
     public function loginOut()
     {