/**
  * 获取数据
  */
 public function getData()
 {
     $nowDate = date('Ymd');
     $list = Model_Log_HouseLogNew::getProLogList($nowDate, $this->lastId, $this->limit);
     if (empty($list)) {
         return array();
     }
     return $list;
 }
 public function handle_request()
 {
     //分表
     $date = date('Ymd');
     $id = 0;
     //获取游标
     $dateFlag = $this->getFlag();
     if (!empty($dateFlag)) {
         $date = $dateFlag['date'];
         $id = $dateFlag['id'];
     }
     //竞价队列数据获取
     $ProLogList = Model_Log_HouseLogNew::getProLogList($date, $id, $this->limit);
     //判断当前队列是否处理完成
     if (empty($ProLogList)) {
         //判断是否切换表
         if ($date < date('Ymd')) {
             $date = date('Ymd', strtotime($date) + 24 * 3600);
             $id = 0;
             //记录表游标
             $this->setFlag(array('date' => $date, 'id' => $id));
         }
         //休息1秒钟
         $this->setShCommonSleepTime(1);
         $this->setLog('处理完成');
         exit;
     }
     //队列数据处理
     foreach ($ProLogList as $list) {
         $id = $list['id'];
         $this->setFlag(array('date' => $date, 'id' => $id));
         $this->setLog(json_encode($list));
         $this->setLogPrefix(sprintf('[brokerId=%d, houseId=%d, type=%d]', $list['brokerId'], $list['houseId'], $list['type']));
         //1-新发,2-编辑,3-删除,4-房源更新,5-推广,6-取消推广,7-第二天推广,8 -违规, 9-到期, 10-加入计划, 11-移出计划,12-取消第二天推广,13-精选排队中,14-精选推广,15-取消精选推广或排队
         //20-套餐房源推广,21-套餐房源取消推广
         $notifyBidQueueType = array(2, 3, 8, 9, 11, Const_ProLogType::LOG_REMOVE_FROM_COMBO, Model_Log_HouseLogNew::TYPE_COMMUNITY_AREA_CHANGE_EX, Const_ProLogType::LOG_PRICE_INTERVAL_CHANGE, Const_ProLogType::LOG_COMMUNITY_MERGE);
         if (!in_array($list['type'], $notifyBidQueueType)) {
             $this->setLog(sprintf('不需处理[notifyBidQueueType: %s]', implode(',', $notifyBidQueueType)));
             continue;
         }
         //房源移出定价计划
         if ($list['type'] == 11) {
             $this->proRemoveFromPlan($list);
             continue;
         }
         //房源修改,价格变更
         if ($list['type'] == 2) {
             if ($list['changeType'] == Const_ProPlanChangeType::PRO_PRICE_CHANGE) {
                 $this->proEdit($list);
             } else {
                 $this->setLog(sprintf('brokerId=%d, houseId=%d, type=%d, 非价格变更', $list['brokerId'], $list['houseId'], $list['type']));
             }
             continue;
         }
         //房源取消套餐推广(非解绑状态)
         if ($list['type'] == Const_ProLogType::LOG_REMOVE_FROM_COMBO) {
             //获取该城市精选套餐解绑配置
             $isChoiceIndependentCity = Bll_City::isChoiceIndependentCity($list['cityId'], $list['siteType']);
             if (!$isChoiceIndependentCity) {
                 $this->proRemoveFromCombo($list);
             } else {
                 $this->setLog(sprintf('精选解绑城市[%d]', $list['cityId']));
             }
             continue;
         }
         /** 房源区域板块变更,判断是否要通知精选 */
         if ($list['type'] == Model_Log_HouseLogNew::TYPE_COMMUNITY_AREA_CHANGE_EX && $list['siteType'] == 2) {
             $this->hzHouseBlockIdChange($list);
             continue;
         }
         /** 二手房小区合并,判断是否要通知精选 */
         if ($list['type'] == Const_ProLogType::LOG_COMMUNITY_MERGE && $list['siteType'] == 1) {
             $this->ajkCommunityMerge($list);
             continue;
         }
         if (($list['type'] == Const_ProLogType::LOG_PROPERTY_AREA_CHANGE || $list['type'] == Const_ProLogType::LOG_BUILDING_AREA_CHANGE) && $list['siteType'] == 3) {
             $this->jpHouseBlockIdChange($list);
             continue;
         }
         if (in_array($list['type'], array(3, 8, 9))) {
             $this->proDelete($list);
             continue;
         }
         if ($list['type'] == Const_ProLogType::LOG_PRICE_INTERVAL_CHANGE && $list['siteType'] == 1) {
             $this->housePriceIntervalChange($list);
             continue;
         }
     }
     //休息10毫秒
     $this->setShCommonSleepTime(0.01);
 }
