public function getTasks() { $condition = array(array('id', '>', $this->lastLogId), array('cityId', 'in', Bll_City::getCloseShowCaseCities()), array('status', '=', Const_ShowcaseOrders::STATUS_VALID)); $sort = array('id', 'asc'); if ($this->dataBase == Const_ShowcaseOrders::SALE_DB) { $tasks = Model_Broker_AdSetSale::getList($condition, $this->limit, $sort); } else { $tasks = Model_Broker_AdSetRent::getList($condition, $this->limit, $sort); } return $tasks; }
public function handle_request() { $adSetList = $this->getRequestData(); foreach ($adSetList as $adsetVal) { // 城市关闭改功能,则无需扣费 if (in_array($adsetVal['cityId'], Bll_City::getCloseShowCaseCities())) { continue; } $cityPrice = 0; $this->createTime = time(); $updateConsumeArr = array(); /* *1.设置ad_set.status = 2,为正在处理中 更新ad_set为处理状态(更新失败,跳出继续执行下一跳数据) */ $check = Bll_Broker_ShowcaseOrders::getInstance()->updateOrderInfo(array('id' => $adsetVal->id, 'status' => Const_ShowcaseOrders::STATUS_VALID), array('status' => Const_ShowcaseOrders::STATUS_DO), $this->_dateBase); if ($check['status'] == false) { continue; } $adsetVal->add_old_property_value('status', 2); /* * 2.获取昨日经纪人扣费信息 $this->y_date,$brokerId */ $tmpAdConsumeData = Bll_Broker_ShowcaseConsumeQuery::getInstance()->getDataByBrokerIdAndDate($adsetVal->brokerId, $this->yDate, $this->_dateBase); /* * 3.判断 $adConsumeData 是否存在 */ if (empty($tmpAdConsumeData)) { if (!empty($this->_city_price[$adsetVal->cityId])) { $cityPrice = $this->_city_price[$adsetVal->cityId]; } else { $tmpArr = array('cityId' => $adsetVal->cityId, 'status' => 1, 'startDate' => $this->yDate); $tmpCityPrice = Bll_Broker_ConfigCityPrice::getInstance()->getCityPrice($tmpArr, $this->_dateBase); if ($tmpCityPrice) { $cityPrice = $tmpCityPrice->discountPrice > 0 ? $tmpCityPrice->discountPrice : 0; } $this->_city_price[$adsetVal->cityId] = $cityPrice; } if (empty($cityPrice)) { $this->textOutput($adsetVal, "扣费价格为0", true); } $adConsumeData = $this->addConsume($adsetVal, $cityPrice); if (empty($adConsumeData)) { continue; } // 生存requestId,并保存 $requestId = Bll_Broker_ShowcaseConsumeQuery::getInstance()->getPayMentRequestId($adConsumeData->id, $adConsumeData->dateIndex, $this->_dateBase); $adConsumeData->requestId = $requestId; $adConsumeData->updateTime = date("Y-m-d H:i:s", time()); $adConsumeData->save(); if ($adsetVal->startDate <= $this->yDate && $this->yDate <= $adsetVal->endDate) { // 获取昨日推广房源 $yesterdayPropData = Bll_Broker_ShowcaseAdSetPro::getInstance()->getBrokerHouses($adsetVal->brokerId, $this->yDate, $this->_dateBase); $yesterdayComboPropData = Bll_Broker_ShowcaseAdSetPro::getInstance()->getComboBrokerHouses($adsetVal->brokerId, $this->yDate, $this->_dateBase); $yesterdayPropData = $yesterdayPropData + $yesterdayComboPropData; if ($yesterdayPropData <= 0) { $updateConsumeArr['status'] = 2; $this->updateAdConsumeLogTable($adConsumeData, $updateConsumeArr, 1, '', '无主推房源'); } else { $this->consumeMainProcess($adsetVal, $adConsumeData, $yesterdayPropData); } } else { $updateConsumeArr['status'] = 3; $this->updateAdConsumeLogTable($adConsumeData, $updateConsumeArr, 1, '', '不在扣费范围'); } } else { $adConsumeData = $tmpAdConsumeData[0]; if (empty($adConsumeData->price)) { $this->textOutput($adsetVal, "扣费价格为0", true); } /* * 4. $adConsumeData 存在 */ if ($adConsumeData->status == 0) { // 判断是否处理过 // 生存requestId,并保存 $requestId = Bll_Broker_ShowcaseConsumeQuery::getInstance()->getPayMentRequestId($adConsumeData->id, $adConsumeData->dateIndex, $this->_dateBase); $adConsumeData->requestId = $requestId; $adConsumeData->updateTime = date("Y-m-d H:i:s", time()); $adConsumeData->save(); // 获取昨日推广房源 $yesterdayPropData = Bll_Broker_ShowcaseAdSetPro::getInstance()->getBrokerHouses($adsetVal->brokerId, $this->yDate, $this->_dateBase); $yesterdayComboPropData = Bll_Broker_ShowcaseAdSetPro::getInstance()->getComboBrokerHouses($adsetVal->brokerId, $this->yDate, $this->_dateBase); $yesterdayPropData = $yesterdayPropData + $yesterdayComboPropData; if ($yesterdayPropData <= 0) { $updateConsumeArr['status'] = 2; $this->updateAdConsumeLogTable($adConsumeData, $updateConsumeArr, 1, '', '无主推房源'); } else { // 扣钱操作正式开始 $this->consumeMainProcess($adsetVal, $adConsumeData, $yesterdayPropData); } } } $this->updateAdsetTable($adsetVal); } }