where('id', $order_id)->first(); $docterImId = 'doctor_'.$order['docter_id']; $userImId = 'member_'.$order['user_id']; $data = []; $start_time = $order['receiving_time']*1000; if (!empty($start_time)) { $end_time = !empty($order['end_time']) ? $order['end_time'] : time(); $end_time = $end_time*1000; $data = ImMessage::whereIn('senderId', [$docterImId, $userImId])->whereIn('receiverId', [$docterImId, $userImId])->whereBetween('timestamp', [$start_time, $end_time])->orderBy('timestamp', 'asc')->get()->toArray(); if (!empty($data)) { $user = User::select(['nickname', 'avatar'])->where('id', $order['user_id'])->first(); $docter = Docter::select(['name', 'avatar'])->where('id', $order['docter_id'])->first(); foreach ($data as $k => &$v) { if ($v['senderId'] == $userImId) { $v['sender_name'] = $user['nickname']; $v['sender_avatar'] = $user['avatar']; } else { $v['sender_name'] = $docter['name']; $v['sender_avatar'] = $docter['avatar']; } } } } return $data; } }