/**
  * 查询房子 如果删除、过期则通知下 更新套餐关系
  * @param $task
  * @return bool
  */
 public function dealTask($task)
 {
     $proId = $task['houseId'];
     $propInfo = Bll_House_HzHouse::getPropInfo($proId, $task['cityId'], 2);
     printf('[%s] 房源[%d]: %s' . PHP_EOL, date('Y-m-d H:i:s'), $proId, json_encode($propInfo));
     if ($propInfo && $propInfo['status'] == 1 && !in_array($propInfo['msg']['status'], array(Const_HzStatus::VERIFY, Const_HzStatus::REMOVE, Const_HzStatus::EXPIRED))) {
         printf('房源 %s 状态为%s, 不需要处理' . PHP_EOL, $proId, $propInfo['msg']['status']);
         return true;
     }
     printf('房源 %s 状态为%s, 需要通知solr下,更新套餐关系为204' . PHP_EOL, $proId, $propInfo['msg']['status']);
     // 通知solr
     $result = Bll_Combo_NoticeSolrUpDown::noticeComboSolrHzAPI($task['cityId'], $task['brokerId'], $proId, 2);
     printf('房源 %s 通知中间件返回的结果status=%s ; message=%s' . PHP_EOL, $proId, $result['status'], $result['message']);
     // 更新套餐关系
     $result = Bll_Combo_HouseRelation::updateHouseComboSpreadState($task['brokerId'], $proId, 'hz', 204);
     printf('房源 %s 更新套餐关系返回的结果message=%s' . PHP_EOL, $proId, $result ? '成功' : '失败');
     return true;
 }
Пример #2
0
 /**
  * 通知solr下架房源
  *
  * @param array $record
  * @return bool
  */
 public function noticeDownSolrZf($record)
 {
     $downType = array(3, 8, 9);
     $this->setLog('好租房源删除、到期、违规,通知solr 下架房源');
     if (!in_array($record['type'], $downType)) {
         $this->setLog(sprintf('通知solr 下架房源,日志类型不是[%s]', implode(',', $downType)));
         return false;
     }
     $resArr = Bll_Combo_NoticeSolrUpDown::noticeComboSolrHzAPI($record['cityId'], $record['brokerId'], $record['houseId'], 2, 2, Bll_Combo_NoticeSolrUpDown::HLS_FROM_DELETE_HOUSE, strtotime($record['addDate']), date('Ymd', strtotime($record['addDate'])) . $record['id']);
     if ($resArr['status'] != 'ok') {
         $this->setLog(sprintf('solr处理失败 res:%s', json_encode($resArr)));
         return false;
     }
     $this->setLog(sprintf('solr处理成功 res:%s', $record['id'], json_encode($resArr)));
     return true;
 }
Пример #3
0
 public function dealTask($task)
 {
     $solrOnProId = $task['id'];
     //1:老端口房源(安居客经纪人发的租房房源)
     //3:租房经纪人房源
     //0:个人房源
     $from = $task['from'];
     if ($from == 1) {
         return true;
     }
     // 查主表获取cityId 如果没有则标记邮件发出
     $propInfo = Model_House_HzProp::get_prop_info_by_prop_id($solrOnProId);
     if ($propInfo && $propInfo['contentBasic']['status'] == 1) {
         $this->proceLog .= 'remark 房源推广中';
         return true;
     }
     // 房源没有或者不在线 通知solr下  且发邮件
     $type = 2;
     if ($from == 0) {
         $type = 1;
     }
     // 个人房源
     // 如果新端口 走中间件
     if (Bll_City::isComboCity($task['city_id'])) {
         Bll_Combo_NoticeSolrUpDown::noticeComboSolrHzAPI($task['city_id'], $propInfo['contentBasic']['userid'], $solrOnProId, 2, $type);
     } else {
         Dao_Broker_HzProp::into_prop_lucene($solrOnProId, $task['city_id'], 2, $type);
     }
     if (empty($propInfo)) {
         $this->proceLog .= 'remark 房源未找到';
         $this->emptyPropIds[] = $solrOnProId;
     } else {
         $this->proceLog .= 'remark 房源非推广 status:' . $propInfo['contentBasic']['status'];
         $this->errorPropIds = $solrOnProId;
     }
     return true;
 }
Пример #4
0
 public function dealTask($task)
 {
     $solrOnProId = $task['id'];
     // 只下经纪人
     //1:老端口房源(安居客经纪人发的租房房源)
     //3:租房经纪人房源
     //0:个人房源
     $from = $task['from'];
     if ($from != 3) {
         printf('非经纪人房源 %s 不用处理' . PHP_EOL, $solrOnProId);
         return true;
     }
     if ($onlineComboRelation = Bll_Combo_HouseRelation::getOnlineRelationByHouseId($solrOnProId, Bll_Combo_HouseRelation::SITE_TYPE_HZ)) {
         printf('房源 %s 已经在套餐推广中, 不用通知solr下' . PHP_EOL, $solrOnProId);
         return true;
     }
     // 房源没有或者不在线 通知solr下
     //Dao_Broker_HzProp::into_prop_lucene($solrOnProId, $this->cityId, 2);
     $result = Bll_Combo_NoticeSolrUpDown::noticeComboSolrHzAPI($this->cityId, $onlineComboRelation['brokerId'], $solrOnProId, 2);
     printf('房源 %s 没有在套餐推广中, 需要通知solr下' . PHP_EOL, $solrOnProId);
     printf('房源 %s 通知中间件返回的结果status=%s ; message=%s' . PHP_EOL, $solrOnProId, $result['status'], $result['message']);
     return true;
 }
Пример #5
0
 public function dealTask($task, $solrProIds)
 {
     $proId = $task['proid'];
     if (in_array($proId, $solrProIds)) {
         return true;
     }
     // 没有则通知solr上  且发邮件
     // 如果新端口 走中间件
     if (Bll_City::isComboCity($task['cityid'])) {
         Bll_Combo_NoticeSolrUpDown::noticeComboSolrHzAPI($task['city_id'], $task['userid'], $proId, 2);
     } else {
         Dao_Broker_HzProp::into_prop_lucene($proId, $task['cityid'], 1);
     }
     $this->errorPropIds[] = $proId;
     return true;
 }