public function handle_request_internal() { $request = APF::get_instance()->get_request(); $params = $request->get_parameters(); $fields = array('commId', 'roomNum', 'hallNum', 'toiletNum', 'houseOri'); $apiParams = array(); foreach ($fields as $field) { if (!isset($params[$field])) { $this->responseJSON('error', array(), '参数不全'); return; } $apiParams[$field] = $params[$field]; } $data = array('MODELPIC' => array(), 'COMMPIC' => array()); $apiParams['houseOri'] = Bll_House_EsfPublish::getPropOrigin($apiParams['houseOri']); try { /** * @var $result Bll_Service_Client_HttpResponse */ $result = Bll_Service_Image::esfGetImgInfo($apiParams); if ($result->isFailed()) { $this->responseJSON('error', $data, '调用API超时'); return; } if ($result['status'] != 'ok') { $this->responseJSON('error', $data, '调用API失败'); return; } /** 房型图 */ $modelPicAIds = array(); if (isset($result['publicPicResult']['fineImg']['count']) && isset($result['publicPicResult']['fineImg']['list'])) { foreach ($result['publicPicResult']['fineImg']['list'] as $imageInfo) { $modelPicAIds[] = $imageInfo['Aid']; } } if (isset($result['publicPicResult']['readyImg']['count']) && isset($result['publicPicResult']['readyImg']['list'])) { foreach ($result['publicPicResult']['readyImg']['list'] as $imageInfo) { $modelPicAIds[] = $imageInfo['Aid']; } } if (!empty($modelPicAIds)) { $modelImageList = Model_Community_Attachment::getImageInfoById($modelPicAIds, array('aid', 'fileName', 'hostId')); foreach ($modelImageList as $imageInfo) { $imageInfo['AID'] = intval($imageInfo['aid']); $imageInfo['commPicId'] = intval($imageInfo['aid']); $imageInfo['IMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['fileName'], $imageInfo['hostId'], 100, 75); $imageInfo['BIGIMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['fileName'], $imageInfo['hostId'], 600, 600); $data['MODELPIC'][] = $imageInfo; } } if (isset($result['publicPicResult']['othResult']['count']) && isset($result['publicPicResult']['othResult']['attachmentsComm'])) { foreach ($result['publicPicResult']['othResult']['attachmentsComm'] as $imageInfo) { $imageInfo['AID'] = intval($imageInfo['Aid']); $imageInfo['commPicId'] = intval($imageInfo['Aid']); $imageInfo['IMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 100, 75); $imageInfo['BIGIMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 600, 600); $data['MODELPIC'][] = $imageInfo; } } /** 小区图 */ if (isset($result['publicPicResult']['commPic']['count']) && isset($result['publicPicResult']['commPic']['attachmentsComm'])) { foreach ($result['publicPicResult']['commPic']['attachmentsComm'] as $imageInfo) { $imageInfo['AID'] = intval($imageInfo['Aid']); $imageInfo['commPicId'] = intval($imageInfo['Aid']); $imageInfo['IMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 100, 75); $imageInfo['BIGIMGURL'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 600, 600); $data['COMMPIC'][] = $imageInfo; } } $data['MODELPIC'] = array_slice($data['MODELPIC'], 0, 10); $data['COMMPIC'] = array_slice($data['COMMPIC'], 0, 20); $this->responseJSON('ok', $data, ''); } catch (Exception $e) { $this->responseJSON('error', $data, $e->getMessage()); } }
/** * 组织API 参数 * * @param int $houseId * @param array $params * @return array */ private static function prepareApiParam($houseId, $params) { $tags = array(); if (is_array($params['tags'])) { /** 房源标签最多为6个 */ $tags = array_slice($params['tags'], 0, 6); } $fields = array('proid' => $houseId, 'broker_id' => $params['broker_id'], 'comm_id' => $params['CommId'], 'userDefined' => isset($params['remark']) ? $params['remark'] : '', 'trade_type' => 1, 'area' => $params['AreaNum'], 'rooms' => sprintf('%d,%d,%s', $params['RoomNum'], $params['HallNum'], $params['ToiletNum']), 'price' => $params['ProPrice'] * 10000, 'floor' => intval($params['ProFloor']) . ',' . intval($params['FloorNum']), 'year' => $params['houseAge'], 'fitment' => $params['fitment'], 'style' => $params['UseType'], 'exposure' => Bll_House_EsfPublish::getPropOrigin($params['houseori']), 'for_lease' => '', 'title' => $params['ProName'], 'description' => $params['ProDesc'], 'equipment' => 0, 'share_rent' => null, 'stype' => 1, 'fileNo' => isset($params['fileNo']) ? $params['fileNo'] : '', 'template' => '0,0', 'videoUrl' => '', 'utags' => '|' . implode(',', $tags), 'stags' => implode(',', $tags), 'minDownPay' => $params['minDownPay'], 'isFullFive' => $params['isFullFive'], 'isOnly' => $params['isOnly']); return $fields; }