/** * 组装未推广列表 取出所有-有效定价房源 * @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; }
/** * 精选房子计算:默认(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; }