Exemplo n.º 1
0
 private function isExtension($commission, $isOnLine, $house)
 {
     //已发布
     if (!empty($commission['brokerHouseId'])) {
         $propertysInfo = Model_House_EsfHouseElementFactory::getHouseBaseInfo($commission['brokerHouseId']);
         //已过期-已发布90天
         $diff = time() - $propertysInfo['postDate'];
         $pDay = floor($diff / 86400);
         if (empty($propertysInfo)) {
             $isExtension = 5;
             $isExtensionInfo = '待发布';
             return array($isExtension, $isExtensionInfo);
         }
         if ($pDay > Const_APIStatus::PUBLISHED_OVERDUE) {
             $isExtension = 2;
             $isExtensionInfo = '已过期';
             return array($isExtension, $isExtensionInfo);
         }
         //已发布未推广
         if (empty($isOnLine[$commission['brokerHouseId']]) || $isOnLine[$commission['brokerHouseId']] == false) {
             $isExtension = 6;
             $isExtensionInfo = '待推广';
             return array($isExtension, $isExtensionInfo);
         }
         //违规
         if ($propertysInfo['operateState'] != 1 || $propertysInfo['isVisible'] == 0) {
             $isExtension = 5;
             $isExtensionInfo = '待发布';
             return array($isExtension, $isExtensionInfo);
         }
         //已发布已推广
         $isExtension = 7;
         $isExtensionInfo = '已推广';
         return array($isExtension, $isExtensionInfo);
     } else {
         //已过期-未发布15天
         $diff = time() - $house['created'];
         $eDay = floor($diff / 86400);
         if ($eDay >= Const_APIStatus::UN_PUBLISHED_OVERDUE) {
             $isExtension = 2;
             $isExtensionInfo = '已过期';
             return array($isExtension, $isExtensionInfo);
         }
         //违规删除
         if ($house['proStatus'] == Model_House_CommissionHouse::STATUS_ILLEGAL) {
             $isExtension = 1;
             $isExtensionInfo = '违规已删除';
             return array($isExtension, $isExtensionInfo);
         }
         //房东已删除
         if ($house['proStatus'] == Model_House_CommissionHouse::STATUS_DELETED) {
             $isExtension = 8;
             $isExtensionInfo = '房东已删除';
             return array($isExtension, $isExtensionInfo);
         }
         //未发布
         $isExtension = 5;
         $isExtensionInfo = '待发布';
         return array($isExtension, $isExtensionInfo);
     }
 }
