示例#1
0
 /**
  * 判断房源是否需要上架
  *
  * @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;
 }