first(); if ($userModel) { if ($userModel->password == md5($password)) { return [ 'token' => $userModel->id, 'user_info' => $userModel ]; } else { return false; } } else { return false; } } public function register($username, $password, $nickName, $avatar) { $userModel = UserModel::create([ 'username' => $username, 'avatar' => $avatar, 'password' => md5($password), 'nick_name' => $nickName, 'created_at' => time() ]); return [ 'token' => $userModel->id, 'user_info' => $userModel ]; } public function userList() { $userModel = UserModel::where('id', '<>', $this->userId)->get(); if (empty($userModel)) { return []; } $myRooms = ChatRoomUserModel::where('user_id', $this->userId)->pluck('chat_room_id'); $allRooms = ChatRoomUserModel::where('user_id', '<>', $this->userId)->whereIn('chat_room_id', $myRooms)->get(); $roomsMap = array_column($allRooms->toArray(), 'chat_room_id', 'user_id'); $userModel = $userModel->toArray(); $gatewayClient = GatewayClientService::getInstance()->init(); foreach ($userModel as &$v) { $v['is_uid_online'] = $gatewayClient->isUidOnline($v['id']); $v['chat_room_id'] = !empty($roomsMap[$v['id']])? $roomsMap[$v['id']] : 0; } return $userModel; } }