예제 #1
0
 /**
  * 获取小区在板块中的排名和小区房源数
  * @param $commId
  * @return array|bool|string
  */
 public static function getVppvOrderAndPropNum($commId)
 {
     if (!$commId) {
         return false;
     }
     $yesterday = date('Ymd', strtotime("-1 day"));
     $cacheTime = strtotime(date("Y-m-d 09:00:00"));
     //每天9点之后的数据开始缓存
     $key = sprintf('%s_%s_%d', __CLASS__, __METHOD__, $commId);
     $cacheObj = APF_Cache_Factory::get_instance()->get_memcache();
     $result = $cacheObj->get($key);
     if ($result && time() > $cacheTime) {
         return $result;
     }
     $result = array();
     // 当前小区的vppv
     $commVppcInfo = Model_Stats_HzCommVppvDaily::getCommVppvInfo($commId, $yesterday);
     $vppv = $commVppcInfo ? $commVppcInfo['vppv'] : 0;
     $result['propNum'] = $commVppcInfo ? $commVppcInfo['propNum'] : 0;
     // 小区对应的板块id
     $solrCommInfo = Util_SearchUtil::getHzCommInfo($commId);
     $blockId = $solrCommInfo ? $solrCommInfo['block_id'] : 0;
     $result['order'] = 0;
     if ($blockId) {
         //取板块下vppv当大于当前小区的总数
         $total = Model_Stats_HzCommVppvDaily::getCommCntGtVppvByBlockId($blockId, $yesterday, $vppv);
         $result['order'] = $total ? $total + 1 : ($vppv ? 1 : 0);
     }
     $cacheObj->set($key, $result, 0, self::EXPIRE_TIME);
     return $result;
 }