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()); } }
/** * 获取房源图片信息 * * @param int $brokerId * @param int $houseId * @return array */ public static function getHouseImage($brokerId, $houseId) { $result = array('COMMPIC' => array(), 'MODELPIC' => array(), 'SELCOMM' => array(), 'SELMODEL' => array(), 'UPDCOMM' => array(), 'UPDMODEL' => array(), 'UPDROOM' => array(), 'DEFAULTIMGID' => '', 'ALLCOMM' => array(), 'ALLMODEL' => array()); $apiResult = Bll_Service_House_EsfHouseInfo::getHouseImage($houseId); if ($apiResult->isFailed()) { return $result; } if ($apiResult['status'] != 'ok') { return $result; } $houseBaseInfo = $apiResult['property']; if ($houseBaseInfo['BrokerId'] != $brokerId) { return $result; } /** 房型图 ** 开始 */ $modelPicIds = array(); /** 精选图 */ if (isset($apiResult['publicPicResult']['fineImg']['list'])) { foreach ($apiResult['publicPicResult']['fineImg']['list'] as $val) { $modelPicIds[] = $val; } } /** 备选图 */ if (isset($apiResult['publicPicResult']['readyImg']['list'])) { foreach ($apiResult['publicPicResult']['readyImg']['list'] as $val) { $modelPicIds[] = $val; } } $modelImageList = array(); $modelImageIds = array(); if (!empty($modelPicIds)) { $modelImageList = Model_Community_Attachment::getImageInfoById($modelPicIds); } if (empty($modelImageList)) { if (isset($apiResult['publicPicResult']['othResult']['attachmentsComm'])) { $modelImageList = $apiResult['publicPicResult']['othResult']['attachmentsComm']; } } foreach ($modelImageList as &$modelImage) { if (empty($modelImage['FileName'])) { continue; } $modelImage['imageId'] = isset($modelImage['aid']) ? $modelImage['aid'] : $modelImage['AId']; $modelImage['url'] = Util_ImageUtils::getResizeURL($modelImage['FileName'], $modelImage['host_id'], 100, 75); $modelImage['bigImageUrl'] = Util_ImageUtils::getResizeURL($modelImage['FileName'], $modelImage['host_id'], 600, 600); $modelImageIds[] = $modelImage['imageId']; } unset($modelImage); $result['MODELPIC'] = array_slice($modelImageList, 0, 10); /** 房型图 ** 结束 */ $sideOther = explode(',', $houseBaseInfo['SideOther'] . ',,,', 4); list($communityImageIds, $roomImageIds, $modelImageIds) = $sideOther; $communityImageIds = explode('|', $communityImageIds); $roomImageIds = explode('|', $roomImageIds); $modelImageIds = explode('|', $modelImageIds); $communityImageOrder = array(); $roomImageOrder = array(); $modelImageOrder = array(); /** 小区排序 */ for ($i = count($communityImageIds); $i > 0; $i--) { $imageId = $communityImageIds[$i - 1]; $communityImageOrder[$imageId] = $i; } /** 室内图排序 */ for ($i = count($roomImageIds); $i > 0; $i--) { $imageId = $roomImageIds[$i - 1]; $roomImageOrder[$imageId] = $i; } /** 户型图排序 */ for ($i = count($modelImageIds); $i > 0; $i--) { $imageId = $modelImageIds[$i - 1]; $modelImageOrder[$imageId] = $i; } $defaultImageId = 0; $communityImageList = array(); $roomImageList = array(); $modelImageList = array(); $selectCommunityImageList = array(); $selectCommunityImageIds = array(); $selectModelImageList = array(); $selectModelImageIds = array(); if (isset($apiResult['attachments']['attachments'])) { foreach ($apiResult['attachments']['attachments'] as $imageInfo) { if (empty($imageInfo['FileName'])) { continue; } if ($imageInfo['IsSel']) { $defaultImageId = $imageInfo['AId']; } $imageInfo['imageId'] = $imageInfo['AId']; $imageInfo['AID'] = $imageInfo['AId']; $imageInfo['url'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 100, 75); $imageInfo['bigImageUrl'] = Util_ImageUtils::getResizeURL($imageInfo['FileName'], $imageInfo['host_id'], 600, 600); /** 小区图 */ if ($imageInfo['DataType'] == 1) { if ($imageInfo['CommPicId'] == 0 && isset($communityImageOrder[$imageInfo['imageId']])) { $imageInfo['order'] = $communityImageOrder[$imageInfo['imageId']]; $communityImageList[$imageInfo['AId']] = $imageInfo; } elseif (isset($communityImageOrder[$imageInfo['CommPicId']])) { $imageInfo['order'] = $communityImageOrder[$imageInfo['CommPicId']]; $selectCommunityImageList[$imageInfo['CommPicId']] = $imageInfo; $selectCommunityImageIds[] = $imageInfo['AId']; } } /** 室内图 */ if ($imageInfo['DataType'] == 2 && isset($roomImageOrder[$imageInfo['imageId']])) { $imageInfo['order'] = $roomImageOrder[$imageInfo['imageId']]; $roomImageList[$imageInfo['AId']] = $imageInfo; } /** 房型图 */ if ($imageInfo['DataType'] == 3) { if ($imageInfo['CommPicId'] == 0 && isset($modelImageOrder[$imageInfo['imageId']])) { $imageInfo['order'] = $modelImageOrder[$imageInfo['imageId']]; $modelImageList[$imageInfo['AId']] = $imageInfo; } elseif (isset($modelImageOrder[$imageInfo['CommPicId']])) { $imageInfo['order'] = $modelImageOrder[$imageInfo['CommPicId']]; $selectModelImageList[$imageInfo['CommPicId']] = $imageInfo; $selectModelImageIds[] = $imageInfo['AId']; } } } } $result['UPDCOMM'] = static::sortImage($communityImageList); $result['UPDMODEL'] = static::sortImage($modelImageList); $result['UPDROOM'] = static::sortImage($roomImageList); $result['SELCOMM'] = static::sortImage($selectCommunityImageList); $result['SELMODEL'] = static::sortImage($selectModelImageList); $result['ALLCOMM'] = static::sortImage(array_merge($communityImageList, $selectCommunityImageList)); $result['ALLMODEL'] = static::sortImage(array_merge($modelImageList, $selectModelImageList)); $result['DEFAULTIMGID'] = $defaultImageId; return $result; }