/** * 判断房源是否需要上架 * * @param int $houseId * @param int $cityId * @param int $communityId * @param int $price * @param int $smallPrice * @param int $bigPrice * @return bool */ private function checkUpDown($houseId, $cityId, $communityId, $price, $smallPrice, $bigPrice) { //查询价格段id $priceInfo = Model_House_EsfPrice::get_price($cityId, $price); if (empty($priceInfo)) { $this->setMsg(sprintf('未知的价格段;cityId:%d;proPriceInt:%d', $cityId, $price)); return false; } $priceId = $priceInfo['id']; //获取坑位表信息 $BucketInfo = Model_Choice_EsfBidBucket::get_bucket_info($communityId, $priceId); if (empty($BucketInfo)) { $this->setMsg(sprintf('未知的坑位表[community:%d, priceId:%d]信息;', $communityId, $priceId)); return false; } //根据小区id,价格段获取 $choicePlanList = Model_Plan_AjkPropspread::getAjkPropspreadByBucket($communityId, $smallPrice, $bigPrice, 2); if (empty($choicePlanList)) { $this->setMsg(sprintf('未获取到同小区、价格段的房源。commId:%d;smallPrice:%d;bigPrice:%d', $communityId, $smallPrice, $bigPrice)); return true; } foreach ($choicePlanList as $index => $choicePlan) { if ($choicePlan['propId'] == $houseId && $choicePlan['status'] == 11) { /** 更新排队中的数据位推广中 */ if ($index < $BucketInfo['maxOnlineNum']) { Model_Plan_AjkPropspread::setAjkPropspreadById($choicePlan['id'], 1); //记录竞价第一次推广的日志 $firstSpreadLogs = Model_House_PpcPropFirstSpread::getFirstSpreadLogByHouseId($houseId, Model_House_PpcPropFirstSpread::PROP_FIRST_SPREAD_TYPE_CHOICE); if (empty($firstSpreadLogs)) { $firstSpreadLog = array('proId' => $houseId, 'type' => Model_House_PpcPropFirstSpread::PROP_FIRST_SPREAD_TYPE_CHOICE, 'tradeType' => 1, 'addTime' => time(), 'dayDate' => date('Ymd'), 'brokerId' => $choicePlan['brokerId']); if (1 != Model_House_PpcPropFirstSpread::create($firstSpreadLog)->save()) { $this->setMsg(sprintf('房源[%d]写入第一次推广日志失败', $houseId)); } } //通知solr队列 $this->choiceUpDownSendSolr(array('city_id' => $choicePlan['cityId'], 'broker_id' => $choicePlan['brokerId'], 'pro_id' => $choicePlan['propId'], 'flag' => 1, 'hpratio' => $choicePlan['offer'], 'comms_hpratio_a' => $choicePlan['commsHpratioA'], 'comms_hpratio' => $choicePlan['commsHpratio'], 'hpstarttime' => $choicePlan['spreadstartdate'], 'hpendtime' => $choicePlan['spreadenddate'], 'hpplanid' => $choicePlan['id'], 'update_time' => time(), 'from_type' => 151)); //记录房源日志 Model_Log_HouseLogNew::create(array('houseId' => $choicePlan['propId'], 'planId' => $choicePlan['id'], 'brokerId' => $choicePlan['brokerId'], 'cityId' => $choicePlan['cityId'], 'type' => 14, 'changeType' => '40' . $this->qInfo['actionId'], 'remark' => '计划' . $choicePlan['id'] . $this->actionStr[$this->qInfo['actionId']] . ';重新计算价格段内排名,精选推广', 'operatorId' => $this->qInfo['operationId'], 'siteType' => 1), date('Ymd'))->save(); $this->setMsg(sprintf('planId:%d变更为推广', $choicePlan['id'])); } break; } } return true; }