/** * 获取数据 */ 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); }
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); }