private static function preparePlanInfo(&$out) { $planInfo = array(); $out['hasChoice'] = false; $out['hasBid'] = false; // 获取房源关系 $planningsTemp = Model_Plan_HzPlanning::getPlanningLists(array(array('proid', '=', $out['proId']), array('is_valid', 'in', array(Const_HzPlan::SPREAD, Const_HzPlan::AUTOOVER, Const_HzPlan::MENUOVER, Const_HzPlan::UPPERLIMIT, Const_HzPlan::ENDTIME, Const_HzPlan::MANUALLY_PAUSE)))); if (empty($planningsTemp)) { return array(); } $out['hasBid'] = true; $planIds = array(); foreach ($planningsTemp as $planning) { $planInfo[$planning['plan_type']]['planning'] = $planning; $planIds[] = $planning['plan_id']; } // 获取计划 $plansTemp = Model_Plan_HzPlanBasic::getPlanLists(array(array('id', 'in', $planIds), array('flag', '=', 1))); if (empty($plansTemp)) { return array(); } foreach ($plansTemp as $plan) { $planInfo[$plan['plan_type']]['plan'] = $plan; if ($plan['bid_version'] == Const_HzPlan::BID_VERSION_CHOICE) { $out['hasChoice'] = true; } } // 如有竞价 if (($out['isBidCity'] || $out['isChoiceCity']) && isset($planInfo[2])) { // 算竞价排名 if ($planInfo[2]['plan']['status'] == Const_HzPlan::SPREAD) { $rank = Bll_Plan_Bid_HzBid::getBidRank($out['proId'], $out['propInfo']['commid'], $out['propInfo']['pricenum'], $planInfo[2]['planning']['unit_price'], $out['cityId']); } else { $rank = '已暂停'; } $planInfo[2]['plan']['rank'] = $rank; } // 是否展示定竞对比模块 $out['isShowFixBidCompare'] = ($out['isBidCity'] || $out['isChoiceCity']) && count($planInfo) >= 2; // 是否展示竞价详细效果 逻辑判断60天内竞价过 if ($out['isBidCity'] || $out['isChoiceCity']) { $out['isShowBidDetailEffect'] = Bll_Plan_Bid_HzBid::isIn60Bid($out['proId']); } else { $out['isShowBidDetailEffect'] = false; } return $planInfo; }
/** * 组装竞价列表 * @param $out * @return array */ private static function prepareBidList(&$out) { $out['bidList'] = array(); $out['bidProIds'] = array(); // 获取计划 $validBidPlans = Model_Plan_HzPlanBasic::getBidPlansByBrokerId($out['hzBrokerId']); if (empty($validBidPlans)) { return array(); } $planIds = array(); $allPlanIds = array(); foreach ($validBidPlans as $plan) { if ($plan['flag'] == 1 && $plan['status'] != Const_HzPlan::DELETE) { $planIds[] = $plan['id']; } $allPlanIds[] = $plan['id']; } // 获取关系 $bidPlannings = Model_Plan_HzPlanning::getPlanningByPlanIds($planIds); // 获取竞价消费信息 //$out['bidComsume'] = Bll_Plan_Bid_HzBid::getBidPlanConsumeAndClickInfos($allPlanIds, date('Ymd')); $out['bidComsume'] = Model_Stats_PropClick::getBillingInfo($out['hzBrokerId'], $out['cityId'], date('Ymd')); if (empty($bidPlannings)) { return array(); } // 组装 foreach ($validBidPlans as $plan) { $planId = $plan['id']; // 拼接关系 foreach ($bidPlannings as $bidPlanning) { $proId = $bidPlanning['proid']; if ($planId != $bidPlanning['plan_id']) { continue; } $out['bidList'][$planId] = $plan; $out['bidList'][$planId]['planning'] = $bidPlanning; // 拼接房子 $prop = isset($out['props'][$proId]) ? $out['props'][$proId] : array(); if (empty($prop)) { unset($out['bidList'][$planId]); continue; } $out['bidList'][$planId]['prop'] = $prop; // 算竞价排名 if ($plan['status'] == Const_HzPlan::SPREAD) { $rank = Bll_Plan_Bid_HzBid::getBidRank($prop['proid'], $prop['commid'], $prop['pricenum'], $bidPlanning['unit_price'], $out['cityId']); } else { $rank = '已暂停'; } $out['bidList'][$planId]['rank'] = $rank; $out['bidProIds'][] = $proId; } } // 排序 前5名 排队 停止 usort($out['bidList'], function ($a, $b) { return is_numeric($a['rank']) && !is_numeric($b['rank']) ? -1 : 1; }); usort($out['bidList'], function ($a, $b) { return $a['rank'] == '已暂停' && $b['rank'] != '已暂停' ? 1 : -1; }); foreach ($out['bidList'] as $k => $v) { $out['bidList'][$v['id']] = $v; unset($out['bidList'][$k]); } // 获取房源竞价点击 if (count($out['bidProIds']) > 0) { $out['bidClicks'] = Bll_Plan_Bid_HzBid::getPropsBidClick($out['bidProIds'], $out['cityId'], $out['hzBrokerId']); } }
/** * 组装竞价列表 * @param $out * @return array */ private static function prepareBidList(&$out) { $bidList = array(); $out['bidProIds'] = array(); // 获取计划 $validBidPlans = Model_Plan_HzPlanBasic::getValidBidPlans($out['hzBrokerId']); if (empty($validBidPlans)) { return array(); } $planIds = array(); foreach ($validBidPlans as $plan) { $planIds[] = $plan['id']; } // 获取关系 $bidPlannings = Model_Plan_HzPlanning::getPlanningByPlanIds($planIds); if (empty($bidPlannings)) { return array(); } // 组装 foreach ($validBidPlans as $plan) { $planId = $plan['id']; // 拼接关系 foreach ($bidPlannings as $bidPlanning) { $proId = $bidPlanning['proid']; if ($planId != $bidPlanning['plan_id']) { continue; } $bidList[$planId] = $plan; $bidList[$planId]['planning'] = $bidPlanning; // 拼接房子 $prop = isset($out['props'][$proId]) ? $out['props'][$proId] : array(); if (empty($prop)) { unset($bidList[$planId]); continue; } $bidList[$planId]['prop'] = $prop; // 算竞价排名 if ($plan['status'] == Const_HzPlan::SPREAD) { $rank = Bll_Plan_Bid_HzBid::getBidRank($prop['proId'], $prop['commId'], $prop['priceNum'], $bidPlanning['unit_price'], $out['cityId']); } else { $rank = '已暂停'; } $bidList[$planId]['rank'] = $rank; $out['bidProIds'][] = $proId; } } // 获取房源竞价点击 if (count($out['bidProIds']) > 0) { $out['bidClicks'] = Bll_Plan_Bid_HzBid::getPropsBidClick($out['bidProIds'], $out['cityId'], $out['hzBrokerId']); } return $bidList; }