예제 #1
0
 /**
  * 获取平均预算和点击
  *
  * @param $communityId
  * @param $cityId
  * @param $price
  * @return array|bool
  */
 public static function getBucketAverageClickBudget($blockId, $newBlockId, $houseType, $priceId)
 {
     $validDate = Model_Config_huTablesUploadStatus::getDate('s_bid_average_click_budget_jp');
     if (empty($validDate)) {
         $validDate = date("Y-m-d");
     }
     return Model_Stats_JpAverageClickBudget::getAverageClickBudget($blockId, $newBlockId, $houseType, $priceId, date("Ymd", strtotime($validDate)));
 }
예제 #2
0
 /**
  * 获取 坑位平均点击和预算
  *
  * @param $blockId
  * @param $cityId
  * @param $price
  * @return array
  */
 public static function getBucketAverageClickBudget($blockId, $cityId, $price)
 {
     $priceIntervalInfo = self::getPriceIntervalInfo($cityId, $price);
     if (empty($priceIntervalInfo)) {
         return array();
     }
     $tablePostfix = Model_Config_huTablesUploadStatus::getHzAverageClickBudgetTable();
     $averageClickAndBudget = Model_Stats_HzAverageClickBudget::getAverageClickBudget($tablePostfix, $blockId, $priceIntervalInfo['id']);
     return $averageClickAndBudget;
 }
 /**
  * 获取好租的平均点击和预算表
  *
  * @return string
  */
 public static function getHzAverageClickBudgetTable()
 {
     try {
         $table = Model_Config_huTablesUploadStatus::data_access()->filter('tableName', self::$hz_table)->filter('status', '1')->sort('calDt')->get_row();
     } catch (Exception $e) {
         return date('m');
     }
     if (empty($table) || is_null($table)) {
         return date('m');
     }
     return date('m', strtotime($table['calDt']));
 }
예제 #4
0
 /**
  * 获取平均预算和点击
  *
  * @param $communityId
  * @param $cityId
  * @param $price
  * @return array|bool
  */
 public static function getBucketAverageClickBudget($communityId, $cityId, $price)
 {
     $priceIntervalInfo = Model_House_EsfPrice::get_price($cityId, $price);
     if (empty($priceIntervalInfo)) {
         return false;
     }
     $validDate = Model_Config_huTablesUploadStatus::getDate(self::STATICCLICKANDBUDGETCONFIGNAME);
     if (empty($validDate)) {
         $validDate = date("Y-m-d");
     }
     $validDate = $validDate->calDt;
     return Model_Stats_EsfAverageClickBudget::getAverageClickBudget($communityId, $priceIntervalInfo['id'], date("Ymd", strtotime($validDate)));
 }
 /**
  * 从BI表拿数据
  * @param $communityId
  * @param $priceId
  * @return array
  */
 public static function getLastRowByCommIdAndSpId($communityId, $priceId, $cityId)
 {
     //获取城市配置北京,上海,深圳,杭州,天津,成都,广州,南京,苏州,大连,重庆
     if (self::getUnitaryChoiceConfig($cityId) === false) {
         return array();
     }
     //根据表明,获取那天的数据有效
     $dateInfo = Model_Config_huTablesUploadStatus::getTablesUploadStatu(self::tableName);
     //生成有效日期
     $date = date('Y-m-d');
     if (!empty($dateInfo)) {
         $date = $dateInfo['calDt'];
     }
     //获取一元精选数据
     return Model_Stats_DaUploadUnitarySiteCommPriceDaily::getLastRowByCommIdAndSpId($communityId, $priceId, $date);
 }
 /**
  * 获取经纪人的累计消费信息
  *
  * @param int $cityId
  * @param int $brokerId
  * @return array
  */
 public static function getBrokerChoiceConsume($cityId, $brokerId)
 {
     $cacheKey = sprintf('ajk_broker_choice_consume_%d_%d', $cityId, $brokerId);
     $memcache = APF_Cache_Factory::get_instance()->get_memcache();
     $brokerChoiceConsume = $memcache->get($cacheKey);
     if (is_array($brokerChoiceConsume) && !empty($brokerChoiceConsume)) {
         return $brokerChoiceConsume;
     }
     $ajkBrokerChoiceConsumeLastUploadDate = Model_Config_huTablesUploadStatus::getTableLastCalculateDate('ajk_broker_choice_consume');
     if (empty($ajkBrokerChoiceConsumeLastUploadDate)) {
         return array();
     }
     $lastUploadDate = date('Ymd', strtotime($ajkBrokerChoiceConsumeLastUploadDate['calDt']));
     $brokerChoiceConsume = Model_Stats_AjkBrokerChoiceConsume::getBrokerChoiceConsume($cityId, $brokerId, $lastUploadDate);
     $memcache->set($cacheKey, $brokerChoiceConsume, 0, 1800);
     return $brokerChoiceConsume;
 }
