12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- <?php
- /**
- * Created by PhpStorm.
- * User: zilongs
- * Date: 20-10-5
- * Time: 下午3:37
- */
- namespace App\Models;
- class ImMessage extends BaseModel
- {
- protected $table='im_message';
- public static function getChatRecord($order_id)
- {
- $order = Order::select(['docter_id', 'user_id', 'receiving_time', 'end_time'])->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();
- if (!empty($data)) {
- $data = $data->toArray();
- $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;
- }
- }
|