/** * init env * @param AJKRequest $request * @param $out * @throws Exception */ private static function initEnv($request, &$out) { $out['debug'] = isset($_GET['debug']) ? true : false; $out['cityId'] = $request->getBrokerCityId(); $out['ajkBrokerId'] = $request->getBrokerId(); $out['isComboBroker'] = Bll_Broker_HzBroker::isComboBroker($out['ajkBrokerId']); $route_matches = $request->get_router_matches(); $out['proId'] = trim($route_matches[2], "/ \t\n\r\v"); if (!$out['proId']) { throw new Exception('缺少房源Id参数'); } $jpMemberInfo = Model_Broker_JpBroker::getJpBrokerInfoByAjkBrokerId($out['ajkBrokerId']); // 获取金铺brokerId $out['jpBrokerId'] = $jpMemberInfo->id; // 是否精选 $out['isChoiceCity'] = Bll_City::isChoiceCity($out['cityId'], Const_Site::JINPU); $out['isBidCity'] = Bll_City::isBidCity($out['cityId'], Const_Site::JINPU); if ($out['isChoiceCity'] || $out['isBidCity']) { $out['bidTip'] = $out['isChoiceCity'] ? '精选' : '竞价'; $out['bidUrl'] = $out['isChoiceCity'] ? '/ajkbroker/user/choice/set/jp/' . $out['proId'] : '/jinpu/bid/new/' . $out['proId']; } $multicity = APF::get_instance()->get_config("cities", "multicity"); $out['cityName'] = $multicity[$out['cityId']]; // 获取经纪人信息 if (!($out['brokerInfo'] = Model_Broker_JpBroker::data_access()->filter('id', $jpMemberInfo->id)->get_row())) { throw new Exception('获取金铺经纪人信息失败:hzBrokerId [' . $out['hzBrokerId'] . ']'); } }
protected static function init() { try { $idx = Model_House_JpHouseIdx::data_access()->find_by_pk(self::$houseId); self::$memberId = $idx->memberId; } catch (Exception $e) { self::$memberId = 0; $idx = null; } if (!$idx) { return false; } self::$houseType = $idx->houseType; self::$houseModelName = null; self::$houseImgModelName = NULL; self::get_houseModel(); $houseModel = self::$houseModelName; try { $house = $houseModel::data_access()->find_by_pk(self::$houseId); } catch (Exception $e) { } self::$officeExquisite = 0; self::$shopHighQuality = 0; self::$publishTime = 0; self::$spreadOffer = 0; self::$cityId = $idx->cityId; self::$houseUnitPrice = 0; self::$price_75 = null; self::$exquisiteScore = 0; if ($house) { self::$exquisiteScore = $house->exquisiteScore; if (self::$houseCategory == 'office') { self::$officeExquisite = $house->isExquisite; if (self::$houseType == Model_House_JpHouseIdx::ENUM_HOUSE_TYPE_OFFICE_RENT) { self::$houseUnitPrice = $house->dailyRent; $midpricedata = self::get_midprice($house->buildingId); self::$price_75 = !is_null($midpricedata) ? $midpricedata->mid_price_office_rent : null; } else { self::$houseUnitPrice = $house->unitPrice; $midpricedata = self::get_midprice($house->buildingId); self::$price_75 = !is_null($midpricedata) ? $midpricedata->mid_price_office_sale : null; } } elseif (self::$houseCategory == 'shop') { self::$shopHighQuality = $house->isQuality; if (self::$houseType == Model_House_JpHouseIdx::ENUM_HOUSE_TYPE_SHOP_RENT) { self::$houseUnitPrice = $house->dailyRent; $midpricedata = self::get_midprice($house->propertyId); self::$price_75 = !is_null($midpricedata) ? $midpricedata->mid_price_shop_rent : null; } else { self::$houseUnitPrice = $house->unitPrice; $midpricedata = self::get_midprice($house->propertyId); self::$price_75 = !is_null($midpricedata) ? $midpricedata->mid_price_shop_sale : null; } } if ($house->createTime) { self::$publishTime = $house->createTime; } if ($house->spreadOffer) { self::$spreadOffer = $house->spreadOffer; } } if ($idx->spreadId == 0) { self::$spreadType = 0; } else { try { $spread = Model_Plan_Jp::data_access()->find_by_pk($idx->spreadId); } catch (Exception $e) { } if ($spread) { self::$spreadType = $spread->type; } } $objMember = Model_Broker_JpBroker::data_access()->find_by_pk($idx->memberId, false); if ($objMember && $objMember->hasRecharged) { self::$memberType = 2; } return true; }
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; } }
public static function getJpBrokerInfoByAjkBrokerId($ajkBrokerId) { $houseIdxObj = Model_Broker_JpBroker::data_access()->filter_by_op('ajkMemberId', '=', $ajkBrokerId)->filter_by_op('source', '=', 1)->find_only(); return $houseIdxObj; }
public function getMemberBalance($memberId) { $memberInfo = Model_Broker_JpBroker::data_access()->filter('id', $memberId)->get_row(); if (intval($memberInfo['ajkMemberId']) > 0) { $ajkBrokerInfo = Model_Broker_AjkBrokerExtend::data_access()->filter('brokerId', $memberInfo['ajkMemberId'])->get_row(); if (!empty($ajkBrokerInfo) && $ajkBrokerInfo['userId']) { $balanceInfo = Bll_Service_Payment::balance(Bll_Service_Payment::SITE_ANJUKE, array('userId' => $ajkBrokerInfo['userId'])); if ($balanceInfo['status'] == 'error') { return -1; } return $balanceInfo['data']['balance']; } } return -1; }