public function handle_request_internal() { $request = APF::get_instance()->get_request(); /** * @var AJKResponse $response */ $response = APF::get_instance()->get_response(); $response->set_content_type('application/json', 'utf-8'); $communityId = $request->get_parameter('communityId'); if (!is_numeric($communityId)) { echo json_encode(array('status' => 'error', 'msg' => '请输入小区ID', 'data' => array())); return; } $communityAvgPrice = Model_Stats_AjkPricingCommunityQuartile::getCommunityAvgPrice($communityId); if (-1 == $communityAvgPrice) { echo json_encode(array('status' => 'error', 'msg' => '获取小区均价失败', 'data' => array())); return; } echo json_encode(array('status' => 'ok', 'msg' => '', 'data' => array('averageCommunityPrice' => $communityAvgPrice))); return; }
/** * 获取房源优化信息 * * @param int $houseId * @param array $houseImageInfo * @param array $houseInfo * @param int $cityId * @return array */ public static function getHouseOptimizeInfo($houseId, $houseImageInfo, $houseInfo, $cityId) { // TODO 获取房源优化信息 $optimizeTips = array(); $roomPictureIds = array(); if (is_array($houseImageInfo) && isset($houseImageInfo['status']) && $houseImageInfo['status'] == 'ok') { // TODO 至少3张室内图、1张房型图、1张小区图 if (isset($houseImageInfo['imageBaseInfo']) && is_array($houseImageInfo['imageBaseInfo'])) { $optimizeTip = static::getHouseOptimizeInfoTip1($houseImageInfo['imageBaseInfo'], $roomPictureIds, $cityId); if (!empty($optimizeTip)) { $optimizeTips[] = $optimizeTip; } } else { $optimizeTips[] = array('title' => '照片信息不全', 'info' => $cityId == 11 ? '至少3张室内图、1张房型图' : '至少3张室内图、1张房型图、1张小区图'); } // TODO 经纪人自己上传的室内图、小区图、房型图照片尺寸一致,且单张照片尺寸在1280*960以上的,且无重复照片 if (isset($houseImageInfo['commpicBaseInfo']) && is_array($houseImageInfo['commpicBaseInfo'])) { $roomPictures = array(); foreach ($houseImageInfo['commpicBaseInfo'] as $commpicBaseInfo) { if (in_array($commpicBaseInfo['AID'], $roomPictureIds)) { $roomPictures[] = $commpicBaseInfo; } } $optimizeTip = static::getHouseOptimizeInfoTip2($roomPictures); if (!empty($optimizeTip)) { $optimizeTips[] = $optimizeTip; } } else { $optimizeTips[] = array('title' => '照片质量一般', 'info' => '室内图照片尺寸保持一致,且无重复照片'); } } else { $optimizeTips = array(array('title' => '照片质量一般', 'info' => '照片尺寸保持一致,且无重复照片'), array('title' => '照片信息不全', 'info' => $cityId == 11 ? '至少3张室内图、1张房型图' : '至少3张室内图、1张房型图、1张小区图')); } // TODO 房源价格不能高于或低于小区均价50% if (isset($houseInfo['commId']) && isset($houseInfo['proPriceInt'])) { $communityAvgPrice = Model_Stats_AjkPricingCommunityQuartile::getCommunityAvgPrice($houseInfo['commId']); if ($communityAvgPrice * 0.5 > $houseInfo['proPriceInt']) { $optimizeTips[] = array('title' => '价格不实', 'info' => '房源价格偏离均价过高'); } } else { $optimizeTips[] = array('title' => '价格不实', 'info' => '房源价格偏离均价过高'); } // TODO 房源发布日期在30天以内 if (isset($houseInfo['postDate'])) { $postDateTimestamp = strtotime('+1 day 00:00:00', $houseInfo['postDate']); $currentDateTimestamp = strtotime('00:00:00'); if (($currentDateTimestamp - $postDateTimestamp) / 86400 > 30) { $optimizeTips[] = array('title' => '房源日期较早', 'info' => '房源发布日期已超过30天'); } } else { $optimizeTips[] = array('title' => '房源日期较早', 'info' => '房源发布日期已超过30天'); } // TODO 房源描述30字以上 $houseExplain = Model_House_PropertySale::getHouseAddExplain($houseId); if (mb_strlen(strip_tags($houseExplain), 'UTF-8') < 30) { $optimizeTips[] = array('title' => '房源描述一般', 'info' => '房源描述太过简短'); } return $optimizeTips; }
/** * 小区为单一建筑类型,房源数大于20的非地下室房源,价格偏离度大于50%,都为虚假房源 * * @param array $houseInfo * @return boolean */ public function check_three($houseInfo) { if (self::check_community($houseInfo['commId'])) { if ($houseInfo['proFloor'] > 0) { $price_trend = Model_Stats_AjkPricingCommunityQuartile::getCommunityAvgPrice($houseInfo['commId']); if ($price_trend <= 0) { $this->logInfo("小区Id:{$houseInfo['commId']} 没有获取到小区均价。"); return true; } $prop_ave_price = $houseInfo['proPriceInt'] / $houseInfo['areaNum']; $this->logInfo("小区均价:{$price_trend} 房源每平米价格:{$prop_ave_price}"); if ($prop_ave_price < $price_trend * 0.5) { return false; } } } return true; }