Exemplo n.º 2
0
 public function handle_request_internal()
 {
     header("Access-Control-Allow-Origin: *");
     $propId = $this->_params['propId'];
     //好丑陋。。。。。。好无奈。。。。。。
     //委托房源自动转发停用,为了app能够展示报错信息。。。
     if (empty($propId)) {
         $this->_params['apiDebug'] = 1;
         return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'errcode' => '0000', 'message' => '委托房源自动转发功能已停用;若要发布请手动发布');
     }
     $propInfo = Bll_Ppc_ServiceAPI::getHouseInfo($propId);
     $brokerId = $this->_params['brokerId'];
     $houseInfo = Model_House_EsfHouseElementFactory::getHouseBaseInfo($propId);
     if (empty($houseInfo)) {
         $cityId = Model_Broker_AjkBrokerExtend::getCityIdByBrokerId($this->_params['brokerId']);
         $houseInfo = Bll_House_EsfHouse::getHouseBaseInfo($propId, $cityId);
     }
     if (!empty($houseInfo)) {
         $result['status'] = 'ok';
         $areaCode = $houseInfo['areaCode'];
         $block = Bll_Commtype_Api::getInfoByTypeCode($areaCode);
         $area = Bll_Commtype_Api::getInfoByTypeId($block['parentId']);
         $area_name = $area['typeName'];
         $block_name = $block['typeName'];
         $data['title'] = $houseInfo['proName'];
         $data['commId'] = $houseInfo['commId'];
         $data['commName'] = $houseInfo['commName'];
         //小区信息
         $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($data['commId'], 2);
         $data['commLocation'] = $commInfo['commLocal'];
         $data['sosolat'] = $commInfo['sosolat'];
         //纬度
         $data['sosolng'] = $commInfo['sosolng'];
         //经度
         $data['floor'] = $propInfo['property']['ProFloor'];
         $data['totalFloor'] = $propInfo['property']['FloorNum'];
         $propDescription = $propInfo['property']['sale']['AddExplan'];
         $propDescription = str_replace('<p>', "", $propDescription);
         $propDescription = str_replace('</p>', "", $propDescription);
         $propDescription = trim($propDescription);
         $data['propDescription'] = $propDescription;
         $data['areaname'] = $area_name;
         $data['blockname'] = $block_name;
         $data['roomNum'] = $houseInfo['roomNum'];
         $data['hallNum'] = $houseInfo['hallNum'];
         $data['toiletNum'] = $houseInfo['toiletNum'];
         $data['area'] = $houseInfo['areaNum'];
         $data['areaUnit'] = '平米';
         $data['price'] = $houseInfo['proPrice'];
         $data['priceUnit'] = '万';
         $data['isMoreImg'] = $houseInfo['isHighQulity'];
         $data['isVisible'] = $houseInfo['isVisible'];
         $data['isPhonePub'] = $houseInfo['uriCode'] == 'mobile.asyn' || $houseInfo['uriCode'] == 'mobile-ajk-broker.asyn' ? 1 : 0;
         $data['propImagesUrl'] = array();
         $data['propImages'] = $data['outdoorImage'] = array();
         if ($propInfo['attachments']['attachments']) {
             $propImageNum = 0;
             $outdoorImageNum = 0;
             $images = $propInfo['attachments']['attachments'];
             foreach ($images as $image) {
                 if ($image['DataType'] == 2) {
                     if ($propImageNum >= 8) {
                         continue;
                     }
                     $imageInfo = array();
                     $url = Util_ImageUtils::getResizeURL($image['FileName'], $image['host_id'], 600, 600);
                     $url = str_replace("display", "display/e", $url);
                     $imageInfo['bigImageUrl'] = $url;
                     $data['propImages'][] = $imageInfo;
                     $propImageNum += 1;
                 } else {
                     if ($image['DataType'] == 3) {
                         if ($outdoorImageNum >= 1) {
                             continue;
                         }
                         $imageInfo = array();
                         $url = Util_ImageUtils::getResizeURL($image['FileName'], $image['host_id'], 600, 600);
                         $url = str_replace("display", "display/e", $url);
                         $imageInfo['bigImageUrl'] = $url;
                         $data['outdoorImage'][] = $imageInfo;
                         $outdoorImageNum += 1;
                     }
                 }
             }
         }
         $spread = Model_Plan_AjkPropspread::getAjkPropSpreadByIds($propId);
         $data['isChoice'] = $data['isBid'] = 0;
         if (!empty($spread)) {
             if ($spread[0]['bidVersion'] == 1 && $spread[0]['status'] == 1) {
                 $data['isBid'] = 1;
             } elseif ($spread[0]['bidVersion'] == 2 && ($spread[0]['status'] == 1 || $spread[0]['status'] == 11)) {
                 $data['isChoice'] = 1;
             }
         }
         //计算出房源推广天数
         $timeFixStr = strtotime(date("Ymd", $houseInfo['postDate']));
         $leftDay = floor((time() - $timeFixStr) / 86400);
         $data['publishDaysMsg'] = $leftDay > 0 ? $leftDay . '天前发布' : '今天发布';
         $imgBll = Bll_Image_EsfHouseImage::getInstance();
         $data['imgUrl'] = $imgBll->getThumbImageUrl($propId, $houseInfo['commId']);
         $mobileBaseDomain = APF::get_instance()->get_config("mobile_base_domain");
         $data['url'] = 'http://' . $mobileBaseDomain . '/sale/x/' . $houseInfo['cityId'] . '/' . $houseInfo->proId;
         //增加委托房源标签
         if ($houseInfo['commitionType'] == 2) {
             $data['isEntrust'] = 1;
         } else {
             $data['isEntrust'] = 0;
         }
     } else {
         $data['status'] = 'error';
         $data['message'] = '房源信息不存在';
     }
     $result['data'] = $data;
     return $result;
 }
