|
|
@@ -14,6 +14,7 @@ use app\admin\model\OperationData;
|
|
|
use app\admin\model\Department;
|
|
|
use app\admin\model\Config;
|
|
|
use app\admin\model\Score;
|
|
|
+use app\admin\model\KefuLog;
|
|
|
use app\enterprise\model\{Message,Friend};
|
|
|
use Exception;
|
|
|
use think\facade\Db;
|
|
|
@@ -215,6 +216,8 @@ class Kefu extends BaseController
|
|
|
User::where('user_id', $cs_uid)->update(['chat_num'=>Db::raw('chat_num+1')]);
|
|
|
//客服接线次数更新
|
|
|
KefuWork::addNum($this->admin_id, 'chat_num');
|
|
|
+ //客服对接记录表
|
|
|
+ KefuLog::addData($cs_uid, $user_id, 1);
|
|
|
|
|
|
$friend = Friend::where('create_user', $user_id)->order('create_time', 'desc')->find();
|
|
|
if ($friend) {
|
|
|
@@ -250,6 +253,7 @@ class Kefu extends BaseController
|
|
|
if (!$user) {
|
|
|
return $this->error('用户不存在');
|
|
|
}
|
|
|
+ $old_cs_uid = $user->cs_uid;
|
|
|
$admin_id = User::getAdminId($cs_uid);
|
|
|
$user->cs_uid = $cs_uid;
|
|
|
$user->service_status = 1;
|
|
|
@@ -260,10 +264,13 @@ class Kefu extends BaseController
|
|
|
User::where('user_id', $cs_uid)->update(['chat_num'=>Db::raw('chat_num+1')]);
|
|
|
//客服接线次数更新
|
|
|
KefuWork::addNum($admin_id, 'chat_num');
|
|
|
+ //客服对接记录表
|
|
|
+ KefuLog::endData($old_cs_uid, $user_id);
|
|
|
+ //客服对接记录表
|
|
|
+ KefuLog::addData($cs_uid, $user_id, 2);
|
|
|
|
|
|
$friend = Friend::where('create_user', $user_id)->order('create_time', 'desc')->find();
|
|
|
if ($friend) {
|
|
|
- $old_cs_uid = $friend->friend_user_id;
|
|
|
$friend->friend_user_id = $cs_uid;
|
|
|
$friend->save();
|
|
|
|
|
|
@@ -351,6 +358,11 @@ class Kefu extends BaseController
|
|
|
Message::where(['from_user' => $old_cs_uid, 'to_user' => $user_id])->update(['from_user' => $cs_uid, 'chat_identify' => $chat_identify, 'is_read' => 1]);
|
|
|
}
|
|
|
|
|
|
+ //客服对接记录表
|
|
|
+ KefuLog::endData($old_cs_uid, $user_id);
|
|
|
+ //客服对接记录表
|
|
|
+ KefuLog::addData($cs_uid, $user_id, 3);
|
|
|
+
|
|
|
Db::commit();
|
|
|
|
|
|
//通知关闭聊天框
|
|
|
@@ -414,4 +426,39 @@ class Kefu extends BaseController
|
|
|
return $this->success(['count' => $count, 'list' => $list]);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @api {get} 客服对接记录表
|
|
|
+ */
|
|
|
+ public function log()
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $params = $this->request->param();
|
|
|
+ $page = $params['page'] ?? 1;
|
|
|
+ $limit = $params['limit'] ?? 15;
|
|
|
+ $keyword = $params['keyword'] ?? '';
|
|
|
+ $cs_name = $params['cs_name'] ?? '';
|
|
|
+
|
|
|
+ $query = KefuLog::alias('log')
|
|
|
+ ->join('user', 'log.user_id = user.user_id', 'left')
|
|
|
+ ->join('user as kefu', 'log.cs_uid = kefu.user_id', 'left');
|
|
|
+ if ($keyword) {
|
|
|
+ $query = $query->where('user.realname|user.user_id', 'like', "%{$keyword}%");
|
|
|
+ }
|
|
|
+ if ($cs_name) {
|
|
|
+ $query = $query->where('kefu.realname|user.user_id', 'like', "%{$cs_name}%");
|
|
|
+ }
|
|
|
+
|
|
|
+ $count = $query->count();
|
|
|
+ $list = $query->field(['log.*','user.realname','user.avatar','kefu.realname as cs_name'])
|
|
|
+ ->order('id', 'desc')
|
|
|
+ ->limit($limit)
|
|
|
+ ->page($page)
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ } catch (Exception $e) {
|
|
|
+ return $this->error($e->getMessage());
|
|
|
+ }
|
|
|
+ return $this->success(['count' => $count, 'list' => $list]);
|
|
|
+ }
|
|
|
+
|
|
|
}
|