public function handle_request() { $zeroOfferPlanList = Model_Plan_EsfAjkPropSpread::scanPlan0Offer($this->_startId, self::BATCH_LIMIT); if (empty($zeroOfferPlanList)) { $this->logMsg(sprintf('startId: %d 没有获取到计划。', $this->_startId)); file_put_contents($this->_doneFile, 'DONE'); } foreach ($zeroOfferPlanList as $planInfo) { $cityId = $planInfo['cityId']; $houseId = $planInfo['propId']; $planId = $planInfo['id']; $brokerId = $planInfo['brokerId']; $houseInfo = Bll_House_EsfHouse::getHouseBaseInfoEx($houseId, $planInfo['cityId']); if (empty($houseInfo)) { $this->logMsg(sprintf('经纪人[%d] 城市[%d] 房源[%d]没有找到,计划[%d]', $brokerId, $cityId, $houseId, $planId)); continue; } $housePrice = $houseInfo['proPrice'] * 10000; /** * 获取小区价格段出价 */ $clickPrice = Bll_Service_Choice::ajkClickPrice(array('brokerId' => $planInfo['brokerId'], 'cityId' => $cityId, 'price' => $housePrice, 'commId' => $houseInfo['commId'])); if ($clickPrice['status'] == 'error') { $this->logMsg(sprintf('经纪人[%d] 城市[%d] 房源[%d] 计划[%d] 小区[%d] 价格[%d] 获取点击价格失败', $brokerId, $cityId, $houseId, $planId, $houseInfo['commId'], $housePrice)); continue; } if ($clickPrice['realTradeAmount'] != $clickPrice['shouldTradeAmount']) { $offer = $clickPrice['realTradeAmount']; } else { $offer = $clickPrice['realTradeAmount']; } file_put_contents($this->_doneFile, 'DONE'); $this->logMsg(sprintf('经纪人[%d] 城市[%d] 房源[%d] 计划[%d] 小区[%d] 价格[%d] 出价[%d]', $brokerId, $cityId, $houseId, $planId, $houseInfo['commId'], $housePrice, $offer)); continue; if (!Model_Plan_EsfAjkPropSpread::updateOffer($planId, $offer)) { $this->logMsg(sprintf('经纪人[%d] 城市[%d] 房源[%d] 计划[%d] 小区[%d] 价格[%d] 更新出价失败', $brokerId, $cityId, $houseId, $planId, $houseInfo['commId'], $housePrice)); continue; } $this->logMsg(sprintf('经纪人[%d] 城市[%d] 房源[%d] 计划[%d] 小区[%d] 价格[%d] 更新出价成功', $brokerId, $cityId, $houseId, $planId, $houseInfo['commId'], $housePrice)); } if (count($zeroOfferPlanList) < self::BATCH_LIMIT) { file_put_contents($this->_doneFile, 'DONE'); } }