Пример #1
0
 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;
 }
Пример #2
0
 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);
     }
 }