예제 #7
0
 public function handle_request()
 {
     $splitSuffix = Model_Config_huTablesUploadStatus::getSollyXunPanPropResultSplitSuffix();
     if ($splitSuffix != date("Ymd")) {
         return false;
     }
     $cursor = $this->getFlag();
     if (empty($cursor['id'])) {
         $cursor['id'] = 0;
     }
     $i = 0;
     while ($i < self::CIRCOUNT) {
         $i++;
         //读取bi数据
         $data = Model_Stats_AjkSollyHouseResult::data_access($splitSuffix)->filter_by_op('id', '>', $cursor['id'])->limit(self::LIMIT)->get_all();
         if (empty($data)) {
             $this->removeFlag();
             $this->setShStopFlag();
             return false;
         }
         //更新游标
         $cursor['id'] = $data[self::LIMIT - 1]['id'];
         $this->setFlag($cursor);
         //设置log
         $log = array('time' => date('Ymd h:i:s'), 'id' => $cursor['id']);
         $this->setLog(json_encode($log));
         $propIds = array();
         foreach ($data as $k => $v) {
             $propIds[] = $v['propId'];
         }
         //取出表中已存在的propId
         $extPropIds = Model_Activity_Res_SollyXunpanPropResult::data_access()->load_field('propId')->filter_by_op('propId', 'in', $propIds)->get_all();
         $tmp = array();
         foreach ($extPropIds as $v) {
             $tmp[$v['propId']] = $v['propId'];
         }
         //将不存在的propId插入表中
         foreach ($data as $k => $v) {
             if (empty($tmp[$v['propId']])) {
                 $insertData = array('propId' => $v['propId'], 'logTime' => date("Ymd"), 'cityId' => $v['cityId'], 'rankStar' => $v['rankStar'], 'dataFrom' => 0);
                 Model_Activity_Res_SollyXunpanPropResult::insertData($insertData);
             }
         }
         unset($data);
     }
 }
 protected function init()
 {
     parent::init();
     $calculateDate = intval($this->getOption('date', 19700101));
     if ($calculateDate == 19700101) {
         $lastCalculateDate = Model_Config_huTablesUploadStatus::getTableLastCalculateDate('ajk_broker_choice_consume');
         if (empty($lastCalculateDate)) {
             $this->logMsg('没有获取到BI的统计上传日期');
             file_put_contents($this->_doneFile, 'YES');
             exit;
         }
         $calculateDate = intval(date('Ymd', strtotime($lastCalculateDate['calDt'])));
     }
     $this->_calculateDate = $calculateDate;
     if (file_exists($this->_cursorFile)) {
         $this->_startId = intval(file_get_contents($this->_cursorFile));
     }
 }
 public static function getLastRowByCommIdAndSpId($communityId, $priceId)
 {
     $date = Model_Config_huTablesUploadStatus::getDaUploadCheapSiteCommPriceDailyLastRow();
     return Model_Stats_DaUploadCheapSiteCommPriceDaily::getLastRowByCommIdAndSpId($communityId, $priceId, $date);
 }
