Esempio n. 1
0
 /**
  * 组装未推广列表 取出所有-有效定价房源
  * @param $out
  * @return array
  */
 private static function prepareOutList(&$out)
 {
     $outList = array();
     $outPropIds = array();
     $fixProIds = array_keys($out['props']);
     // 取出经纪人所有非删除房源 (分表)
     $allSearchProps = Model_House_HzPropSearch::getPropLists($out['cityId'], array(array('ajkBrokerId', '=', $out['ajkBrokerId']), array('status', '<>', Const_HzStatus::DELETE), array('status', '<>', Const_HzStatus::OFFLINE), array('status', '<>', Const_HzStatus::OUTPORT), array('status', '<>', Const_HzStatus::HIBERNATE), array('status', '<>', Const_HzStatus::REMOVE), array('status', '<>', Const_HzStatus::EXPIRED)), 1000, array('created', 'desc'));
     if (empty($allSearchProps)) {
         return array();
     }
     // 获取城市价格段
     $allPrices = Model_House_HzPriceChoice::getAllPriceByCityId($out['cityId']);
     $out['getQualityProIds'] = array();
     foreach ($allSearchProps as $allSearchProp) {
         $proId = $allSearchProp['proid'];
         $out['getQualityProIds'][] = $proId;
         // 过滤非删除状态定价
         if (in_array($proId, $fixProIds)) {
             continue;
         }
         $outList[$proId] = $allSearchProp;
         // 获取剩余时间
         $outList[$proId]['leftDays'] = Bll_House_HzHouse::getLeftDays($allSearchProp['created']);
         $outPropIds[] = $proId;
     }
     // 获取改经纪人所有房源质量
     $out['propsQuality'] = Model_Stats_HzPropQuality::getPropsquality($out['getQualityProIds']);
     // 获取如是违规房源 拼接违规原因
     $outList = Bll_HzProp::checkAndGetPropsIllegalInfos($outList);
     // 批量获取主表信息
     if (empty($outPropIds)) {
         return array();
     }
     $props = Model_House_HzProp::getPropsByPropIds($outPropIds);
     if (!$props) {
         return array();
     }
     // 房源主分表信息合并
     foreach ($outList as $proId => $outProp) {
         $outList[$proId] = array_merge($outList[$proId], $props[$proId]);
         // 计算点击价格
         if (!empty($allPrices)) {
             foreach ($allPrices as $priceInfo) {
                 if ($priceInfo['lower'] < $outList[$proId]['pricenum'] && $priceInfo['upper'] >= $outList[$proId]['pricenum']) {
                     $outList[$proId]['unitPrice'] = $priceInfo['price'];
                     break;
                 }
             }
         }
     }
     return $outList;
 }
Esempio n. 2
0
 /**
  * 精选房子计算:默认(0)/可推广(1)/可排队(2)/已排满(3)
  * @param $proInfos
  * @param $cityId
  * @return array
  */
 public static function getPropChoiceStatus($proInfos, $cityId)
 {
     if (empty($proInfos)) {
         return array();
     }
     $priceIds = Model_House_HzPriceChoice::getAllPriceByCityId($cityId);
     if (empty($priceIds)) {
         return array();
     }
     $result = array();
     $choiceStatus = array();
     foreach ($proInfos as $propInfo) {
         // 取价格段id
         $priceNum = isset($propInfo['priceNum']) ? $propInfo['priceNum'] : $propInfo['pricenum'];
         $propInfo['priceId'] = 0;
         foreach ($priceIds as $priceInfo) {
             if ($priceInfo['lower'] < $priceNum && $priceInfo['upper'] >= $priceNum) {
                 $propInfo['priceId'] = $priceInfo['id'];
                 break;
             }
         }
         $propInfo['blockId'] = isset($propInfo['blockId']) ? $propInfo['blockId'] : $propInfo['blockid'];
         // 获取精选状态
         if ($bidBucket = Model_Choice_HzBidBucket::get_bucket_info($propInfo['blockId'], $propInfo['priceId'])) {
             if ($bidBucket['usedNum'] < $bidBucket['maxOnlineNum']) {
                 $choiceStatus['choiceStatus'] = 1;
                 $choiceStatus['choiceMsg'] = '可推广';
             } elseif ($bidBucket['usedNum'] < $bidBucket['totalNum']) {
                 $choiceStatus['choiceStatus'] = 2;
                 $choiceStatus['choiceMsg'] = '可排队';
             } else {
                 $choiceStatus['choiceStatus'] = 3;
                 $choiceStatus['choiceMsg'] = '已排满';
             }
         } else {
             $choiceStatus['choiceStatus'] = 1;
             $choiceStatus['choiceMsg'] = '可推广';
         }
         $result[$propInfo['proId']] = $choiceStatus;
     }
     return $result;
 }