/** * 获取房源优化信息 * * @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; }
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)); }
/** * 添加委托房源日志 * * @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(); }