예제 #10
0
 public static function getLastRowByCommIdAndSpId($communityId, $priceId)
 {
     $date = Model_Config_huTablesUploadStatus::getBrokerMarkSiteCommPriceDailyLastRow();
     $date = date('Ymd', strtotime($date));
     return Model_Stats_BrokerMark::getLastRowByCommIdAndSpId($communityId, $priceId, $date);
 }
예제 #11
0
 public static function getRankFromBrokerAndBI($houseIds)
 {
     $houseSollyResult = array();
     //查询经纪人表中的rank
     $houseSollyResultA = Model_Activity_Res_SollyXunpanPropResult::getPropRank($houseIds);
     //取出没有查询到rank的houseIds
     $tmp = array();
     $propIdsTmp = array();
     foreach ($houseSollyResultA as $v) {
         $propIdsTmp[] = $v['propId'];
     }
     foreach ($houseIds as $v) {
         if (!in_array($v, $propIdsTmp)) {
             $tmp[] = $v;
         }
     }
     if (empty($tmp)) {
         return $houseSollyResultA;
     }
     //当有houseIds的rank在经纪人表中查不到时
     $splitSuffix = Model_Config_huTablesUploadStatus::getSollyXunPanPropResultSplitSuffix();
     $houseSollyResultB = Model_Stats_AjkSollyHouseResult::getHouseSollyResult($tmp, $splitSuffix);
     if (empty($houseSollyResultB)) {
         return $houseSollyResultA;
     }
     //将BI中的数据插入经纪人表中
     foreach ($houseSollyResultB as $v) {
         $data = array('propId' => $v['propId'], 'logTime' => date("Y-m-d", time()), 'cityId' => $v['cityId'], 'rankStar' => $v['rankStar'], 'dataFrom' => 0);
         Model_Activity_Res_SollyXunpanPropResult::insertData($data);
     }
     $houseSollyResult = array_merge($houseSollyResultA, $houseSollyResultB);
     return $houseSollyResult;
 }
예제 #12
0
 /**
  * 获取小区房型供需信息
  *
  * @param int $communityId
  * @return array
  */
 public static function getCommTotalRoomInfo($communityId)
 {
     $uploadDt = Model_Config_huTablesUploadStatus::getStatAjkTotalHpCommRoomDailySd();
     $communityRoomInfoList = Model_Stats_AjkTotalHPCommunityRoomDaily::getCommTotalRoomInfo($communityId, date('Ymd', strtotime($uploadDt)));
     $maxWebProNum = 0;
     //找出最大网站房源量(online_prop),并设置这个值为100,其他的取百分比,并向上取整
     $maxDemandProNum = 0;
     //找出最大找房用户量(valid_vppv_and_pkg_nb),并设置这个值为100,其他的取百分比,并向上取整
     foreach ($communityRoomInfoList as $row) {
         if ($row['onlineProp'] > $maxWebProNum) {
             //找出最大
             $maxWebProNum = $row['onlineProp'];
         }
         if ($row['validVPPVAndPkgNb'] > $maxDemandProNum) {
             $maxDemandProNum = $row['validVPPVAndPkgNb'];
         }
     }
     foreach ($communityRoomInfoList as $key => $row) {
         //转换百分比
         $communityRoomInfoList[$key]['onlineProp'] = ceil($row['onlineProp'] / $maxWebProNum * 100);
         $communityRoomInfoList[$key]['validVPPVAndPkgNb'] = ceil($row['validVPPVAndPkgNb'] / $maxDemandProNum * 100);
     }
     return $communityRoomInfoList;
 }
예제 #13
0
 /**
  * 获得BI数据统计
  * @return array|string
  */
 private function getBIDataTotal()
 {
     $this->splitSuffix = Model_Config_huTablesUploadStatus::getSollyXunPanPropResultSplitSuffix();
     return Model_Stats_AjkSollyHouseResult::getHouseSollyResultTotal($this->splitSuffix);
 }