public function handle_request_internal() { header("Access-Control-Allow-Origin: *"); $brokerId = $this->_params['brokerId']; $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } //根据区域代码查询经纪人 $brokerArea = $brokerInfo->areaCode; $brokerInfoTmp = Model_Broker_AjkBrokerExtend::getDataByAreaCodeAll($brokerArea); //提取经纪人ID $brokerIds = $brokerInfos = array(); foreach ($brokerInfoTmp as $value) { if ($value->brokerId != $brokerId) { $brokerIds[] = $value->brokerId; $brokerInfos[$value->brokerId] = $value; } } //批量查询微聊信息 $chatInfos = Bll_Mobile_ChatInfoBll::getInstance()->GetChatInfoByIds($brokerIds); //根据微聊信息筛选经纪人,去除微聊信息为空的经纪人 $brokers = array(); foreach ($chatInfos as $chatInfo) { if ($brokerInfos[$chatInfo['brokerId']]->checkState != 1) { continue; } $re = array(); $re['brokerId'] = $chatInfo['brokerId']; $re['trueName'] = $brokerInfos[$chatInfo['brokerId']]->trueName; $re['userMobile'] = $brokerInfos[$chatInfo['brokerId']]->userMobile; $re['companyInfo'] = $brokerInfos[$chatInfo['brokerId']]->company; $re['userPhoto'] = Util_ImageUtils::get_broker_photo_url($brokerInfos[$chatInfo['brokerId']]->userPhoto, '200x200'); $re['chatId'] = $chatInfo['chatId']; $re['twoCodeIcon'] = $chatInfo['twoCodeIcon']; $brokers[] = $re; } foreach ($brokers as $broker) { $brokerCompany[] = $broker['company']; } //按公司排序 array_multisort($brokerCompany, $brokers); $keyReturn = array(); foreach ($brokers as $broker) { $keyReturn[$broker['companyInfo']]['company'] = $broker['companyInfo']; $keyReturn[$broker['companyInfo']]['broker'][] = $broker; } $brokerList = array_values($keyReturn); return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('brokerList' => $brokerList)); }