Example #1
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 #2
0
 public function handle_request_internal()
 {
     if (Bll_Weshop::weshopPropsIsMaintain()) {
         return array('status' => 'error', 'message' => "系统维护中,请稍后再试!");
     }
     header("Access-Control-Allow-Origin: *");
     $brokerId = $this->_params['brokerId'];
     $commId = $this->_params['commId'];
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     //查找经纪人所有房源  过滤所有违规房源
     if ($commId) {
         $tempHouseInfoList = Bll_House_EsfHouse::getBrokerAllPropInfoList($brokerId, $brokerInfo->cityId, array(), $commId);
     } else {
         $tempHouseInfoList = Bll_House_EsfHouse::getBrokerAllPropInfoList($brokerId, $brokerInfo->cityId);
     }
     //获取经纪人已经导入的二手房房源id
     $EsPropIdWeshopPropIdTmp = Model_Weshop_PropsFilter::getPropIdAndWeshopPropIdByBroker($brokerId);
     //获取微店中已有房源的propid
     /*
     $weshopProps = Model_Weshop_Props::getWeshopPropsByBrokerId($brokerId);
     $weshopPropIds = array();
     if(!empty($weshopProps)) {
         foreach($weshopProps as $key => $value)
         {
             $weshopPropIds[]=$value->id;
         }
         $EsPropIdTmp = Model_Weshop_PropsFilter::getPropIdByWeshopPropId($weshopPropIds);
     }
     */
     $EsPropIdWeshopPropId = array();
     $EsPropId = array();
     if (!empty($EsPropIdWeshopPropIdTmp)) {
         foreach ($EsPropIdWeshopPropIdTmp as $k => $v) {
             if (!in_array($v['propId'], $EsPropId)) {
                 $EsPropId[] = $v['propId'];
                 $EsPropIdWeshopPropId[$v['propId']] = array();
             }
             array_push($EsPropIdWeshopPropId[$v['propId']], $v['weshopPropId']);
         }
     }
     //过滤违规房源和重复房源
     $areaAndBlockIds = array();
     $propIds = array();
     foreach ($tempHouseInfoList as $key => $houseInfo) {
         $illegal = isset($houseInfo['isVisible']) ? $houseInfo['isVisible'] : 1;
         if ($illegal == 0 && $houseInfo['ExpireWorker'] != 'propertyReport') {
             unset($tempHouseInfoList[$key]);
             continue;
         }
         //过滤重复房源
         if (in_array($houseInfo['proId'], $EsPropId)) {
             $data = Model_Weshop_Props::getWeshopProp($EsPropIdWeshopPropId[$houseInfo['proId']]);
             if (!empty($data)) {
                 unset($tempHouseInfoList[$key]);
                 continue;
             }
         }
         $areaAndBlockIds[] = substr($houseInfo['areaCode'], 0, 8);
         $areaAndBlockIds[] = $houseInfo['areaCode'];
         $propIds[] = $houseInfo['proId'];
     }
     //批量获取区域板块信息
     $commTypeInfos = Bll_Community_CommunityGardener::getCommTypeInfo($areaAndBlockIds);
     //批量获取默认图片
     $propDefImages = Model_House_AjkPropertyData::getDafImages($propIds);
     //批量获取房源描述信息 ajk_propertysale
     $houseExtInfo = Model_House_PropertySale::getPropertySaleInfos($propIds);
     $propList = array();
     foreach ($tempHouseInfoList as $house) {
         $row = array();
         $row['propId'] = $house['proId'];
         $row['title'] = $house['proName'];
         $row['commId'] = $house['commId'];
         $row['commName'] = $house['commName'];
         $areaId = substr($house['areaCode'], 0, 8);
         $blockId = $house['areaCode'];
         $row['areaName'] = $commTypeInfos[$areaId];
         $row['blockName'] = $commTypeInfos[$blockId];
         $row['room'] = $house['roomNum'];
         $row['hall'] = $house['hallNum'];
         $row['toilet'] = $house['toiletNum'];
         $row['area'] = round($house['areaNum']);
         $row['areaUnit'] = '平米';
         $row['price'] = intval($house['proPrice']);
         $row['priceUnit'] = '万';
         //房源描述
         $propDescription = $houseExtInfo[$row['propId']]['addExplan'];
         $propDescription = str_replace('<p>', "", $propDescription);
         $propDescription = str_replace('</p>', "", $propDescription);
         $propDescription = trim($propDescription);
         $row['propDescription'] = $propDescription;
         $row['imageUrl'] = Model_House_AjkPropertyData::imageUrl($propDefImages[$house['proId']]);
         $row['previewUrl'] = Bll_Weshop::getPropPreviewUrl(array('brokerId' => $brokerId, 'propId' => $row['propId']));
         $propList[] = $row;
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('propList' => $propList));
 }
Example #3
0
 /**
  * 添加委托房源日志
  *
  * @param int $brokerId
  * @param int $cityId
  * @param int $commissionId
  * @param int $houseId
  * @return bool
  */
 public static function insertCommissionSaleLog($brokerId, $cityId, $commissionId, $houseId)
 {
     $commissionInfo = static::getCommission($commissionId, $brokerId);
     if (empty($commissionInfo)) {
         return false;
     }
     /** 更新委托房源发布时间 */
     if (!Model_House_Commission::updateCommissionById($commissionId, $brokerId, $houseId)) {
         return false;
     }
     $status = 2;
     if ($commissionInfo['publishTime'] != '0000-00-00 00:00:00') {
         $status = 5;
     }
     $propertySales = Model_House_PropertySale::getPropertySales($houseId);
     if (!empty($propertySales)) {
         $saleId = $propertySales['saleId'];
         $ownerMobile = $commissionInfo['house']['owner400'] ? $commissionInfo['house']['owner400'] : $commissionInfo['house']['ownerMobile'];
         $data = array('ownerName' => $commissionInfo['house']['userName'], 'ownerMobile' => $ownerMobile);
         Model_House_PropertySale::updatePropertyBySaleId($saleId, $data);
     }
     /** 更新房源的委托类型 */
     Bll_House_EsfHouse::updateCommissionType($cityId, $houseId);
     /** 更新经纪人 已处理委托数 */
     Model_Broker_BrokerExt::incrementDealCommissionCnt($brokerId);
     $data = array('cityId' => $cityId, 'ownerId' => $commissionInfo['ownerId'], 'houseId' => $commissionInfo['houseId'], 'brokerId' => $brokerId, 'brokerHouseId' => $houseId, 'dateindex' => date('Ymd'), 'status' => $status, 'createTime' => time());
     return 1 == Model_House_CommissionSaleLog::create($data)->save();
 }