/**
  * 获取无效的房源
  * 如果房源已经被物理删除了,也会返回
  *
  * @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();
     }
 }
Esempio n. 2
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();
     }
 }