Esempio n. 3
0
 public function handle_request()
 {
     //分表
     $date = date('Ymd');
     $id = 0;
     //获取游标
     $dateFlag = $this->getFlag();
     if (!empty($dateFlag)) {
         $date = $dateFlag['date'];
         $id = $dateFlag['id'];
     }
     //竞价队列数据获取
     $ProLogList = Model_Log_HouseLogNew::getProLogList($date, $id, $this->limit);
     //判断当前队列是否处理完成
     if (empty($ProLogList)) {
         //判断是否切换表
         if ($date < date('Ymd')) {
             $date = date('Ymd', strtotime($date) + 24 * 3600);
             $id = 0;
             //记录表游标
             $this->setFlag(array('date' => $date, 'id' => $id));
         }
         //休息1秒钟
         $this->setShCommonSleepTime(1);
         $this->setLog(date('Y-m-d H:i:s') . ' 处理完成');
         exit;
     }
     //队列数据处理
     foreach ($ProLogList as $list) {
         $id = $list['id'];
         $time = 0;
         //查询房源的发布时间
         if ($list['siteType'] == 1) {
             //二手房
             $ajkProInfo = Bll_House_EsfHouse::getHouseInfo($list['houseId'], $list['cityId']);
             if ($ajkProInfo->postDate) {
                 $time = $ajkProInfo->postDate;
             }
         } elseif ($list['siteType'] == 2) {
             $hzProInfo = Model_House_HzPropSearch::get_prop_by_prop_id($list['cityId'], $list['houseId']);
             if ($hzProInfo['created']) {
                 $time = $hzProInfo['created'];
             }
         } elseif ($list['siteType'] == 3) {
             $jpProInfo = Model_House_JpHouseIdx::getPropInfoByPk($list['houseId']);
             if ($jpProInfo['createTime']) {
                 $time = strtotime($jpProInfo['createTime']);
             }
         }
         //写索引表
         if (!empty($time)) {
             //查询数据是否存在
             $ProLogIndex = Model_Log_HouseLogIndexNew::getProLogIndexByProId($list['houseId'], date('Ymd', strtotime($list['addDate'])), $list['siteType'], date('Ymd', $time));
             if (!empty($ProLogIndex)) {
                 //记录处理日志
                 $this->setLog(date('Y-m-d H:i:s') . ' id:' . $list['id'] . ' 城市id:' . $list['cityId'] . ' 经纪人:' . $list['brokerId'] . ' 房源:' . $list['houseId'] . ' 网站:' . $list['siteType'] . '  房源创建时间:' . date('Y-m-d H:i:s', $time) . ' remark:索引已存在');
                 continue;
             }
             try {
                 Model_Log_HouseLogIndexNew::create(array('proId' => $list['houseId'], 'datei' => date('Ymd', strtotime($list['addDate'])), 'siteType' => $list['siteType']), date('Ymd', $time))->save();
             } catch (Exception $e) {
                 print_r($e);
             }
             //记录处理日志
             $this->setLog(date('Y-m-d H:i:s') . ' id:' . $list['id'] . ' 城市id:' . $list['cityId'] . ' 经纪人:' . $list['brokerId'] . ' 房源:' . $list['houseId'] . ' 网站:' . $list['siteType'] . '  房源创建时间:' . date('Y-m-d H:i:s', $time) . ' remark:创建索引');
         } else {
             //记录处理日志
             $this->setLog(date('Y-m-d H:i:s') . ' id:' . $list['id'] . ' 城市id:' . $list['cityId'] . ' 经纪人:' . $list['brokerId'] . ' 房源:' . $list['houseId'] . ' 网站:' . $list['siteType'] . '  remark:未找到房源信息');
         }
     }
     $this->setFlag(array('date' => $date, 'id' => $id));
     //休息10毫秒
     $this->setShCommonSleepTime(0.01);
 }