$records->lists(), 'count' => $records->count(), 'page_no' => $records->pageNo, 'page_size' => $records->pageSize, 'more' => is_more($records->count(), $records->pageNo, $records->pageSize) ]; // 当前在线的所有客服 $online = CommonChatlogic::getOnlineKefu(); // 后台在线客服状态 0-关闭 1-开启 $config = CommonChatlogic::getConfigSetting(); // 后台配置为 人工客服 if ($config != 1) { return [ 'config' => $config, 'kefu' => [], 'record' => $records ]; } // 上一个客服关系 $kefu = ChatRelation::where('user_id', $userId)->order('update_time desc')->findOrEmpty(); $kefuId = $kefu['kefu_id'] ?? 0; // 没有聊天记录(未与客服聊天) 或者 曾经的聊天客服不在线 if (empty($kefu) || ! in_array($kefuId, $online)) { // 随机分配客服 $randKufuIds = $online ? : Kefu::where('disable', 0)->column('id'); $rand = rand(0, count($randKufuIds) - 1); $kefuId = $randKufuIds[$rand]; } $kefu = Kefu::where('id', $kefuId)->field([ 'id', 'nickname', 'avatar' ])->findOrEmpty(); return [ 'config' => $config, 'kefu' => $kefu, 'record' => $records ]; } }