|
@@ -42,7 +42,7 @@ class Kefu extends BaseController
|
|
|
$page = $params['page'] ?? 1;
|
|
$page = $params['page'] ?? 1;
|
|
|
$limit = $params['limit'] ?? 15;
|
|
$limit = $params['limit'] ?? 15;
|
|
|
$query = KefuWork::alias('kefu_work')->join('admin', 'kefu_work.admin_id = admin.id', 'left')
|
|
$query = KefuWork::alias('kefu_work')->join('admin', 'kefu_work.admin_id = admin.id', 'left')
|
|
|
- ->join('user', 'admin.id = user.uid', 'left')
|
|
|
|
|
|
|
+ ->join('user', 'kefu_work.admin_id = user.uid', 'left')
|
|
|
->where('kefu_work.created_at', '>=', date('Y-m-d 00:00:00'));
|
|
->where('kefu_work.created_at', '>=', date('Y-m-d 00:00:00'));
|
|
|
|
|
|
|
|
if (isset($params['is_online']) && $params['is_online'] != '') {
|
|
if (isset($params['is_online']) && $params['is_online'] != '') {
|
|
@@ -50,8 +50,9 @@ class Kefu extends BaseController
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$count = $query->count();
|
|
$count = $query->count();
|
|
|
- $list = $query->field(['distinct admin.id','admin.id as admin_id', 'admin.nickname','user.is_online', 'kefu_work.chat_num','kefu_work.transfer_num','kefu_work.intervention_num','kefu_work.completed_num'])
|
|
|
|
|
- ->order('admin.id', 'asc')
|
|
|
|
|
|
|
+ $list = $query->field([' kefu_work.id', 'admin.nickname','user.is_online', 'kefu_work.chat_num','kefu_work.transfer_num','kefu_work.intervention_num','kefu_work.completed_num'])
|
|
|
|
|
+ ->order('user.is_online', 'desc')
|
|
|
|
|
+ ->group('kefu_work.id')
|
|
|
->limit($limit)
|
|
->limit($limit)
|
|
|
->page($page)
|
|
->page($page)
|
|
|
->select();
|
|
->select();
|
|
@@ -200,6 +201,8 @@ class Kefu extends BaseController
|
|
|
|
|
|
|
|
//更新客服接线数量
|
|
//更新客服接线数量
|
|
|
User::where('user_id', $cs_uid)->update(['chat_num'=>Db::raw('chat_num+1')]);
|
|
User::where('user_id', $cs_uid)->update(['chat_num'=>Db::raw('chat_num+1')]);
|
|
|
|
|
+ //客服接线次数更新
|
|
|
|
|
+ KefuWork::addNum($this->admin_id, 'chat_num');
|
|
|
|
|
|
|
|
$friend = Friend::where('create_user', $user_id)->order('create_time', 'desc')->find();
|
|
$friend = Friend::where('create_user', $user_id)->order('create_time', 'desc')->find();
|
|
|
if ($friend) {
|
|
if ($friend) {
|
|
@@ -211,8 +214,6 @@ class Kefu extends BaseController
|
|
|
Message::where(['from_user' => $robot_id, 'to_user' => $user_id])->update(['from_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
Message::where(['from_user' => $robot_id, 'to_user' => $user_id])->update(['from_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- KefuWork::addNum($this->admin_id, 'chat_num');//客服接线次数更新
|
|
|
|
|
-
|
|
|
|
|
Db::commit();
|
|
Db::commit();
|
|
|
//通知客服已接线
|
|
//通知客服已接线
|
|
|
wsSendMsg(0,'handleChat',['user_id'=>$user_id]);
|
|
wsSendMsg(0,'handleChat',['user_id'=>$user_id]);
|
|
@@ -244,6 +245,8 @@ class Kefu extends BaseController
|
|
|
$user->save();
|
|
$user->save();
|
|
|
//更新客服接线数量
|
|
//更新客服接线数量
|
|
|
User::where('user_id', $cs_uid)->update(['chat_num'=>Db::raw('chat_num+1')]);
|
|
User::where('user_id', $cs_uid)->update(['chat_num'=>Db::raw('chat_num+1')]);
|
|
|
|
|
+ //客服接线次数更新
|
|
|
|
|
+ KefuWork::addNum($admin_id, 'chat_num');
|
|
|
|
|
|
|
|
$friend = Friend::where('create_user', $user_id)->order('create_time', 'desc')->find();
|
|
$friend = Friend::where('create_user', $user_id)->order('create_time', 'desc')->find();
|
|
|
if ($friend) {
|
|
if ($friend) {
|
|
@@ -251,17 +254,12 @@ class Kefu extends BaseController
|
|
|
$friend->friend_user_id = $cs_uid;
|
|
$friend->friend_user_id = $cs_uid;
|
|
|
$friend->save();
|
|
$friend->save();
|
|
|
|
|
|
|
|
- //更新客服接线数量
|
|
|
|
|
- User::where('user_id', $old_cs_uid)->update(['chat_num'=>Db::raw('chat_num-1')]);
|
|
|
|
|
-
|
|
|
|
|
$chat_identify = $cs_uid . '-' . $user_id;
|
|
$chat_identify = $cs_uid . '-' . $user_id;
|
|
|
Message::where(['from_user' => $user_id, 'to_user' => $old_cs_uid])->update(['to_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
Message::where(['from_user' => $user_id, 'to_user' => $old_cs_uid])->update(['to_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
|
Message::where(['from_user' => $old_cs_uid, 'to_user' => $user_id])->update(['from_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
Message::where(['from_user' => $old_cs_uid, 'to_user' => $user_id])->update(['from_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
|
- KefuTime::endData($old_cs_uid, 3); //结束接线时间
|
|
|
|
|
|
|
+ KefuTime::endData($admin_id, 3, $old_cs_uid); //结束接线时间
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- KefuWork::addNum($admin_id, 'chat_num');//客服接线次数更新
|
|
|
|
|
-
|
|
|
|
|
Db::commit();
|
|
Db::commit();
|
|
|
//通知客服已接线
|
|
//通知客服已接线
|
|
|
wsSendMsg(0,'handleChat',['user_id'=>$user_id]);
|
|
wsSendMsg(0,'handleChat',['user_id'=>$user_id]);
|
|
@@ -307,22 +305,19 @@ class Kefu extends BaseController
|
|
|
Db::startTrans();
|
|
Db::startTrans();
|
|
|
$user_id = $this->request->param('user_id');
|
|
$user_id = $this->request->param('user_id');
|
|
|
|
|
|
|
|
- $user = User::where('user_id', $user_id)->find();
|
|
|
|
|
|
|
+ $user = User::where('user_id', $user_id)->where('role', 0)->find();
|
|
|
if (!$user) {
|
|
if (!$user) {
|
|
|
return $this->error('用户不存在');
|
|
return $this->error('用户不存在');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if ($user->service_status != 3) {
|
|
if ($user->service_status != 3) {
|
|
|
- KefuTime::endData($user->cs_uid, 3); //结束接线时间
|
|
|
|
|
|
|
+ KefuTime::endData($user->uid, 3, $user->cs_uid); //结束接线时间
|
|
|
$old_cs_uid = $user->cs_uid;
|
|
$old_cs_uid = $user->cs_uid;
|
|
|
- //更新客服接线数量
|
|
|
|
|
- User::where('user_id', $old_cs_uid)->update(['chat_num'=>Db::raw('chat_num-1')]);
|
|
|
|
|
|
|
|
|
|
//转成机器人聊天
|
|
//转成机器人聊天
|
|
|
$user->service_status = -1;
|
|
$user->service_status = -1;
|
|
|
$user->service_time = 0;
|
|
$user->service_time = 0;
|
|
|
- $autoTask = \app\manage\model\Config::autoTask();
|
|
|
|
|
- $user->cs_uid = isset($autoTask['user_id']) ? $autoTask['user_id'] : 0;
|
|
|
|
|
|
|
+ $user->cs_uid = getAutoCsUid();//获取机器人ID
|
|
|
$user->save();
|
|
$user->save();
|
|
|
|
|
|
|
|
$cs_uid = $user->cs_uid;
|
|
$cs_uid = $user->cs_uid;
|
|
@@ -334,9 +329,8 @@ class Kefu extends BaseController
|
|
|
$friend->save();
|
|
$friend->save();
|
|
|
|
|
|
|
|
$chat_identify = $cs_uid . '-' . $user_id;
|
|
$chat_identify = $cs_uid . '-' . $user_id;
|
|
|
- Message::where(['from_user' => $user_id, 'to_user' => $old_cs_uid])->update(['to_user' => $cs_uid, 'chat_identify' => $chat_identify]);
|
|
|
|
|
- Message::where(['from_user' => $old_cs_uid, 'to_user' => $user_id])->update(['from_user' => $cs_uid, 'chat_identify' => $chat_identify]);
|
|
|
|
|
- KefuTime::endData($old_cs_uid, 3); //结束接线时间
|
|
|
|
|
|
|
+ Message::where(['from_user' => $user_id, 'to_user' => $old_cs_uid])->update(['to_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
|
|
|
+ Message::where(['from_user' => $old_cs_uid, 'to_user' => $user_id])->update(['from_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
Db::commit();
|
|
Db::commit();
|
|
@@ -355,7 +349,10 @@ class Kefu extends BaseController
|
|
|
'content' => Config::getFieldValue('kefu_finished_chat'),
|
|
'content' => Config::getFieldValue('kefu_finished_chat'),
|
|
|
'file_id' => 0,
|
|
'file_id' => 0,
|
|
|
'is_group' => 0,
|
|
'is_group' => 0,
|
|
|
- 'user_id' => $user->cs_uid,
|
|
|
|
|
|
|
+ 'user_id' => $cs_uid,
|
|
|
|
|
+ 'extends' => json_encode([
|
|
|
|
|
+ 'cs_uid' => $old_cs_uid,
|
|
|
|
|
+ ]),
|
|
|
];
|
|
];
|
|
|
Message::sendMsg($param, 0);
|
|
Message::sendMsg($param, 0);
|
|
|
}
|
|
}
|