Example #1
0
 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;
 }
Example #2
0
 /**
  * 获取房源优化信息
  *
  * @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;
 }
Example #3
0
 /**
  * 小区为单一建筑类型,房源数大于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;
 }