public function handle_request() { $apf = APF::get_instance(); $request = $apf->get_request(); $response = $apf->get_response(); try { $key = $request->get_parameter('key'); $hash = $request->get_parameter('hash'); $brokerId = $request->get_parameter('broker_id'); if (!($key && $hash && $brokerId)) { throw new Exception_ChristmasException('Parameters incomplete.', self::CODE_PARAMETERS_INCOMPLETE); } $params = $request->get_parameters(); unset($params['hash']); ksort($params); // 按照键值排序(升序)所有参数 $params['secret'] = self::$account['secret']; $query = http_build_query($params); if (md5($query) !== $hash) { throw new Exception_ChristmasException('Parameters invalid.', self::CODE_PARAMETERS_INVALID); } // 获取经纪人详情 self::$BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); $userId = self::$BrokerInfo['BaseInfo'][strtoupper('userId')]; // 判断经纪人是否通过双证验证 if (self::$BrokerInfo['BaseInfo'][strtoupper('checkstate')] == 0) { throw new Exception_ChristmasException('Check state first.', self::CODE_NOT_CHECK_STATE); } // 判断今天是否已经送过锤子 if (Model_Christmas_HammerLog::hammerLogForApp($brokerId, date('Y-m-d'))) { throw new Exception_ChristmasException('Already gifted, today.', self::CODE_ALREADY_GIFTED); } // 经纪人添加锤子 Model_Christmas_BrokerHammer::incrBrokerHammerForApp($brokerId); // 发送系统消息 $messages = Util_Christmas::messages(); if (isset($messages[Model_Christmas_HammerLog::TYPE_APP_PUBLISH_HOUSE])) { Bll_Service_Message::sendSystem(array('receiverIds' => $userId, 'message' => $messages[Model_Christmas_HammerLog::TYPE_APP_PUBLISH_HOUSE])); } $result = array('code' => self::CODE_SUCCESS, 'message' => 'Success.'); } catch (Exception_ChristmasException $e) { $result = array('code' => $e->getCode(), 'message' => $e->getMessage()); } catch (Exception $e) { // 500 Error // http_response_code('500'); $result = array('code' => '500', 'message' => 'Server Error.'); } $response->set_content_type('application/json', 'UTF-8'); $response->add_header('Cache-Control', 'no-cache, no-store, must-revalidate'); $response->add_header('Pragma', 'no-cache'); $response->add_header('Expires', 0); echo json_encode($result); die; }
public function handle_request_internal() { $request = APF::get_instance()->get_request(); $broker = self::$BrokerInfo; $brokerIdentity = Bll_BrokerBaseBll::get_instance()->get_broker_identity_info_v2($broker['BaseInfo']['brokerId']); if (empty($broker['BaseInfo']) || empty($brokerIdentity)) { apf_require_class("Uri_Http"); //Uri_Http::redirect_header("/user/broker/new/brokerinfo/"); Uri_Http::redirect_header("/ajkbroker/broker/modify/brokerinfo/"); } $broker['UsrCardState'] = $brokerIdentity['IdentityInfo']['usrCardState']; $broker['UsrPhotoTmpState'] = $brokerIdentity['IdentityInfo']['userPhotoTmpState']; $broker['UsrPhotoState'] = $brokerIdentity['IdentityInfo']['userPhotoState']; $broker['BnsCardState'] = $brokerIdentity['IdentityInfo']['bnsCardState']; $broker['CheckState'] = $brokerIdentity['IdentityInfo']['checkState']; // $area = $this->getBlockName(substr($broker['BaseInfo']['areaCode'], 4, 4)); // $block = $this->getBlockName(substr($broker['BaseInfo']['areaCode'], 8, 4)); $area = Bll_Commtype_Api::getInfoByTypeCodeV2(substr($broker['BaseInfo']['areaCode'], 0, 8)); $block = Bll_Commtype_Api::getInfoByTypeCodeV2($broker['BaseInfo']['areaCode']); $broker['CityName'] = $this->getCityName($broker['BaseInfo']['cityId']); $broker['AreaName'] = $area['typeName']; $broker['BlockName'] = $block['typeName']; //获得最后提交资料 $lastupdata = Bll_BrokerBaseBll::get_instance()->getLastPostFile($broker['BaseInfo']['brokerId']); $brokerCheckInfoBll = new Bll_Broker_BrokerCheckInfo(); //获取经纪人最近一次头像或名片审核不通过的原因记录 if ($broker['UsrPhotoState'] == 2) { $brokerTheLastCheck = $brokerCheckInfoBll->getBrokerTheLastCheckInfo($broker['BaseInfo']['brokerId'], 1); $faceLastCheckInfo = $brokerTheLastCheck['content']; } else { $faceLastCheckInfo = $brokerCheckInfoBll->getNoPassExp($broker['BaseInfo']['brokerId'], 1); //1图像 } $brokerTheLastCheckInfo = $brokerCheckInfoBll->getBrokerTheLastCheckInfo($broker['BaseInfo']['brokerId'], 2); //名片 $mingpianLastCheckInfo = $brokerCheckInfoBll->getNoPassExp($broker['BaseInfo']['brokerId'], 3); //名片 $idCardLastCheckInfo = $brokerCheckInfoBll->getNoPassExp($broker['BrokerId'], 2); //电话锁定状态 $phoneLockInfo = $brokerCheckInfoBll->getLockStatus($broker['BaseInfo']['brokerId']); if ($phoneLockInfo['company_id'] == $broker['BaseInfo']['companyId'] && $phoneLockInfo['status'] == 1) { $phoneLockStatus = 1; } else { $phoneLockStatus = 0; } $request->set_attribute('broker', $broker); $request->set_attribute('lastupdata', $lastupdata); $request->set_attribute('faceLastCheckInfo', $faceLastCheckInfo); $request->set_attribute('mingpianLastCheckInfo', $mingpianLastCheckInfo); $request->set_attribute('phoneLockStatus', $phoneLockStatus); $request->set_attribute('idCardLastCheckInfo', $idCardLastCheckInfo); $request->set_attribute('brokerTheLastCheckInfo', $brokerTheLastCheckInfo); return 'Broker_BrokerInfo'; }
public function handle_request() { $apf = APF::get_instance(); $request = $apf->get_request(); $response = $apf->get_response(); try { // 判断经纪人是否已经登陆 if (!$this->isBrokerLogin()) { throw new Exception_ChristmasException('Login first.', self::CODE_NOT_LOGIN); } // 获取经纪人详情 self::$BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info(self::$intBrokerID); $brokerId = self::$BrokerInfo['BaseInfo'][strtoupper('brokerid')]; $userId = self::$BrokerInfo['BaseInfo'][strtoupper('userId')]; // 判断经纪人是否通过双证验证 if (self::$BrokerInfo['BaseInfo'][strtoupper('checkstate')] == 0) { throw new Exception_ChristmasException('Check state first.', self::CODE_NOT_CHECK_STATE); } // 判断是否是有效页面 $type = $request->get_parameter('type'); if (!Model_Christmas_HammerLog::validatePageType($type)) { throw new Exception_ChristmasException('Invalid page type.', self::CODE_INVALID_TYPE); } // 判断该页面是否已经领过锤子 if ($hammerLog = Model_Christmas_HammerLog::hammerLogForPage($brokerId, $type)) { throw new Exception_ChristmasException('Already sought.', self::CODE_ALREADY_SOUGHT); } $is_check = $request->get_parameter('is_check'); if ($is_check != true) { // 经纪人添加锤子 Model_Christmas_BrokerHammer::incrBrokerHammerForPage($brokerId, $type, 1); // 发送系统消息 $messages = Util_Christmas::messages(); if (isset($messages[$type])) { Bll_Service_Message::sendSystem(array('receiverIds' => $userId, 'message' => $messages[$type])); } } $result = array('code' => self::CODE_SUCCESS, 'message' => 'Success.'); } catch (Exception_ChristmasException $e) { $result = array('code' => $e->getCode(), 'message' => $e->getMessage()); } catch (Exception $e) { // 500 Error // http_response_code('500'); $result = array('code' => '500', 'message' => 'Server Error.'); } $response->set_content_type('application/json', 'UTF-8'); $response->add_header('Cache-Control', 'no-cache, no-store, must-revalidate'); $response->add_header('Pragma', 'no-cache'); $response->add_header('Expires', 0); echo json_encode($result); die; }
/** * 检查手机是否被使用 * * @param $mobile 手机号 * @return int 1 没有被占用 2 被经纪人占用 3 被用户占用 4异常错误 */ public function checkmobile($mobile) { $checkBrokerResult = Bll_BrokerBaseBll::get_instance()->checkBrokerMobileExists_v2($mobile); if ($checkBrokerResult['checkMobileExist']) { return 2; } //检查普通用户是否注册此手机号 $checkUserResult = $this->checkUserMobile($mobile); if ($checkUserResult->status == 'ok' && $checkUserResult->result != -1) { return 3; } return 1; }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $propertyId = $this->_params['propertyId']; $comeFrom = $this->_params['comeFrom']; //读取经纪人信息 $BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); //城市是否开通房源库 $cityInfo = Bll_Fyk_Prop_Manage::getInstance()->getCityConfig($BrokerInfo['BaseInfo']['CITYID']); if ($cityInfo) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '已开通房源库,不可抢~', 'errcode' => Const_APIStatus::E_COMMISSION_INVALID); } //读取房源信息 $houses = Model_House_CommissionHouse::getEntrustsPro($propertyId); $house = $houses[0]; //获取委托房源关系 $eEntrust = Model_House_Commission::getInfoByBrokerIdAndHouseId($brokerId, $propertyId, $house->commissionType); if ($house['commissionType'] == Model_House_CommissionHouse::COMMISSION_TYPE_SALE) { //是否收费 $isToll = Bll_Broker_EntrustPrice::getInstance()->checkCityConsumeStatus($BrokerInfo['BaseInfo']['CITYID']); $isConsume = false; if ($isToll) { $isConsume = true; } $data = Bll_Broker_EntrustQuery::getInstance()->saleRush($propertyId, $brokerId, $BrokerInfo['BaseInfo']['TRUENAME'], $BrokerInfo['BaseInfo']['USERMOBILE'], $BrokerInfo['BaseInfo']['CITYID'], $comeFrom, $isConsume); } else { $isConsume = false; //租房免费 $data = Bll_Broker_EntrustQuery::getInstance()->rentRush($propertyId, $brokerId, $BrokerInfo['BaseInfo']['TRUENAME'], $BrokerInfo['BaseInfo']['USERMOBILE'], $BrokerInfo['BaseInfo']['CITYID'], $comeFrom, $isConsume); } $ownerinfo = $this->formatdate($house, $eEntrust); if ($data['status'] == 1) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $ownerinfo, 'message' => '抢委托成功'); } elseif ($data['status'] == 15) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '15天之内已抢房源中有3套未发,禁止经纪人继续抢房', 'errcode' => Const_APIStatus::E_COMMISSION_MAX); } elseif ($data['status'] == 8) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '账户余额不足', 'errcode' => Const_APIStatus::E_COMMISSION_BALANCE); } elseif ($data['status'] == 9) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '房东已删除', 'errcode' => Const_APIStatus::E_COMMISSION_DEL); } elseif ($data['status'] == 10) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '违规已删除', 'errcode' => Const_APIStatus::E_COMMISSION_ILLEGAL); } elseif ($data['status'] == 5) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '已过期~', 'errcode' => Const_APIStatus::E_COMMISSION_EXPIRED); } elseif ($data['status'] == 7) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '抢过了~', 'errcode' => Const_APIStatus::E_COMMISSION_RUSHED); } elseif ($data['status'] == 6) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '抢完了~', 'errcode' => Const_APIStatus::E_COMMISSION_FULL); } else { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '不可抢~', 'errcode' => Const_APIStatus::E_COMMISSION_INVALID); } }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $count = 0; //读取经纪人信息 $BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); //是否收费 $isToll = Bll_Broker_EntrustPrice::getInstance()->checkCityConsumeStatus($BrokerInfo['BaseInfo']['CITYID']); if ($isToll) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('count' => $count)); } $pushedCount = Model_House_CommissionHousePushedCount::data_access()->filter('brokerId', $brokerId)->find_only(); if ($pushedCount) { $count = $pushedCount['total']; } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('count' => $count)); }
public function get_view() { $REQUEST_URI = $_SERVER['REQUEST_URI']; if (strpos($REQUEST_URI, 'wish') !== false) { $this->assign_data("high_light", 'wish'); } elseif (strpos($REQUEST_URI, 'hammer') !== false) { $this->assign_data("high_light", 'hammer'); } elseif (strpos($REQUEST_URI, 'egg') !== false) { $this->assign_data("high_light", 'egg'); } $base_domain = APF::get_instance()->get_config("anjuke_base_domain"); $this->assign_data("CityUriPrefix", "http://www." . $base_domain . '/'); //是否登录 $broker_id_flag = false; $broker_id = APF::get_instance()->get_request()->getBrokerId(); if ($broker_id) { $broker_info = Bll_BrokerBaseBll::get_instance()->get_broker_info($broker_id); if ($broker_info && ($broker_info['BaseInfo']['PAYTYPE'] == 9999 || $broker_info['BaseInfo']['PAYTYPE'] == 10000) == false) { $broker_id_flag = true; } } $this->assign_data("broker_id_flag", $broker_id_flag); return "Header"; }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $maxId = isset($this->_params['maxId']) ? $this->_params['maxId'] : null; $sinceId = isset($this->_params['sinceId']) ? $this->_params['sinceId'] : null; $per = isset($this->_params['per']) ? $this->_params['per'] : 20; $per = $per + 1; //判断是否有下一页 $moreFlag = 1; $allData = array(); $cacheCursorKey = md5($brokerId . 'commission'); //游标key $cacheCommissionKey = md5($cacheCursorKey . $brokerId); //commissionInfo key $cache = APF_Cache_Factory::get_instance()->get_memcache(); $cacheCursor = $cache->get($cacheCursorKey); $maxCommissionInfo = Model_House_Commission::data_access()->filter('brokerId', $brokerId)->filter('isDelete', Model_House_Commission::DELETE_NO)->sort('id', 'desc')->limit(1)->find_only(); if ($maxCommissionInfo['id'] == $cacheCursor) { //没新数据则读缓存 $allData = $cache->get($cacheCommissionKey); } elseif (!empty($maxCommissionInfo)) { //如果有新数据 // 获取经纪人的所有委托 $daCommissions = Model_House_Commission::data_access()->filter('brokerId', $brokerId)->filter('isDelete', Model_House_Commission::DELETE_NO)->sort('id', 'desc'); $commissions = $daCommissions->find_all(); // 获取委托关联的房源 $houses = array(); if (!empty($commissions)) { $houseIds = array(); foreach ($commissions as $commission) { $houseIds[] = $commission->houseId; $brokerHouseIds[] = $commission->brokerHouseId; } // 获取房源信息 $houses = Model_House_CommissionHouse::data_access()->filter('id', $houseIds)->sort('id', 'asc')->find_all(); // 索引 $indexedHouses = array(); foreach ($houses as $house) { $indexedHouses[$house['id']] = $house; } $houses = $indexedHouses; // 是否存在实拍图片 $imagesInfos = Model_Image_SaleEntrustImage::getImagesByProIds($houseIds); $isImages = array(); foreach ($imagesInfos as $imagesInfo) { $isImages[$imagesInfo->proId] = 1; } $BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); //房源推广状态(定价&套餐) $isOnLine = Bll_House_EsfHouse::getHouseOnLineInfo($BrokerInfo['BaseInfo']['CITYID'], $brokerId, $brokerHouseIds); } $houseAction = array(); //可操作房源 $houseUnAction = array(); //不可操作房源 foreach ($commissions as $commission) { if (!isset($houses[$commission['houseId']])) { continue; } $house = $houses[$commission['houseId']]; $row = array(); $row['id'] = $commission['id']; $row['propertyId'] = $house['id']; $row['commName'] = $house['commName']; $row['type'] = $house['commissionType']; $row['room'] = $house['roomNum']; $row['hall'] = $house['hallNum']; $row['toilet'] = $house['toiletNum']; $row['area'] = $house['areaNum']; $row['price'] = $house['proPrice']; switch ($house['commissionType']) { case Model_House_CommissionHouse::COMMISSION_TYPE_RENT: $row['priceUnit'] = '元/月'; break; case Model_House_CommissionHouse::COMMISSION_TYPE_SALE: $row['priceUnit'] = '万元'; break; } $row['publishTime'] = date('Y-m-d H:i:s', $house['created']); $row['status'] = $house['proStatus']; $row['statusInfo'] = $this->statusMapping[$house['proStatus']]; $row['ownerName'] = $house['userName']; $row['ownerPhone'] = $house->getPhone(); $row['callable'] = intval($house['proStatus'] == Model_House_CommissionHouse::STATUS_ONGOING); $row['isRealityPats'] = $isImages[$house['id']] ? 1 : 0; $row['timestate'] = Bll_Common_Format::formatTime($house['created']); list($isExtension, $isExtensionInfo) = $this->isExtension($commission, $isOnLine, $house); if ($isExtension == 5 || $isExtension == 6) { $row['isExtension'] = 7; } else { $row['isExtension'] = $isExtension; } $row['isExtensionInfo'] = $isExtensionInfo; //1-违规已删除 2-已过期 5-待发布 6-待推广 7-已推广 8-房东删除 if (in_array($isExtension, array(1, 2, 8))) { //不可操作房源 $houseUnAction[] = $row; } else { $houseAction[] = $row; } } $cacheCursorValue = $houseAction[0]['id'] > $houseUnAction[0]['id'] ? $houseAction[0]['id'] : $houseUnAction[0]['id']; $cache->set($cacheCursorKey, $cacheCursorValue, 0, 10); $allData = array_merge($houseAction, $houseUnAction); $cache->set($cacheCommissionKey, $allData, 0, 10); } $data = array(); if ($allData) { $countAllCommissions = count($allData); $segmentation = array(); //供分页用 foreach ($allData as $value) { $segmentation[] = $value['id']; } /** * 以下是分页处理代码 略坑,勿踩 * add by xiongjianxu */ if (isset($maxId)) { $max = array(); $max = array_keys($segmentation, $maxId); if (!empty($max)) { $offset = $countAllCommissions - $max[0]; krsort($allData); $data = array_slice($allData, $offset, $per, false); } } elseif (isset($sinceId)) { $since = array(); $since = array_keys($segmentation, $sinceId); if (!empty($since)) { $offset = $since[0] + 1; $data = array_slice($allData, $offset, $per, false); } } else { // maxId和sinceId均不存在时,返回当前最新的记录 $data = array_slice($allData, 0, $per, false); } //判断有无下一页 $countCommissions = count($data); if ($countCommissions < $per) { $moreFlag = 0; } else { unset($data[$countCommissions - 1]); } } else { $moreFlag = 0; } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data, 'nextPage' => $moreFlag); }
protected function get_broker_info() { return Bll_BrokerBaseBll::get_instance()->get_broker_info(self::$intBrokerID); }
/** * 金铺-精选房源设置 * * @param $ajkBrokerId * @param $cityId * @param $propId * @param array $params * @return array */ public static function jp_setting_post($ajkBrokerId, $cityId, $propId, $params = array()) { $jpBrokerInfo = Model_Broker_JpBroker::getJpBrokerInfoByAjkBrokerId($ajkBrokerId); //check房源是否已经加入精选推广 $bidObj = Model_Plan_Jp::getBidPlanByHouseIdEx($ajkBrokerId, $propId, true); if (!empty($bidObj)) { if ($bidObj['status'] == Model_Plan_Jp::ENUM_STATUS_ONLINE || $bidObj['status'] == Model_Plan_Jp::ENUM_STATUS_CHOICE_HOLD) { return array('err_no' => self::BID_HOUSE_ALREADY_IN_BID, 'err_msg' => '房源已经加入精选推广'); } elseif ($bidObj['status'] == Model_Plan_Jp::ENUM_STATUS_HOLD) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '房源正在结算中,请稍后...'); } } $bidChoiceCount = Model_Plan_Jp::getBidChoiceInfoEx($cityId, $ajkBrokerId); //获取精选推广预算 $brokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($ajkBrokerId); $brokerCompanyId = $brokerInfo['BaseInfo']['COMPANYID']; $choiceSet = APF::get_instance()->get_config('choice_set'); if (isset($choiceSet[$brokerCompanyId]) && !empty($choiceSet[$brokerCompanyId])) { $min_budget = $choiceSet[$brokerCompanyId]['jp']['JP_CHOICE_MIN_BUDGET']; $max_budget = $choiceSet[$brokerCompanyId]['jp']['JP_CHOICE_MAX_BUDGET']; } else { $min_budget = $choiceSet['default']['jp']['JP_CHOICE_MIN_BUDGET']; $max_budget = $choiceSet['default']['jp']['JP_CHOICE_MAX_BUDGET']; } if ($params['budget'] < $min_budget || $params['budget'] > $max_budget) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '推广预算最低' . $min_budget . '安币,最高' . $max_budget . '安币'); } $status = isset($bidObj['status']) ? $bidObj['status'] : 0; if (count($bidChoiceCount) >= self::ALL_JP_PLAN_NUM && $status != 4) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '精选推广房源已经超过' . self::ALL_JP_PLAN_NUM . '套'); } if (0 == $jpBrokerInfo) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '您不是金铺经纪人'); } /** 获取房源基本信息 */ $propInfo = Bll_House_JpHouseInfo::getHouseInfoById($propId); if (empty($propInfo)) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '房源不存在'); } if ($propInfo['base']['memberId'] != $jpBrokerInfo['id']) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '房源不属于该经纪人'); } /** 判断是否是精选开放城市 */ if (!Bll_City::isChoiceIndependentCity($cityId, Const_Site::JINPU)) { /** 判断房源是否在套餐推广 */ $propCombos = Bll_Combo_HouseRelation::getOnlineRelationByHouseId($propId, Bll_Combo_HouseRelation::SITE_TYPE_JP); if (empty($propCombos)) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '房源必须在套餐推广才能参与精选'); } } if (false == $propInfo['info']['isExquisite']) { return array('err_no' => self::BID_FAIL_QUALITY_OR_NEW, 'err_msg' => '精品、新发15天房源才能参与精选推广', 'params' => array('site' => 'jp')); } $limitDay = intval(date('Ymd', strtotime('-15 days'))); $postDay = intval(date('Ymd', strtotime($propInfo['base']['createTime']))); if ($limitDay > $postDay) { return array('err_no' => self::BID_FAIL_QUALITY_OR_NEW, 'err_msg' => '精品、新发15天房源才能参与精选推广', 'params' => array('site' => 'jp')); } /** 获取板块信息 **/ $blockArr = Bll_House_JpHouseInfo::getBlock($propInfo['base']['houseType'], $propInfo['info']); if (!$blockArr['blockId'] && !$blockArr['newBlockId']) { return array('err_no' => self::BID_HOUSE_ALREADY_IN_BID, 'err_msg' => '房源缺少板块信息'); } /** 获取价格信息 **/ $arrPrice = Bll_House_JpHouseInfo::getPrice($cityId, $propInfo['base']['houseType'], $propInfo['info']); if (empty($arrPrice['price_id'])) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '缺少价格段信息'); } /** 获取点击单价开始 */ try { $apiParams = array('brokerId' => $ajkBrokerId, 'cityId' => $cityId, 'price' => $arrPrice['price'] ?: 0, 'blockId' => $blockArr['blockId'] ?: 0, 'newBlockId' => $blockArr['newBlockId'] ?: 0, 'houseType' => $propInfo['base']['houseType']); /** * @var Bll_Service_Client_HttpResponse $clickPrice */ for ($i = 0; $i < 3; $i++) { $clickPrice = Bll_Service_Choice::jpClickPrice($apiParams); if ($clickPrice->isSucceeded()) { break; } } if (!$clickPrice->isSucceeded() || $clickPrice['status'] == 'error') { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '系统繁忙(code:-1000)'); } if ($params['budget'] * 100 < $clickPrice['realTradeAmount']) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '推广预算不能小于点击单价'); } /** 点击单价不能小于当前系统内的单价 防止恶意操作 */ if ($params['price'] < $clickPrice['realTradeAmount'] / 100) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '点击单价错误'); } } catch (Exception $e) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '系统繁忙(code:-2000)'); } /** 防并发 */ if (false === self::rejectSameRequest(Bll_Plan_Bid_Choice::SITE_JP, $ajkBrokerId, $propId)) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '系统繁忙(code:-906)'); } /** 往冻结队列里添加记录,获取request id*/ $bidFreezeOrder = new Bll_Plan_BidFreezeOrderNum(date('Y')); $ajk_user_id = Bll_Broker_MainBusiness::getDataByEsfId($ajkBrokerId)->memberId; $requestId = $bidFreezeOrder->getRequestId(Bll_Plan_BidFreezeOrderNum::JP, $ajk_user_id, date('Y'), 0, $propId); /** 冻结金额 **/ $freezeResult = self::bid_freeze($ajkBrokerId, $params['budget'] * 100, $requestId, sprintf('金铺精选房源冻结,房源ID是: %d', $propId), Const_PaymentApp::JP_CHOICE); /** 判断是否冻结成功 **/ $freezeResponse = $freezeResult->getResponse(); if (!$freezeResult->isSucceeded() || $freezeResponse['status'] == 'error') { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => isset($freezeResult['info']) ? $freezeResult['info'] . "code:" . $freezeResult['code'] : '冻结金额失败'); } //检查是否有坑位 坑位+1 $bucketStatus = Model_Choice_JPBidBucket::incrementUsedNum($blockArr['blockId'], $blockArr['newBlockId'], $propInfo['base']['houseType'], $arrPrice['price_id']); if (!$bucketStatus) { return array('err_no' => self::BID_WAIT_FAIL, 'err_msg' => '精选推广已满,请稍后再试'); } /** 获取最小竞价单元的精选信息 **/ $bucketInfo = Model_Choice_JPBidBucket::getBucketInfo($blockArr['blockId'], $blockArr['newBlockId'], $propInfo['base']['houseType'], $arrPrice['price_id']); /** 根据最小竞价单位里面的房源数判断当前的房源应该是排队还是推广中 **/ /* if ($bucketInfo['usedNum'] > $bucketInfo['maxOnlineNum']) { $planStatus = Model_Plan_Jp::ENUM_STATUS_CHOICE_HOLD; } else { $planStatus = Model_Plan_Jp::ENUM_STATUS_ONLINE; } */ $planStatus = Model_Plan_Jp::ENUM_STATUS_CHOICE_HOLD; /** 如果计划已经存在删除该计划**/ if (isset($bidObj['status']) && $bidObj['status'] == 4) { Model_Plan_Jp::data_access()->set_field('isDelete', 1)->filter('id', $bidObj['id'])->update(); } /** 构造计划数据 创建计划**/ $planData = self::buildJpPlanData($cityId, $jpBrokerInfo['id'], $params['budget'], $freezeResult['data']['sn'], $propId, $blockArr['blockId'], $blockArr['newBlockId'], $arrPrice['price_id'], $propInfo['base']['houseType'], $planStatus); $planData['ajkBrokerId'] = $ajkBrokerId; $PlanObj = Model_Plan_Jp::create($planData); $PlanObj->save(); if (empty($PlanObj->id)) { /** 坑位-1 **/ Model_Choice_JPBidBucket::decrementUsedNum($blockArr['blockId'], $blockArr['newBlockId'], $propInfo['base']['houseType'], $arrPrice['price_id']); Model_Plan_Jp::data_access()->set_field('isDelete', 0)->filter('id', $bidObj['id'])->update(); return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '创建计划失败'); } /** 更新房源里面的竞价计划id **/ $propInfo['base']->bidSpreadId = $PlanObj->id; $propInfo['base']->save(); /** 更新房源分表信息 **/ //$propInfo['info']->isList = 1; $propInfo['info']->spreadOffer = $clickPrice['realTradeAmount']; $propInfo['info']->spreadOfferTime = time(); $propInfo['info']->save(); /** 构建精选动作处理数据 **/ $choiceData = self::buildJpChoiceData($ajkBrokerId, Model_Choice_ActionQueue::ENUM_BEGIN_BY_HAND, $PlanObj->id, '经纪人手动推广', $propId); /** 插入到精选动作处理队列表 **/ Model_Choice_ActionQueue::create($choiceData, date('m'))->save(); $bidFreezeOrder->updateRequestComplete($requestId, $freezeResult['data']['sn'], $PlanObj->id); if ($bucketInfo['usedNum'] > $bucketInfo['maxOnlineNum']) { $rank = $bucketInfo['usedNum'] - $bucketInfo['maxOnlineNum']; return array('err_no' => self::BID_WAIT_SUCCESS, 'err_msg' => '精选排队成功', 'rank' => $rank); } else { return array('err_no' => self::BID_SHOW_SUCCESS, 'err_msg' => '精选推广成功'); } }
public function handle_request() { $apf = APF::get_instance(); $request = $apf->get_request(); $response = $apf->get_response(); try { // 判断经纪人是否已经登陆 if (!$this->isBrokerLogin()) { throw new Exception_ChristmasException('Login first.', self::CODE_NOT_LOGIN); } // 获取经纪人详情 self::$BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info(self::$intBrokerID, true); $brokerId = self::$BrokerInfo['BaseInfo'][strtoupper('brokerid')]; $userId = self::$BrokerInfo['BaseInfo'][strtoupper('userId')]; // 判断经纪人是否通过双证验证 /*if (self::$BrokerInfo['BaseInfo'][strtoupper('checkstate')] == 0) { throw new Exception_ChristmasException('Check state first.', self::CODE_NOT_CHECK_STATE); }*/ // 判断经纪人兑换的锤子是否已经多于3把 $brokerExchangeHammers = Model_Christmas_HammerLog::data_access()->force_master()->filter('type', Model_Christmas_HammerLog::TYPE_GRADE_EXCHANGE)->filter('brokerId', $brokerId)->count(); if ($brokerExchangeHammers >= self::EXCHANGE_HAMMER_LIMIT) { throw new Exception_ChristmasException('Reach exchange limit.', self::CODE_REACH_EXCHANGE_LIMIT); } // 判断经纪人的积分是否足否兑换锤子 $brokerGradeScore = self::$BrokerInfo['BaseInfo'][strtoupper('gradescore')]; if ($brokerGradeScore < self::EXCHANGE_GRADE_SCORE) { throw new Exception_ChristmasException('Grade not enough', self::CODE_GRADE_NOT_ENOUGH); } // 积分换锤子 $brokerHammer = Model_Christmas_BrokerHammer::incrBrokerHammerForGrade($brokerId, 1); // 发送系统消息 $messages = Util_Christmas::messages(); if (isset($messages[Model_Christmas_HammerLog::TYPE_GRADE_EXCHANGE])) { Bll_Service_Message::sendSystem(array('receiverIds' => $userId, 'message' => $messages[Model_Christmas_HammerLog::TYPE_GRADE_EXCHANGE])); } // 添加积分消费记录 $gradeLog = new Model_Grade_Log(date('Ym')); $gradeLog->itemId = self::GRADE_ITEM; $gradeLog->operateType = 1; $gradeLog->time = time(); $gradeLog->date = date('Ymd', $gradeLog->time); $gradeLog->data = serialize(array('time' => date('Y年m月d日 H时i分s秒'))); $gradeLog->score = 300; $gradeLog->brokerId = $brokerId; $gradeLog->adminId = 0; $gradeLog->flag = 0; // 未处理 $gradeLog->appId = 1; // 经纪人 $gradeLog->save(); $brokerGradeScore -= self::EXCHANGE_GRADE_SCORE; $result = array('code' => self::CODE_SUCCESS, 'message' => 'Success.', 'coin' => $brokerGradeScore, 'number' => $brokerHammer->number); } catch (Exception_ChristmasException $e) { $result = array('code' => $e->getCode(), 'message' => $e->getMessage(), 'isLogin' => intval($this->isBrokerLogin()), 'loginUrl' => Uri_ChristmasUrl::login_url(Uri_ChristmasUrl::hammer_url())); } catch (Exception $e) { // 500 Error // http_response_code('500'); $result = array('code' => '500', 'message' => 'Server Error.'); } $response->set_content_type('application/json', 'UTF-8'); $response->add_header('Cache-Control', 'no-cache, no-store, must-revalidate'); $response->add_header('Pragma', 'no-cache'); $response->add_header('Expires', 0); echo json_encode($result); die; }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $per = isset($this->_params['per']) ? $this->_params['per'] : 20; $per = $per + 1; //判断是否有下一页 $moreFlag = 1; //读取经纪人信息 $BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); //城市是否开通房源库 $cityInfo = Bll_Fyk_Prop_Manage::getInstance()->getCityConfig($BrokerInfo['BaseInfo']['CITYID']); if ($cityInfo) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'canGrabNum' => 0, 'msg' => '亲!房源已转至房源库,快去开通吧!', 'data' => array(), 'nextPage' => 0); } // 获取已推送委托 $pushedCommissionHouses = Model_House_CommissionHousePushed::pushedCommissionHouses($brokerId, $per, $this->_params['maxId'], $this->_params['sinceId']); $countPushedCommissionHouses = count($pushedCommissionHouses); if ($countPushedCommissionHouses < $per) { $moreFlag = 0; } else { unset($pushedCommissionHouses[$countPushedCommissionHouses - 1]); } // 排序(按ID倒序) uasort($pushedCommissionHouses, function ($a, $b) { return $a['id'] < $b['id']; }); // 获取房源数据 $houses = array(); $rushedHouses = array(); if (!empty($pushedCommissionHouses)) { // 获取房源ID $houseIds = array(); foreach ($pushedCommissionHouses as $pushedCommissionHouse) { $houseIds[] = $pushedCommissionHouse['propertyId']; } // 获取房源信息 $houses = Model_House_CommissionHouse::getEntrustsPro($houseIds); $indexedHouses = array(); foreach ($houses as $house) { $indexedHouses[$house['id']] = $house; } $houses = $indexedHouses; // 获取已抢房源数据 $rushedCommissions = Model_House_Commission::getEntrustInfos($houseIds); foreach ($rushedCommissions as $rushedCommission) { if ($brokerId == $rushedCommission->brokerId) { $rushedHouses[$rushedCommission->houseId] = $rushedCommission->id; } } // 是否存在实拍图片 $imagesInfos = Model_Image_SaleEntrustImage::getImagesByProIds($houseIds); foreach ($imagesInfos as $imagesInfo) { $isImages[$imagesInfo->proId] = 1; } } // 拼装结果 $data = array(); $rushableCount = 0; foreach ($pushedCommissionHouses as $pushedCommissionHouse) { if (!isset($houses[$pushedCommissionHouse['propertyId']])) { continue; } $house = $houses[$pushedCommissionHouse['propertyId']]; $row = array(); $row['id'] = $pushedCommissionHouse['id']; $row['propertyId'] = $house['id']; $row['commName'] = $house['commName']; $row['ownerName'] = $house['userName']; if ($house->getPhone()) { $row['ownerPhone'] = substr_replace($house->getPhone(), '*****', 3, 5); } else { $row['ownerPhone'] = ''; } $row['type'] = $house['commissionType']; $row['room'] = $house['roomNum']; $row['hall'] = $house['hallNum']; $row['toilet'] = $house['toiletNum']; $row['area'] = $house['areaNum']; $row['price'] = $house['proPrice']; switch ($house['commissionType']) { case Model_House_CommissionHouse::COMMISSION_TYPE_RENT: $row['priceUnit'] = '元/月'; break; case Model_House_CommissionHouse::COMMISSION_TYPE_SALE: $row['priceUnit'] = '万元'; break; } $row['publishTime'] = date('Y-m-d H:i:s', $house['created']); $row['rushable'] = 1; $row['showStatus'] = 4; $row['rushableInfo'] = '抢委托'; $row['rushed'] = 0; if ($house['proStatus'] == Model_House_CommissionHouse::STATUS_ONGOING && $house['openBrokerCnt'] < Model_House_CommissionHouse::allowedMaxCommissionCount()) { $rushableCount++; } if (!($house['proStatus'] == Model_House_CommissionHouse::STATUS_ONGOING && $house['openBrokerCnt'] < Model_House_CommissionHouse::allowedMaxCommissionCount()) && empty($rushedHouses[$house['id']])) { $row['rushable'] = 0; $row['showStatus'] = 3; $row['rushableInfo'] = '抢完了'; } if ($house['proStatus'] == Model_House_CommissionHouse::STATUS_STOP && $house['openBrokerCnt'] < Model_House_CommissionHouse::allowedMaxCommissionCount()) { $row['rushable'] = 0; $row['showStatus'] = 9; $row['rushableInfo'] = '房东停止委托'; } if (isset($rushedHouses[$house['id']])) { $row['rushable'] = 0; $row['rushableInfo'] = '抢过了'; $row['rushed'] = 1; } $row['isRealityPats'] = $isImages[$house['id']] ? 1 : 0; $row['timestate'] = Bll_Common_Format::formatTime($house['created']); //抢过不显示 if (empty($rushedHouses[$house['id']])) { $data[] = $row; } } // 重置可抢房源数 $daCommissionHousePushedCount = Model_House_CommissionHousePushedCount::data_access()->filter('brokerId', $brokerId)->find_only(); if (!empty($daCommissionHousePushedCount)) { $daCommissionHousePushedCount->resetCommissionHousePushedCount(); } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'canGrabNum' => $rushableCount, 'msg' => '仅展示15天以内房源', 'data' => $data, 'nextPage' => $moreFlag); }
public static function getBrokerLimitForApi($intBrokerId) { $result = Bll_Service_Ppc::limit(array('brokerId' => $intBrokerId, 'bizType' => Bll_Service_Ppc_Limit::SITE_JINPU)); if ($result['status'] == 'ok') { $res['api_status'] = 'ok'; $res['tempId'] = $result['data']['tempId']; $res['tempName'] = $result['data']['tempName']; $res['amountLimit'] = $result['data']['amountLimit']; $res['publishLimit'] = $result['data']['publishLimit']; $res['promotionLimit'] = $result['data']['promotionLimit']; return $res; } else { $brokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($intBrokerId); $cityLimitObj = Model_City_JpLimit::data_access()->filter(Model_City_JpLimit::CITY_ID, $brokerInfo['BaseInfo']['CITYID'])->get_row(); if (empty($cityLimitObj)) { $amountLimit = -1; } else { $amountLimit = $cityLimitObj['limit_price']; } $res['api_status'] = 'fail'; $res['tempId'] = 0; $res['tempName'] = '无限额'; $res['amountLimit'] = $amountLimit; $res['publishLimit'] = Model_House_JpHouseIdx::HOUSE_LIMIT; $res['promotionLimit'] = Model_Plan_Jp::SPREAD_ONLINE_NUM_MAX; return $res; } }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } // echo "<pre>";print_r($brokerInfo);exit; // // $bnsCardFile = 'b'; // $setBizCard = Bll_BrokerBaseBll::setBizCard($brokerId, $brokerInfo->cityId, $brokerInfo->areaCode, $brokerInfo->userMobile, // '', $bnsCardFile, $brokerInfo->companyId, $brokerInfo->cstBrokerCompanyId); // // $res = $this->verifyBizCard($brokerId, 1, '123'); $bnsCardState = $brokerInfo->bnsCardState; $bnsCardFile = $brokerInfo->bnsCardFile; $bnsCardStatus = 0; $bigImageUrl = ''; $smallImageUrl = ''; $failedReason = ''; //获得最后提交资料 $lastupdata = Bll_BrokerBaseBll::get_instance()->getLastPostBnsCardFile($brokerId); //使用model $isPass = $lastupdata['IsPass']; $FileName = $lastupdata['FileName']; if (empty($lastupdata)) { //没认证 $bnsCardStatus = 0; $bigImageUrl = ''; $smallImageUrl = ''; } else { if ($brokerInfo->checkState == 0) { switch ($bnsCardState) { case 1: //认证中 $bnsCardFile $bnsCardStatus = 2; break; case 2: //已认证 $bnsCardFile $bnsCardStatus = 1; break; case 3: //认证失败 $bnsCardFile $bnsCardStatus = 3; break; } $bigImageUrl = Util_DisplayImages::get_img_url($bnsCardFile, -1, '1200x750'); $smallImageUrl = Util_DisplayImages::get_img_url($bnsCardFile, -1, '1000x625'); } elseif ($brokerInfo->checkState == 1) { if ($isPass == 0) { //认证中 FileName $bnsCardStatus = 2; } elseif ($isPass == 1) { //已认证 FileNam $bnsCardStatus = 1; } elseif ($isPass == 2) { //认证失败 FileName $bnsCardStatus = 3; $brokerCheckInfoBll = new Bll_Broker_BrokerCheckInfo(); $brokerTheLastCheckInfo = $brokerCheckInfoBll->getBrokerTheLastCheckInfo($brokerId, 2); $failedReason = $brokerTheLastCheckInfo['content']; } $bigImageUrl = Util_DisplayImages::get_img_url($FileName, -1, '1200x750'); $smallImageUrl = Util_DisplayImages::get_img_url($FileName, -1, '1000x625'); } } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('status' => $bnsCardStatus, 'bigImageUrl' => $bigImageUrl, 'smallImageUrl' => $smallImageUrl, 'failedReason' => $failedReason)); }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $propertyId = $this->_params['propertyId']; //读取经纪人信息 $BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); //城市是否开通房源库 $cityInfo = Bll_Fyk_Prop_Manage::getInstance()->getCityConfig($BrokerInfo['BaseInfo']['CITYID']); if ($cityInfo) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'message' => '已开通房源库,不可抢~', 'errcode' => Const_APIStatus::E_COMMISSION_INVALID); } //是否收费 $isToll = Bll_Broker_EntrustPrice::getInstance()->checkCityConsumeStatus($BrokerInfo['BaseInfo']['CITYID']); if ($isToll) { // 不能再抢了请升级 return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'errcode' => Const_APIStatus::E_PROMPT_UPDATE, 'message' => '你的版本太老了,快更新到新版本吧!'); } // 判断是否是推送房源 $pushedHouse = Model_House_CommissionHousePushed::data_access()->filter('brokerId', $brokerId)->filter('propertyId', $propertyId)->filter('propertyStatus', array(Model_House_CommissionHouse::STATUS_ONGOING, Model_House_CommissionHousePushed::STATUS_RUSHED))->find_only(); if (!$pushedHouse) { throw new Exception('来晚了,房源已删除', Const_APIStatus::E_COMMISSION_INVALID); } // 判断委托房源是否存在 $house = Model_House_CommissionHouse::data_access()->filter('id', $propertyId)->find_only(); if (!$house || $house->proStatus != Model_House_CommissionHouse::STATUS_ONGOING) { throw new Exception('来晚了,房源已删除', Const_APIStatus::E_COMMISSION_INVALID); } // 判断是否已抢过委托 $commission = Model_House_Commission::data_access()->filter('brokerId', $brokerId)->filter('houseId', $propertyId)->find_only(); if ($commission) { // 更新推送房源状态 if ($pushedHouse->propertyStatus != Model_House_CommissionHousePushed::STATUS_RUSHED) { $this->pushedHouseRushed($pushedHouse); } // 如果已抢,仍然返回成功状态 return array('status' => Const_APIStatus::RETURN_CODE_OK, 'message' => '抢过了!去“我的委托”里看看'); } if ($house->openBrokerCnt >= Model_House_CommissionHouse::allowedMaxCommissionCount()) { throw new Exception('抢完了~', Const_APIStatus::E_COMMISSION_FULL); } // 防并发(先插入,再检测(超出,删除),最后更新) // TODO 该方案层使用在2013圣诞活动“找锤子,砸金蛋”,并导致数据库多次TMC,但是在该业务场景中瞬时并发并没有那么多,暂定使用 by 胡言言 2014.02.28 $commission = Model_House_Commission::create(array('type' => $house->commissionType, 'ownerId' => $house->userId, 'houseId' => $house->id, 'brokerId' => $brokerId, 'origin' => Model_House_Commission::ORIGIN_APP, 'createTime' => date('Y-m-d H:i:s'), 'updateTime' => date('Y-m-d H:i:s'))); $commission->save(); $rank = Model_House_Commission::data_access()->filter_by_op('houseId', '=', $house->id)->filter_by_op('id', '<=', $commission->id)->sort('id', 'asc')->count(); if ($rank > Model_House_CommissionHouse::allowedMaxCommissionCount()) { $commission->delete(); throw new Exception('抢完了~', Const_APIStatus::E_COMMISSION_FULL); } // 更新房源的委托数量 $house->incrCommissionCount(); // 更新推送房源状态 $this->pushedHouseRushed($pushedHouse); // 通知到API用户端提示信息(消息推送) try { $userCheckInPushUrl = 'http://api.anjuke.com/mobile/v5/broker/checkin/notice?is_nocheck=1'; $curl = new Util_Http_Curl(); $curl->setDefaults()->post($userCheckInPushUrl, array('broker_id' => $brokerId, 'prop_id' => $propertyId, 'updated' => time(), 'owner_id' => $house['userId'], 'owner_name' => $house['userName'])); } catch (Exception $e) { // 暂时忽略请求 } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'message' => '抢成功!快去联系业主吧'); }
/** * app 获取经纪人基础信息 */ public static function get_broker_baseinfo_app($broker_id) { $base_info = Dao_Broker_BrokerInfo::get_broker_base_info($broker_id); if (empty($base_info)) { return array(); } //头像状态 $usrPhotoState = $base_info['USRPHOTOSTATE']; $usrPhotoTmpState = $base_info['USRPHOTOTMPSTATE']; $userPhotoTmp = $base_info['USERPHOTOTMP']; $userPhoto = $base_info['USERPHOTO']; $imageUrl = ''; $photoStaus = 0; if ($usrPhotoState == 2 || $usrPhotoTmpState == 1) { $photoStaus = 1; //已认证 $imageUrl = Util_DisplayImages::get_img_url($userPhoto, -1, '100x133'); } elseif ($usrPhotoState == 0 && empty($userPhoto) && empty($userPhotoTmp)) { $photoStaus = 0; //未认证 } elseif ($usrPhotoState == 1 || $usrPhotoTmpState == 0 && !empty($userPhotoTmp)) { $photoStaus = 2; //认证中 } elseif ($usrPhotoState == 3 || $usrPhotoTmpState == 2) { $photoStaus = 3; //认证失败 } //身份证状态 $usrCardState = $base_info['USRCARDSTATE']; $userCardFile = $base_info['USERCARDFILE']; $userCardStatus = 0; if ($usrCardState == 0 && empty($userCardFile)) { $userCardStatus = 0; //未认证 } elseif ($usrCardState == 1) { $userCardStatus = 2; //认证中 } elseif ($usrCardState == 2) { $userCardStatus = 1; //已认证 } elseif ($usrCardState == 3) { $userCardStatus = 3; //认证失败 } //名片状态 $bnsCardState = $base_info['BNSCARDSTATE']; $bnsCardStatus = 0; $lastupdata = Bll_BrokerBaseBll::get_instance()->getLastPostBnsCardFile($broker_id); $isPass = $lastupdata['IsPass']; if (empty($lastupdata)) { //没认证 $bnsCardStatus = 0; } else { if ($base_info['CHECKSTATE'] == 0) { switch ($bnsCardState) { case 1: //认证中 $bnsCardFile $bnsCardStatus = 2; break; case 2: //已认证 $bnsCardFile $bnsCardStatus = 1; break; case 3: //认证失败 $bnsCardFile $bnsCardStatus = 3; break; } } elseif ($base_info['CHECKSTATE'] == 1) { if ($isPass == 0) { //认证中 FileName $bnsCardStatus = 2; } elseif ($isPass == 1) { //已认证 FileNam $bnsCardStatus = 1; } elseif ($isPass == 2) { //认证失败 FileName $bnsCardStatus = 3; } } } //城市 $citys = array(); $citys_tmp = Dao_Broker_BrokerInfo::get_citys(); foreach ($citys_tmp as $city) { $citys[$city['CITYID']] = $city['TYPENAME']; } //门店 if ($base_info['CST_BROKER_COMPANY_ID'] != 0) { $cst_commpany = Dao_Broker_BrokerInfo::get_cst_company($base_info['CST_BROKER_COMPANY_ID']); } else { $cst_commpany['COMANYNAME'] = ""; } //区域板块 $area = Dao_Broker_BrokerInfo::get_comm(substr($base_info['AREACODE'], 4, 4)); $block = Dao_Broker_BrokerInfo::get_comm(substr($base_info['AREACODE'], 8, 4)); $return['brokerName'] = $base_info['TRUENAME']; $return['phone'] = $base_info['USERMOBILE']; $return['city_id'] = $base_info['CITYID']; $return['cityName'] = $citys[$base_info['CITYID']]; // 城市名 $return['workRegion'] = $area['TYPENAME'] . ' ' . $block['TYPENAME']; //工作区域 //获取所属公司 $com = Model_Broker_CstCompany::getCompanyNameById($base_info['COMPANYID']); $return['company'] = $com['CompanyName']; //所属公司 $return['store'] = $cst_commpany['COMANYNAME']; //所属门店 $return['display'] = ""; $return['bnsCardStatus'] = $bnsCardStatus; $return['userCardStatus'] = $userCardStatus; $return['userPhotoStatus'] = $photoStaus; $return['imageUrl'] = $imageUrl; $return['userId'] = $base_info['USERID']; //账户余额 $hzbroker_id = Bll_HzBroker::get_brokerid_by_ajk_brokerid($broker_id); if (!$hzbroker_id) { $hzbroker_id = $broker_id; } $broker_money = Bll_PayAccount::get_broker_balance($hzbroker_id); $return['balance'] = sprintf("%.2f", $broker_money); return $return; }
/** * 逻辑 * 插入前,判断 排名 < 1000,执行插入。 * 插入后,判断 排名 < 1000,更新总数;否则,删除。 */ public function handle_request() { $apf = APF::get_instance(); $request = $apf->get_request(); $response = $apf->get_response(); $cache = APF_Cache_Factory::get_instance()->get_memcache(); // CurrentRoundTime & NextRoundTime $currentRoundTime = null; $nextRoundTime = null; $startDate = Util_Christmas::hammerRushStartDate(); $endDate = Util_Christmas::hammerRushEndDate(); if (!Util_Christmas::hammerRushStarted()) { $currentRoundTime = null; $nextRoundTime = date("{$startDate} 10:00:00"); } elseif (!Util_Christmas::hammerRushEnded()) { $currentHour = date('H'); if ($currentHour < 10) { if (date('Y-m-d') != $startDate) { $currentRoundTime = date('Y-m-d 18:00:00', strtotime('-1 day')); } $nextRoundTime = date('Y-m-d 10:00:00'); } elseif ($currentHour >= 10 && $currentHour < 14) { $currentRoundTime = date('Y-m-d 10:00:00'); $nextRoundTime = date('Y-m-d 14:00:00'); } elseif ($currentHour >= 14 && $currentHour < 18) { $currentRoundTime = date('Y-m-d 14:00:00'); $nextRoundTime = date('Y-m-d 18:00:00'); } elseif ($currentHour >= 18) { $currentRoundTime = date('Y-m-d 18:00:00'); if (date('Y-m-d') != $endDate) { $nextRoundTime = date('Y-m-d 10:00:00', strtotime('+1 day')); } } } // IsRushable $isRushable = false; // 当前在可抢时间范围内 if ($currentRoundTime && time() < strtotime($currentRoundTime) + 30 * 60) { $isRushable = true; } // 当前可抢开关 $result = $cache->get(Util_Christmas::hammerIsRushableCacheKey($currentRoundTime)); if ($result !== FALSE) { $isRushable = (bool) $result; } try { // Not Rushable if (!$isRushable) { throw new Exception_ChristmasException('Not rushable.', self::CODE_FAILED); } // 判断活动是否已开始 if (!Util_Christmas::hammerRushStarted()) { throw new Exception_ChristmasException('Hammer rush is not started.', self::CODE_NOT_START); } // 判断活动是否已结束 if (Util_Christmas::hammerRushEnded()) { throw new Exception_ChristmasException('Hammer rush is ended.', self::CODE_ENDED); } // 判断经纪人是否已经登陆 if (!$this->isBrokerLogin()) { throw new Exception_ChristmasException('Login first.', self::CODE_NOT_LOGIN); } // 获取经纪人详情 self::$BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info(self::$intBrokerID); $brokerId = self::$BrokerInfo['BaseInfo'][strtoupper('brokerid')]; $userId = self::$BrokerInfo['BaseInfo'][strtoupper('userId')]; // 判断经纪人是否通过双证验证 if (self::$BrokerInfo['BaseInfo'][strtoupper('checkstate')] == 0) { throw new Exception_ChristmasException('Check state first.', self::CODE_NOT_CHECK_STATE); } // 插入前,判断是否本轮是否已经抢过 try { $hammerLog = Model_Christmas_HammerLog::data_access()->force_master()->filter_by_op('brokerId', '=', $brokerId)->filter_by_op('type', '=', Model_Christmas_HammerLog::TYPE_HAMMER_RUSH)->filter_by_op('createdAt', '>=', $currentRoundTime)->find_one(); } catch (Exception $e) { $hammerLog = false; } if ($hammerLog) { throw new Exception_ChristmasException('Already rushed.', self::CODE_RUSHED); } // 经纪人添加1把锤子 $hammerLog = new Model_Christmas_HammerLog(); $hammerLog->brokerId = $brokerId; $hammerLog->type = Model_Christmas_HammerLog::TYPE_HAMMER_RUSH; $hammerLog->number = 1; $hammerLog->memo = '整点抢锤子'; $hammerLog->createdAt = date('Y-m-d H:i:s'); $hammerLog->updatedAt = $hammerLog->createdAt; $hammerLog->save(); // 本轮有效锤子数 $hammerRoundNumber = 1000; // 插入后,判断 排名 < 1000,更新总数;否则,删除。 $rank = $this->current_round_rank($hammerLog->id, $currentRoundTime); if ($rank >= $hammerRoundNumber) { $hammerLog->delete(); $isRushable = false; $cache->set(Util_Christmas::hammerIsRushableCacheKey($currentRoundTime), false); throw new Exception_ChristmasException('Not rushed.', self::CODE_FAILED); } // 更新经纪人总锤子 $brokerHammer = Model_Christmas_BrokerHammer::incrBrokerHammerNumber($brokerId, 1); // 发送系统消息 $messages = Util_Christmas::messages(); if (isset($messages[Model_Christmas_HammerLog::TYPE_HAMMER_RUSH])) { Bll_Service_Message::sendSystem(array('receiverIds' => $userId, 'message' => $messages[Model_Christmas_HammerLog::TYPE_HAMMER_RUSH])); } $result = array('code' => self::CODE_SUCCESS, 'message' => 'Success.', 'number' => $brokerHammer->number, 'currentTime' => strtotime($currentRoundTime) * 1000, 'nextTime' => $isRushable ? strtotime($currentRoundTime) * 1000 : strtotime($nextRoundTime) * 1000, 'isRushable' => intval($isRushable)); } catch (Exception_ChristmasException $e) { $result = array('code' => $e->getCode(), 'message' => $e->getMessage(), 'nextTime' => $isRushable ? strtotime($currentRoundTime) * 1000 : strtotime($nextRoundTime) * 1000, 'isRushable' => intval($isRushable), 'isLogin' => intval($this->isBrokerLogin()), 'loginUrl' => Uri_ChristmasUrl::login_url(Uri_ChristmasUrl::hammer_url())); } catch (Exception $e) { // 500 Error // http_response_code('500'); $result = array('code' => '500', 'message' => 'Server Error.'); } $response->set_content_type('application/json', 'UTF-8'); $response->add_header('Cache-Control', 'no-cache, no-store, must-revalidate'); $response->add_header('Pragma', 'no-cache'); $response->add_header('Expires', 0); echo json_encode($result); die; }
public function handle_request() { $is_christmas_test = APF::get_instance()->get_config('is_christmas_test', 'christmas'); if (!$is_christmas_test) { if (time() < strtotime("2013-12-16 00:00:00")) { APF::get_instance()->get_response()->redirect(Uri_ChristmasUrl::advance_url()); } } $isLoggedIn = $this->isBrokerLogin(); $this->setAttribute('BrokerIsLoggedIn', $isLoggedIn); // 获取缓存实例 $cache = APF_Cache_Factory::get_instance()->get_memcache(); // CurrentRoundTime & NextRoundTime $currentRoundTime = null; $nextRoundTime = null; $startDate = Util_Christmas::hammerRushStartDate(); $endDate = Util_Christmas::hammerRushEndDate(); if (!Util_Christmas::hammerRushStarted()) { $currentRoundTime = null; $nextRoundTime = date("{$startDate} 10:00:00"); } elseif (!Util_Christmas::hammerRushEnded()) { $currentHour = date('H'); if ($currentHour < 10) { if (date('Y-m-d') != $startDate) { $currentRoundTime = date('Y-m-d 18:00:00', strtotime('-1 day')); } $nextRoundTime = date('Y-m-d 10:00:00'); } elseif ($currentHour >= 10 && $currentHour < 14) { $currentRoundTime = date('Y-m-d 10:00:00'); $nextRoundTime = date('Y-m-d 14:00:00'); } elseif ($currentHour >= 14 && $currentHour < 18) { $currentRoundTime = date('Y-m-d 14:00:00'); $nextRoundTime = date('Y-m-d 18:00:00'); } elseif ($currentHour >= 18) { $currentRoundTime = date('Y-m-d 18:00:00'); if (date('Y-m-d') != $endDate) { $nextRoundTime = date('Y-m-d 10:00:00', strtotime('+1 day')); } } } $this->setAttribute('CurrentRoundTime', $currentRoundTime); $this->setAttribute('NextRoundTime', $nextRoundTime); // IsRushable $isRushable = false; // 当前在可抢时间范围内 if ($currentRoundTime && time() < strtotime($currentRoundTime) + 30 * 60) { $isRushable = true; } // 当前可抢开关 $result = $cache->get(Util_Christmas::hammerIsRushableCacheKey($currentRoundTime)); if ($result !== FALSE) { $isRushable = (bool) $result; } $this->setAttribute('IsRushable', $isRushable); $this->setAttribute('IsEnd', Util_Christmas::hammerRushEnded()); if ($isLoggedIn) { $brokerId = self::$intBrokerID; self::$BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId, true); $this->setAttribute('BrokerName', $this->request->getUserName()); $isCheckedState = isset(self::$BrokerInfo['BaseInfo'][strtoupper('checkstate')]) && self::$BrokerInfo['BaseInfo'][strtoupper('checkstate')]; $this->setAttribute('BrokerIsCheckedState', $isCheckedState); $gradeScore = isset(self::$BrokerInfo['BaseInfo'][strtoupper('gradescore')]) ? self::$BrokerInfo['BaseInfo'][strtoupper('gradescore')] : 0; $this->setAttribute('BrokerGradeScore', $gradeScore); $exchangeHammerNumber = Model_Christmas_HammerLog::data_access()->filter_by_op('brokerId', '=', $brokerId)->filter_by_op('type', '=', Model_Christmas_HammerLog::TYPE_GRADE_EXCHANGE)->count(); $isExchangeable = $exchangeHammerNumber < 3; $this->setAttribute('IsExchangeAble', $isExchangeable); $brokerHammer = Model_Christmas_BrokerHammer::fetchBrokerHammerByBrokerId($brokerId, true); $this->setAttribute('BrokerHammerNumber', $brokerHammer->number); } else { $this->setAttribute('BrokerLoginUrl', Uri_ChristmasUrl::login_url($this->request->get_request_url())); } return 'Christmas_Hammer'; }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $per = isset($this->_params['per']) ? $this->_params['per'] : 20; $per = $per + 1; //判断是否有下一页 $moreFlag = 1; //读取经纪人信息 $BrokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); //城市是否开通房源库 $cityInfo = Bll_Fyk_Prop_Manage::getInstance()->getCityConfig($BrokerInfo['BaseInfo']['CITYID']); if ($cityInfo) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array(), 'nextPage' => 0); } //是否收费 $isToll = Bll_Broker_EntrustPrice::getInstance()->checkCityConsumeStatus($BrokerInfo['BaseInfo']['CITYID']); if ($isToll) { return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'errcode' => Const_APIStatus::E_PROMPT_UPDATE, 'message' => '你的版本太老了,快更新到新版本吧!'); } // 获取已推送委托 $daPushedCommissionHouses = Model_House_CommissionHousePushed::data_access()->filter('brokerId', $brokerId)->filter('propertyStatus', Model_House_CommissionHouse::STATUS_ONGOING)->limit($per); if (isset($this->_params['maxId'])) { $daPushedCommissionHouses->filter_by_op('id', '>', $this->_params['maxId'])->sort('id', 'asc'); } elseif (isset($this->_params['sinceId'])) { $daPushedCommissionHouses->filter_by_op('id', '<', $this->_params['sinceId'])->sort('id', 'desc'); } else { // maxId和sinceId均不存在时,返回当前最新的记录 $daPushedCommissionHouses->sort('id', 'desc'); } $pushedCommissionHouses = $daPushedCommissionHouses->find_all(); $countPushedCommissionHouses = count($pushedCommissionHouses); if ($countPushedCommissionHouses < $per) { $moreFlag = 0; } else { unset($pushedCommissionHouses[$countPushedCommissionHouses - 1]); } // 排序(按ID倒序) uasort($pushedCommissionHouses, function ($a, $b) { return $a['id'] < $b['id']; }); // 获取房源数据 $houses = array(); $rushedHouses = array(); if (!empty($pushedCommissionHouses)) { // 获取房源ID $houseIds = array(); foreach ($pushedCommissionHouses as $pushedCommissionHouse) { $houseIds[] = $pushedCommissionHouse['propertyId']; } // 获取房源信息 $houses = Model_House_CommissionHouse::data_access()->filter('id', $houseIds)->find_all(); // 索引 $indexedHouses = array(); foreach ($houses as $house) { $indexedHouses[$house['id']] = $house; } $houses = $indexedHouses; // 获取已抢房源数据 $rushedCommissions = Model_House_Commission::data_access()->filter('houseId', $houseIds)->filter('brokerId', $brokerId)->find_all(); foreach ($rushedCommissions as $rushedCommission) { $rushedHouses[$rushedCommission->houseId] = $rushedCommission->id; } } // 拼装结果 $data = array(); foreach ($pushedCommissionHouses as $pushedCommissionHouse) { if (!isset($houses[$pushedCommissionHouse['propertyId']])) { continue; } $house = $houses[$pushedCommissionHouse['propertyId']]; $row = array(); $row['id'] = $pushedCommissionHouse['id']; $row['propertyId'] = $house['id']; $row['commName'] = $house['commName']; $row['type'] = $house['commissionType']; $row['room'] = $house['roomNum']; $row['hall'] = $house['hallNum']; $row['toilet'] = $house['toiletNum']; $row['area'] = $house['areaNum']; $row['price'] = $house['proPrice']; switch ($house['commissionType']) { case Model_House_CommissionHouse::COMMISSION_TYPE_RENT: $row['priceUnit'] = '元/月'; break; case Model_House_CommissionHouse::COMMISSION_TYPE_SALE: $row['priceUnit'] = '万元'; break; } $row['publishTime'] = date('Y-m-d H:i:s', $house['created']); $row['rushable'] = 1; $row['rushableInfo'] = '抢委托'; $row['rushed'] = 0; if (!($house['proStatus'] == Model_House_CommissionHouse::STATUS_ONGOING && $house['openBrokerCnt'] < Model_House_CommissionHouse::allowedMaxCommissionCount())) { $row['rushable'] = 0; $row['rushableInfo'] = '抢完了'; } if (isset($rushedHouses[$house['id']])) { $row['rushable'] = 0; $row['rushableInfo'] = '抢过了'; $row['rushed'] = 1; } $data[] = $row; } // 重置可抢房源数 $daCommissionHousePushedCount = Model_House_CommissionHousePushedCount::data_access()->filter('brokerId', $brokerId)->find_only(); if (!empty($daCommissionHousePushedCount)) { $daCommissionHousePushedCount->resetCommissionHousePushedCount(); } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data, 'nextPage' => $moreFlag); }
public function get_broker_info() { $brokerId = APF::get_instance()->get_request()->getBrokerId(); $info = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); return $info; }
/** * 二手房-板块精选房源设置页面 * * @param int $brokerId * @param int $cityId * @param int $houseId * @param array $params * * @return array */ public static function esf_setting($brokerId, $cityId, $houseId, $userId, $params = array()) { $pageAttribute = array(); //获取精选推广预算 $brokerInfo = Bll_BrokerBaseBll::get_instance()->get_broker_info($brokerId); $brokerCompanyId = $brokerInfo['BaseInfo']['COMPANYID']; $choiceSet = APF::get_instance()->get_config('block_choice_set'); //根据经纪人公司不同有不同的预算 if (isset($choiceSet[$brokerCompanyId]) && !empty($choiceSet[$brokerCompanyId])) { $pageAttribute['min_budget'] = $choiceSet[$brokerCompanyId]['ajk']['ESF_CHOICE_MIN_BUDGET']; $pageAttribute['max_budget'] = $choiceSet[$brokerCompanyId]['ajk']['ESF_CHOICE_MAX_BUDGET']; } else { $pageAttribute['min_budget'] = $choiceSet['default']['ajk']['ESF_CHOICE_MIN_BUDGET']; $pageAttribute['max_budget'] = $choiceSet['default']['ajk']['ESF_CHOICE_MAX_BUDGET']; } self::setChoiceNum($cityId); //判断当前经纪人已经精选推广的房源数 if (isset($params['act']) && isset($params['rebid'])) { if (self::checkEsfBidChoiceFull($brokerId, $cityId, 1)) { //检查二手房精选是否达到最大 return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '最多精选推广' . self::$all_esf_plan_num . '套房源'); } } else { if (self::checkEsfBidChoiceFull($brokerId, $cityId)) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '最多精选推广' . self::$all_esf_plan_num . '套房源'); } } /** 经纪人重新推广房源 */ if (isset($params['act']) && isset($params['rebid'])) { //在精选管理页就已经设置时候是重新推广 $planInfo = Model_Plan_EsfAjkPropSpread::getChoicePlanInfoByHouseid($houseId); if ($planInfo->status == Model_Plan_EsfAjkPropSpread::ONLINE || $planInfo->status == Model_Plan_EsfAjkPropSpread::ONQUEUE) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '房源已经精选'); } $pageAttribute['plan_id'] = $params['plan_id']; $pageAttribute['rebid'] = true; } $balance = self::get_broker_balance_by_broker_id($brokerId); //获取经纪人账户余额 $pageAttribute['balance'] = $balance; if ($balance > 0) { $balance = sprintf('%.2f', $balance / 100); } $pageAttribute['balance_fmt'] = $balance; //获取房源信息 $pageAttribute['housesInfo'] = Bll_House_EsfHouse::getHouseBaseInfo($houseId, $cityId); if (empty($pageAttribute['housesInfo'])) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '房源不存在!'); } $houseInfo = $pageAttribute['housesInfo'][0]; if ($houseInfo->userId != $userId) { return array('err_no' => self::BID_FAIL_QUALITY_OR_NEW, 'err_msg' => '房源不属于当前操作人'); } if ($houseInfo->isVisible != 1) { return array('err_no' => self::BID_FAIL_QUALITY_OR_NEW, 'err_msg' => '房源是违规房源,不可以参加精选房源推广'); } if ($houseInfo->isHighQulity == 0) { return array('err_no' => self::BID_FAIL_QUALITY_OR_NEW, 'err_msg' => '多图、新发15天房源才能参与精选推广'); } if (date('Ymd', strtotime('-15 days')) > date('Ymd', $houseInfo->postDate)) { return array('err_no' => self::BID_FAIL_QUALITY_OR_NEW, 'err_msg' => '多图、新发15天房源才能参与精选推广'); } /** 判断是否是精选开放城市 */ if (!Bll_City::isChoiceIndependentCity($cityId, Const_Site::ANJUKE)) { /** 判断是在套餐推广中 */ $houseState = Bll_Combo_HouseRelation::getOnlineRelationByHouseId($houseId, Bll_Combo_HouseRelation::SITE_TYPE_AJK); if (empty($houseState)) { return array('err_no' => self::BID_FAIL_QUALITY_OR_NEW, 'err_msg' => '该房源不在推广中'); } } //判断是否已在竞价计划中 $planInfo = Model_Plan_EsfAjkPropSpread::getChoicePlanInfoByHouseid($houseId); if (!empty($planInfo) && !isset($params['act']) && !isset($params['rebid'])) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '房源已经精选'); } $block = Bll_Commtype_Api::getInfoByTypeCode($houseInfo->areaCode); $area = Bll_Commtype_Api::getInfoByTypeId($block['parentId']); $pageAttribute['areaBlock'] = $area['typeName'] . " " . $block['typeName']; $pageAttribute['title'] = sprintf("%s,%s,%d室%d厅%d卫,%d平,%.2f万", $pageAttribute['areaBlock'], $houseInfo->commName, $houseInfo->roomNum, $houseInfo->hallNum, $houseInfo->toiletNum, intval($houseInfo->areaNum), $houseInfo->proPrice); $pageAttribute['community_name'] = $houseInfo->commName; $housePrice = intval($houseInfo->proPrice * 10000); if (strlen($houseInfo->areaCode) < 12) { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '房源不能精选'); } //获取坑位信息 $bucketInfo = Bll_Choice_EsfBlockBidBucket::get_bucket_info($houseInfo->areaCode, $cityId, $housePrice); //获取坑位信息 if (empty($bucketInfo)) { Bll_Choice_EsfBlockBidBucket::init_bucket_info($houseInfo->areaCode, $cityId, $housePrice); $bucketInfo = Bll_Choice_EsfBlockBidBucket::get_bucket_info($houseInfo->areaCode, $cityId, $housePrice); } if ($bucketInfo['usedNum'] < $bucketInfo['maxOnlineNum']) { $pageAttribute['hidden']['show'] = 1; } $pageAttribute['bucket_total'] = $bucketInfo['totalNum']; $pageAttribute['bucket_used'] = $bucketInfo['usedNum']; $pageAttribute['bucket_used_num'] = $bucketInfo['usedNum']; $pageAttribute['bucket_total_num'] = $bucketInfo['totalNum']; $pageAttribute['bucket_max_online_num'] = $bucketInfo['maxOnlineNum']; $priceInfo = Model_House_EsfPrice::get_price_by_id($bucketInfo['priceId']); $pageAttribute['price_title'] = sprintf("%d-%d万", intval($priceInfo['minPrice'] / 10000), intval($priceInfo['maxPrice'] / 10000)); //价格 $clickPrice = Bll_Service_BlockChoice::ajkBlockClickPrice(array('brokerId' => $brokerId, 'cityId' => $cityId, 'price' => $housePrice, 'blockId' => $block['typeId'])); if ($clickPrice['status'] == 'error') { return array('err_no' => self::BID_FAIL_OTHER, 'err_msg' => '服务器繁忙,请重试(code: -' . __LINE__ . ')'); } if ($clickPrice['realTradeAmount'] != $clickPrice['shouldTradeAmount']) { $pageAttribute['favorable'] = true; $pageAttribute['price'] = round($clickPrice['realTradeAmount'] / 100, 2); $pageAttribute['origin_price'] = round($clickPrice['shouldTradeAmount'] / 100, 2); $pageAttribute['favorable_end_time'] = date('Y-m-d', strtotime($clickPrice['rebateEndTime'])); } else { $pageAttribute['favorable'] = false; $pageAttribute['price'] = round($clickPrice['realTradeAmount'] / 100, 2); } // $clickAndBudget = Bll_Choice_EsfBlockBidBucket::getBucketAverageClickBudget($houseInfo->areaCode, $cityId, $housePrice); //获取坑位的平均点击的预算 // if (!empty($clickAndBudget)) { // $pageAttribute['averageClick'] = $clickAndBudget['averageClick']; // $pageAttribute['averageBudget'] = $clickAndBudget['averageBudget'] / 100; // } /**重组区域精选url**/ $bidPlanList = Bll_Plan_Bid_AjkPlan::getBrokerValidPlanListByhouseId($houseId, $brokerId, $cityId, true); $bidPlanList = $bidPlanList[0]; if (isset($bidPlanList)) { $blockInfo['bidStatus'] = $bidPlanList['status']; if ($bidPlanList['status'] == 1) { $bidUrl = '/ajkbroker/user/choice/manage/ajk/#' . $houseId; } elseif ($bidPlanList['status'] == 11) { $bidUrl = '/ajkbroker/user/choice/manage/ajk/#' . $houseId; } else { if ($bidPlanList['status'] != 2) { $bidUrl = "/ajkbroker/user/choice/set/ajk/" . $houseInfo['proId'] . '/?act=1&rebid=1&plan_id=' . $bidPlanList['id']; } } } else { $bidUrl = "/ajkbroker/user/choice/set/ajk/" . $houseInfo['proId']; } $pageAttribute['bidUrl'] = $bidUrl; return $pageAttribute; }