public function before() { $ret = parent::before(); if ($ret != self::STEP_CONTINUE) { return $ret; } $this->set_ajkmemberid(); $this->set_guid(); /** * @var $request AJKRequest */ $request = @APF::get_instance()->get_request(); /** 判断经纪人是否是套餐经纪人,如果是,跳转到切换页面 */ $brokerID = $request->getBrokerId(); if (isset($brokerID) && $brokerID) { //是否经纪人登录 $brokerInfo = DAO_My_ComboConfig::get_broker_base_info($brokerID); //判断是否端口城市 if ($brokerInfo['PayType'] == 10000 && strpos(strtolower($_SERVER['REQUEST_URI']), 'combochange') === false) { //查询城市配置信息 $ComboConfig = DAO_My_ComboConfig::getComboConfigByCityId($brokerInfo['CityId']); if ($ComboConfig && $ComboConfig['type'] == 0) { if ($brokerInfo['CityId'] == 59) { //跳转到切换页面 APF::get_instance()->get_response()->redirect('http://' . APF::get_instance()->get_config("cdn_pure_static_host", "resource") . '/html/brokercombo/index01.html?_r=' . mt_rand(1000, time())); } else { //跳转到切换页面 APF::get_instance()->get_response()->redirect('http://' . APF::get_instance()->get_config("cdn_pure_static_host", "resource") . '/html/brokercombo/index.html?_r=' . mt_rand(1000, time())); } } } } return self::STEP_CONTINUE; }
public function handle_request_internal() { if (!$this->isBrokerLogin()) { $this->redirect_to_login(); } $request = APF::get_instance()->get_request(); $objResponse = APF::get_instance()->get_response(); $params = $request->get_parameters(); $brokerId = $request->getBrokerId(); $cityId = $request->getBrokerCityId(); $brokerInfo = self::$BrokerInfo['BaseInfo']; //经纪人信息 if ($brokerInfo['PAYTYPE'] == 9999) { $result = array('status' => 1, 'msg' => '已切换!'); } else { //查询是否套餐城市 $ComboConfig = DAO_My_ComboConfig::getComboConfigByCityId($cityId); if ($ComboConfig && $ComboConfig['type'] == 0) { if ($ComboConfig['start_time'] <= time()) { //经纪人状态更新 DAO_My_ComboConfig::comboBrokerChange($brokerId); $result = array('status' => 1, 'msg' => '切换完成!'); } else { $result = array('status' => 3, 'msg' => '后台数据处理中,请等待切换!', 'time' => $ComboConfig['start_time']); } } else { $result = array('status' => 2, 'msg' => '非套餐城市!'); } } //有回调的情况(jsonp) if ($params['callback']) { $objResponse->set_content_type('text/plain'); echo $params['callback'] . "(" . json_encode($result) . ")"; } else { $objResponse->set_content_type('application/json'); echo json_encode($result); } return false; }
/** * 房源更新到solr * @param int $intRequestKey 请求类型 1-房源编号 2-推广编号 3-经纪人编号 * @param int $intRequestVal 请求类型对应的值 * @param int $intStatus 操作状态:1-更新(房源),2-预约 (房源),3-删除 (房源),4-手动推广开始(推广计划), * 5-手动推广结束(推广计划),6-日预算花完(定价推广),7-余额花完停止(定价推广), * 8-预算花完停止 (竞价推广),9-推广周期结束停止(竞价推广),10-经纪人房源下线 * @return int */ public static function updateHouseToSolr($intRequestKey, $intRequestVal, $intStatus) { if ($intRequestKey == 1) { $jpBidInfo = Model_Plan_Jp::getBidPlanByHouseIdV2($intRequestVal); //非套餐城市通知老队列 $ComboConfig = DAO_My_ComboConfig::getComboConfigByCityId($jpBidInfo->cityId); if ($ComboConfig && $ComboConfig['type'] == 0) { return true; } $objDa = new Model_House_UpDown_SolrJinpu(); $objDa->houseId = $intRequestVal; $objDa->status = 1; $objDa->createTime = date('Y-m-d H:i:s'); return $objDa->save(); } else { if ($intRequestKey == 2) { $objDa = new Model_Plan_JpSpreadStatusUpdate(); $objDa->spread_id = $intRequestVal; $objDa->status = $intStatus - 3; $objDa->create_time = date('Y-m-d H:i:s'); return $objDa->save(); } else { if ($intRequestKey == 3) { $objDa = new Model_Plan_JpSpreadBrokerUpdate(); $objDa->member_id = $intRequestVal; $objDa->status = $intStatus == 10 ? 1 : 2; $objDa->create_time = date('Y-m-d H:i:s'); $objDa->save(); } } } }
public function dealTask($solrOnProId) { $houseInfo = Model_House_JpHouseIdx::data_access()->filter('id', $solrOnProId)->get_row(); $brokerInfo = Model_Broker_JpBroker::data_access()->filter('id', $houseInfo['memberId'])->get_row(); if ($houseInfo['isDelete'] == 1) { if ($this->dealFlag) { $result = Bll_Combo_NoticeSolrUpDown::noticeComboSolrJpAPI($this->cityId, $brokerInfo['ajkMemberId'], $solrOnProId, $houseInfo['houseType'], 2); $this->setLog(sprintf('房源 %s 通知中间件返回的结果status=%s ; message=%s' . PHP_EOL, $solrOnProId, $result['status'], $result['message'])); } $this->setLog(sprintf('房源 %s 已经删除, 需要通知solr下' . PHP_EOL, $solrOnProId)); return true; } //查询城市配置信息 $ComboConfig = DAO_My_ComboConfig::getComboConfigByCityId($houseInfo['cityId']); if ($ComboConfig && $ComboConfig['type'] == 0) { //套餐城市 if (!Bll_Combo_HouseRelation::getOnlineRelationByHouseId($solrOnProId, Bll_Combo_HouseRelation::SITE_TYPE_JP)) { if ($this->dealFlag) { $result = Bll_Combo_NoticeSolrUpDown::noticeComboSolrJpAPI($this->cityId, $brokerInfo['ajkMemberId'], $solrOnProId, $houseInfo['houseType'], 2); $this->setLog(sprintf('房源 %s 通知中间件返回的结果status=%s ; message=%s' . PHP_EOL, $solrOnProId, $result['status'], $result['message'])); } $this->setLog(sprintf('房源 %s 不在套餐推广中, 需要通知solr下' . PHP_EOL, $solrOnProId)); return true; } return true; } else { //ppc城市 if ($houseInfo['spreadId'] != 0) { $spreadInfo = Model_Plan_Jp::data_access()->filter('id', $houseInfo['spreadId'])->filter('type', Model_Plan_Jp::ENUM_TYPE_FIX)->filter('isDelete', Model_Plan_Jp::ENUM_IS_DELETE_NO)->get_row(); if ($spreadInfo && $spreadInfo['status'] == 2) { return true; } } if ($this->dealFlag) { $result = Bll_Combo_NoticeSolrUpDown::noticeComboSolrJpAPI($this->cityId, $brokerInfo['ajkMemberId'], $solrOnProId, $houseInfo['houseType'], 2); $this->setLog(sprintf('房源 %s 通知中间件返回的结果status=%s ; message=%s' . PHP_EOL, $solrOnProId, $result['status'], $result['message'])); } $this->setLog(sprintf('房源 %s 不在定价推广中, 需要通知solr下' . PHP_EOL, $solrOnProId)); return true; } }
/** * 判断该task的房子 不在线则通知上 * @param $task * @return bool * @throws Exception */ public function dealTask($task) { $houseInfo = $task; $proId = $houseInfo['id']; $cityId = $houseInfo['cityId']; $brokerInfo = Model_Broker_JpBroker::data_access()->filter('id', $houseInfo['memberId'])->get_row(); //查询城市配置信息 $ComboConfig = DAO_My_ComboConfig::getComboConfigByCityId($cityId); // 判断solr是否在线 不在线通知上 if ($ComboConfig && $ComboConfig['type'] == 0) { //套餐城市 if (Bll_Combo_HouseRelation::getOnlineRelationByHouseId($proId, Bll_Combo_HouseRelation::SITE_TYPE_JP)) { $result = Bll_Combo_NoticeSolrUpDown::noticeComboSolrJpAPI($cityId, $brokerInfo['ajkMemberId'], $proId, $houseInfo['houseType'], 1); $this->setLog(sprintf('房源 %s 通知中间件返回的结果status=%s ; message=%s' . PHP_EOL, $proId, $result['status'], $result['message'])); $this->setLog(sprintf('房源 %s 在套餐推广中, 需要通知solr上' . PHP_EOL, $proId)); return true; } return true; } else { //ppc城市 if ($houseInfo['fixSpreadId'] != 0) { $spreadInfo = Model_Plan_Jp::data_access()->filter('id', $houseInfo['fixSpreadId'])->filter('type', Model_Plan_Jp::ENUM_TYPE_FIX)->filter('isDelete', Model_Plan_Jp::ENUM_IS_DELETE_NO)->get_row(); if ($spreadInfo && $spreadInfo['status'] == 2) { // 定价在线 需要通知上 $result = Bll_Combo_NoticeSolrUpDown::noticeComboSolrJpAPI($cityId, $brokerInfo['ajkMemberId'], $proId, $houseInfo['houseType'], 1); $this->setLog(sprintf('房源 %s 通知中间件返回的结果status=%s ; message=%s' . PHP_EOL, $proId, $result['status'], $result['message'])); $this->setLog(sprintf('房源 %s 在定价推广中, 需要通知solr上' . PHP_EOL, $proId)); return true; } } return true; } }