Exemplo n.º 1
0
 /**
  * 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'] . ']');
     }
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 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;
     }
 }
Exemplo n.º 4
0
 /**
  * 判断该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;
     }
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 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;
 }