public static function &getInstance()
 {
     if (self::$_instance === null) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * 向主推房源表插入主推房源信息
  * @param $brokerId
  * @param $cityId
  * @param array $propIds
  * @param $type
  * @return array|bool|int 返回结果是一个数组status==false表示验证不通过,不通过信息在msg里面;status==true表示验证通过
  */
 public function insertAdProsInfo($brokerId, $cityId, $propIds = array(), $type = Const_ShowcaseOrders::SALE_DB)
 {
     $res = array('status' => false, 'msg' => '');
     if (!in_array($type, array(Const_ShowcaseOrders::SALE_DB, Const_ShowcaseOrders::RENT_DB))) {
         $res['msg'] = '没有开通相应的业务!';
         return $res;
     }
     //房源最大个数
     if ($type == Const_ShowcaseOrders::SALE_DB) {
         $proMaxCount = Const_ShowcaseOrders::SALE_PRO_MAX_COUNT;
     } else {
         $proMaxCount = Const_ShowcaseOrders::RENT_PRO_MAX_COUNT;
     }
     if (empty($propIds)) {
         $propIds = array();
     } elseif (is_numeric($propIds)) {
         //支持传入一个房源ID
         $propIds = array($propIds);
     } elseif (!is_array($propIds)) {
         $res['msg'] = '房源ID参数错误!';
         return $res;
     }
     //房源超出范围
     if (!empty($propIds) && count($propIds) > $proMaxCount) {
         $res['msg'] = '最多只能选择' . $proMaxCount . '套房源!';
         return $res;
     }
     //删除经纪人主推房源信息
     if ($type == Const_ShowcaseOrders::SALE_DB) {
         $brokerAdPro = $this->getBrokerAdSalePropInfo($brokerId);
     } else {
         $brokerAdPro = $this->getBrokerAdRentPropInfo($brokerId);
     }
     if (!empty($brokerAdPro)) {
         foreach ($brokerAdPro as $brokerAdProVal) {
             //删除
             $brokerAdProVal->delete();
             //插入日志表
             $logData = array();
             $logData['brokerId'] = $brokerId;
             $logData['cityId'] = $cityId;
             $logData['propId'] = $brokerAdProVal->propId;
             $logData['reason'] = Const_ShowcaseOrders::PRO_CHANGE_LOG_REASON_CHANGE;
             $logData['type'] = Const_ShowcaseOrders::PRO_CHANGE_LOG_TYPE_SELF;
             $logData['flag'] = Const_ShowcaseOrders::PRO_CHANGE_LOG_FLAG_OUT;
             $logData['createTime'] = time();
             if ($type == Const_ShowcaseOrders::SALE_DB) {
                 Model_Broker_AdPropsChangeSaleLog::getInstance()->insertOne($logData);
             } else {
                 Model_Broker_AdPropsChangeRentLog::getInstance()->insertOne($logData);
             }
         }
     }
     //开始插入数据
     if (!empty($propIds)) {
         foreach ($propIds as $propIdVal) {
             $insertData = array();
             $insertData['brokerId'] = $brokerId;
             $insertData['cityId'] = $cityId;
             $insertData['propId'] = $propIdVal;
             $insertData['createTime'] = time();
             if ($type == Const_ShowcaseOrders::SALE_DB) {
                 $inserRes = Model_Broker_AdPropsSetSale::getInstance()->insertData($insertData);
             } else {
                 $inserRes = Model_Broker_AdPropsSetRent::getInstance()->insertData($insertData);
             }
             if ($inserRes) {
                 //插入日志表
                 $logData = array();
                 $logData['brokerId'] = $brokerId;
                 $logData['cityId'] = $cityId;
                 $logData['propId'] = $propIdVal;
                 $logData['reason'] = Const_ShowcaseOrders::PRO_CHANGE_LOG_REASON_UP;
                 $logData['type'] = Const_ShowcaseOrders::PRO_CHANGE_LOG_TYPE_SELF;
                 $logData['flag'] = Const_ShowcaseOrders::PRO_CHANGE_LOG_FLAG_IN;
                 $logData['createTime'] = time();
                 if ($type == Const_ShowcaseOrders::SALE_DB) {
                     Model_Broker_AdPropsChangeSaleLog::getInstance()->insertOne($logData);
                 } else {
                     Model_Broker_AdPropsChangeRentLog::getInstance()->insertOne($logData);
                 }
             }
         }
     }
     $res['status'] = true;
     return $res;
 }