|
@@ -190,7 +190,35 @@ class Events
|
|
|
//获取在线客服列表
|
|
//获取在线客服列表
|
|
|
public static function getkfonlines()
|
|
public static function getkfonlines()
|
|
|
{
|
|
{
|
|
|
|
|
+ $return = [
|
|
|
|
|
+ 'message_type' => 'onlinekfs',
|
|
|
|
|
+ 'data' => [],
|
|
|
|
|
+ ];
|
|
|
|
|
+ $nowkfid = isset($_SESSION['uid']) ? $_SESSION['uid'] : 0;
|
|
|
|
|
+ $fromgrouupid = isset($_SESSION['group']) ? $_SESSION['group'] : 0;
|
|
|
|
|
+
|
|
|
|
|
+ if (empty($fromgrouupid) || empty($nowkfid)) {
|
|
|
|
|
+ return $return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $online = self::getOnlineKfData(0, 1);
|
|
|
|
|
+
|
|
|
|
|
+ if (empty($online)) {
|
|
|
|
|
+ return $return;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ $groupnamemap = self::$global->groupmap;
|
|
|
|
|
+ $ret = [];
|
|
|
|
|
+
|
|
|
|
|
+ foreach ($online as $uinfo) {
|
|
|
|
|
+ if ($nowkfid == $uinfo['id']) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ $ret[] = ['groupid' => $uinfo['group'], 'groupname' => $groupnamemap[$uinfo['group']], 'kfuid' => $uinfo['id'], 'kfname' => $uinfo['name'], 'kfjobname' => $uinfo['job_name']];
|
|
|
|
|
+ }
|
|
|
|
|
+ $return['data'] = $ret;
|
|
|
|
|
+
|
|
|
|
|
+ return $return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -470,16 +498,18 @@ class Events
|
|
|
$kfid = self::getkfid($uid);
|
|
$kfid = self::getkfid($uid);
|
|
|
$now = time();
|
|
$now = time();
|
|
|
$starttime = $now - 86400 * 7;
|
|
$starttime = $now - 86400 * 7;
|
|
|
- $serlogs = self::$db->select('servicelog_id')->from('ws_service_log')->where(" start_time>=$starttime kf_id=$kfid AND status !=2 ")->query();
|
|
|
|
|
|
|
+ $serlogs = self::$db->select('servicelog_id')->from('ws_service_log')->where(" start_time>=$starttime and kf_id=$kfid AND status !=2 ")->query();
|
|
|
|
|
|
|
|
if (!empty($user_info)) {
|
|
if (!empty($user_info)) {
|
|
|
- foreach ($user_info as $val) {
|
|
|
|
|
|
|
+ foreach ($user_info as $val => $serverid) {
|
|
|
self::MySendMsg($val, json_encode(['message_type' => 'serviceoffline', 'msg' => '客户人员下线!'], 256));
|
|
self::MySendMsg($val, json_encode(['message_type' => 'serviceoffline', 'msg' => '客户人员下线!'], 256));
|
|
|
Gateway::closeClient($val);
|
|
Gateway::closeClient($val);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- self::$db->query("update `ws_service_log` set `status` = '2',end_time=$now,`servicelog_close_type` = 4 where kf_id=$uiiid and group_id=$group and `status`!=2 ");
|
|
|
|
|
|
|
+ $sql = "update `ws_service_log` set `status` = '2',end_time=$now,`servicelog_close_type` = 4 where start_time>=$starttime and kf_id=$kfid and group_id=$group and `status`!=2 ";
|
|
|
|
|
+ echo "客服退出: " . $sql . "\n";
|
|
|
|
|
+ self::$db->query($sql);
|
|
|
self::$db->update('ws_users')->cols(array('online_status' => 0, 'online_connectid' => ''))->where('id=' . $kfid)->query();
|
|
self::$db->update('ws_users')->cols(array('online_status' => 0, 'online_connectid' => ''))->where('id=' . $kfid)->query();
|
|
|
self::writeLogKfStatus($uid, 0);
|
|
self::writeLogKfStatus($uid, 0);
|
|
|
|
|
|
|
@@ -591,7 +621,6 @@ class Events
|
|
|
// 指定用指定组 [可能存在断线重连的情况] 如果存在旧的会话,直接连线客服和用户
|
|
// 指定用指定组 [可能存在断线重连的情况] 如果存在旧的会话,直接连线客服和用户
|
|
|
//否则按先到后到以及客服最大服务数限制
|
|
//否则按先到后到以及客服最大服务数限制
|
|
|
$last = self::UserHasOldTalk($uid);
|
|
$last = self::UserHasOldTalk($uid);
|
|
|
- echo "last-> " . print_r($last, true) . "\n";
|
|
|
|
|
if ($last) {
|
|
if ($last) {
|
|
|
self::BeginTalk(self::getkfuid($last['kf_id']), $uid, $last['group_id'], $last['servicelog_id']);
|
|
self::BeginTalk(self::getkfuid($last['kf_id']), $uid, $last['group_id'], $last['servicelog_id']);
|
|
|
return;
|
|
return;
|