Exemplo n.º 3
0
 /**
  * 显示状态判断
  * @param $data
  * @param $brokerId
  * @param $rushBrokerId
  * @param $brokerHouseId
  * @return int
  */
 private function showState($data, $brokerId, $rushBrokerId, $brokerHouseId)
 {
     /* 未抢到房源状态 */
     if (empty($rushBrokerId)) {
         //违规删除
         if ($data['proStatus'] == Model_House_CommissionHouse::STATUS_ILLEGAL) {
             return array(1, '');
         }
         //房东删除
         if ($data['proStatus'] == Model_House_CommissionHouse::STATUS_DELETED) {
             return array(8, '');
         }
         //过期-15
         if ($data['proStatus'] == Model_House_CommissionHouse::STATUS_EXPIRED) {
             return array(2, '');
         }
         //抢完
         if ($data['openBrokerCnt'] >= 5) {
             return array(3, '');
         }
         //房东停止委托
         if ($data['proStatus'] == Model_House_CommissionHouse::STATUS_STOP || $data['proStatus'] == Model_House_CommissionHouse::STATUS_SAVE) {
             return array(9, '');
         }
         //可抢
         return array(4, '');
     }
     /* 抢到房源状态->已发布|未发布->已推广|未推广 */
     //已发布
     if (!empty($brokerHouseId)) {
         $propertysInfo = Model_House_EsfHouseElementFactory::getHouseBaseInfo($brokerHouseId);
         //已过期-已发布90天
         if (empty($propertysInfo)) {
             return array(5, '');
         }
         $diff = time() - $propertysInfo['postDate'];
         $pDay = floor($diff / 86400);
         if ($pDay > Const_APIStatus::PUBLISHED_OVERDUE) {
             return array(2, '');
         }
         //已发布未推广
         $isOnLine = Bll_House_EsfHouse::getHouseOnLineInfo($data->cityId, $brokerId, $brokerHouseId);
         if (empty($isOnLine[$brokerHouseId]) || $isOnLine[$brokerHouseId] == false) {
             return array(6, $brokerHouseId);
         }
         //违规删除(可以再发布)
         if ($propertysInfo['operateState'] != 1 || $propertysInfo['isVisible'] == 0) {
             return array(5, '');
         }
         //已发布已推广
         return array(7, $brokerHouseId);
     } else {
         if ($rushBrokerId) {
             //已过期-未发布15天
             $diff = time() - $data['created'];
             $eDay = floor($diff / 86400);
             if ($eDay >= Const_APIStatus::UN_PUBLISHED_OVERDUE) {
                 return array(2, '');
             }
             //违规删除
             if ($data['proStatus'] == Model_House_CommissionHouse::STATUS_ILLEGAL) {
                 return array(1, '');
             }
             //房东删除
             if ($data['proStatus'] == Model_House_CommissionHouse::STATUS_DELETED) {
                 return array(8, '');
             }
         } else {
             //违规删除
             if ($data['proStatus'] == Model_House_CommissionHouse::STATUS_ILLEGAL) {
                 return array(1, '');
             }
             //房东删除
             if ($data['proStatus'] == Model_House_CommissionHouse::STATUS_DELETED) {
                 return array(8, '');
             }
             //已过期-未发布15天
             $diff = time() - $data['created'];
             $eDay = floor($diff / 86400);
             if ($eDay >= Const_APIStatus::UN_PUBLISHED_OVERDUE) {
                 return array(2, '');
             }
         }
         //抢到未发布
         return array(5, '');
     }
 }
 /**
  * 获取无效的房源
  * 如果房源已经被物理删除了,也会返回
  *
  * @param int $cityId
  * @param int $brokerId
  * @param int|array $houseId
  * @return array
  */
 public static function getInvalidateHouse($cityId, $brokerId, $houseId)
 {
     $modelName = Model_House_EsfHouseElementFactory::getEsfHouseElementModel($cityId);
     try {
         $houseModel = $modelName::data_access();
         $houseModel->filter('proId', $houseId);
         $houseModel->filter('brokerId', $brokerId);
         $houseModel->filter('tradeType', 1);
         //$houseModel->filter_by_op('operateState', '<>', 1);
         $houseModel->load_field(array('proId', 'operateState', 'isVisible', 'expireWorker', 'updatedDatetime', 'brokerId'));
         $houseList = $houseModel->get_all();
         $result = array();
         /**
          * 在数据库中查询到的房源ID
          */
         $houseIds = array();
         if (!empty($houseList)) {
             foreach ($houseList as $house) {
                 $houseIds[] = $house['proId'];
                 /** 房源删除 */
                 if ($house['operateState'] != 1) {
                     $result[] = $house;
                     continue;
                 }
                 /** 房源违规 */
                 if ($house['isVisible'] == 0 && $house['expireWorker'] != 'propertyReport') {
                     $result[] = $house;
                 }
             }
         }
         if (!is_array($houseId)) {
             $houseId = array($houseId);
         }
         $notFoundHouseIds = array_diff($houseId, $houseIds);
         foreach ($notFoundHouseIds as $notFoundHouseId) {
             $result[] = static::initInvalidateHouse($brokerId, $notFoundHouseId);
         }
         return $result;
     } catch (Exception $e) {
         return array();
     }
 }
Exemplo n.º 5
0
 public static function scanHouseBaseInfoByCommunityId($cityId, $community, $startHouseId, $loadField = array(), $limit = 1000)
 {
     $modelName = Model_House_EsfHouseElementFactory::getEsfHouseElementModel($cityId);
     $dataAccess = $modelName::data_access();
     try {
         $dataAccess->filter_by_op('proId', '>', $startHouseId);
         $dataAccess->filter('commId', $community);
         $dataAccess->filter('operateState', 1);
         $dataAccess->limit($limit);
         if (is_array($loadField) && !empty($loadField)) {
             $dataAccess->load_field($loadField);
         }
         return $dataAccess->get_all();
     } catch (Exception $e) {
         return array();
     }
 }
Exemplo n.º 6
0
 /**
  * 拼接房源具体信息
  *
  * @param $houseIdStr
  * @return array
  */
 public function getProductDetail($houseIdStr)
 {
     $houseArray = array();
     if (empty($houseIdStr)) {
         return $houseArray;
     }
     $houseIdArray = explode(',', $houseIdStr);
     $imgBll = Bll_Image_EsfHouseImage::getInstance();
     foreach ($houseIdArray as $row) {
         $houseInfo = Model_House_EsfHouseElementFactory::getHouseBaseInfo($row);
         if (empty($houseInfo)) {
             continue;
         }
         $formatHouseInfo = array();
         //房源标题
         $formatHouseInfo['title'] = $houseInfo->proName;
         //板块名称
         $block = Model_City_TypeCode::getTypeCodeNames(array($houseInfo->areaCode));
         if (empty($block)) {
             $formatHouseInfo['block'] = '';
         } else {
             $formatHouseInfo['block'] = $block[$houseInfo->areaCode];
         }
         //小区名称
         $formatHouseInfo['community'] = $houseInfo->commName;
         //户型
         $formatHouseInfo['type'] = sprintf('%d室%d厅', $houseInfo->roomNum, $houseInfo->hallNum);
         //大小
         $formatHouseInfo['area'] = sprintf('%d平米', intval($houseInfo->areaNum));
         //价格
         $formatHouseInfo['price'] = sprintf('%d万', intval($houseInfo->proPrice));
         //房源图片
         $formatHouseInfo['pic'] = $imgBll->getThumbImageUrl($houseInfo->proId, $houseInfo->commId);
         $houseArray[] = $formatHouseInfo;
     }
     return $houseArray;
 }