public function handle_request_internal() { //判断房源是否定价 拿propid去static_price_relation 查PlanId 再去static_price_plan表中查定价信息 $propId = $this->_params['propId']; $cityId = $this->_params['cityId']; //好丑陋。。。。。。好无奈。。。。。。 //委托房源自动转发停用,为了app能够展示报错信息。。。 if (empty($propId)) { $this->_params['apiDebug'] = 1; return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'errcode' => '0000', 'message' => '委托房源自动转发功能已停用;若要发布请手动发布'); } $relation = Model_Plan_AjkFixRelation::getRelationByProId($propId, $cityId); $result['status'] = 'ok'; $data['totalClicks'] = $data['todayClicks'] = $data['clickPrice'] = 0; $data['planId'] = ''; if (!empty($relation)) { if ($relation['status'] == Model_Plan_AjkFixRelation::STATUS_NORMAL) { $data['status'] = 1; //房源在定价推广中 } else { $data['status'] = 0; //未推广 } $plan = Model_Plan_EsfFixedPlan::getValidStaticPricePlanById($relation['planId']); $data['planId'] = $plan[0]['id']; if (!empty($plan)) { //房源在定价推广中 //房源点击量 $proClickDao = new DAO_My_Ppc_PlanOpe(); $proClickInfo = $proClickDao->getProClick($propId, strtotime("20120901")); if (!empty($proClickInfo)) { if (isset($proClickInfo[$propId])) { $data['totalClicks'] = $proClickInfo[$propId]; } $data['todayClicks'] = $proClickInfo['todayClicks']; } } } else { $data['status'] = 0; //未推广 } //获取点击单价 $houseInfo = Bll_House_EsfHouse::getHouseBaseInfo($propId, $cityId); if (!empty($houseInfo)) { $proPriceInt = $houseInfo[0]['proPriceInt']; $priceArr = DAO_My_Ppc_UtilTool::getPriceInterval($cityId, $proPriceInt - 0.01); if (!empty($priceArr)) { $data['clickPrice'] = round($priceArr['price'], 2); } } $data['clickPriceUnit'] = '元'; $result['data'] = $data; return $result; }
public function handle_request_internal() { $propIds = explode(',', $this->_params['propIds']); $cityId = $this->_params['cityId']; //获取房源信息 $propsInfos = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId); //板块信息 $blockCode = array(); $brokerIds = array(); foreach ($propsInfos as $propsInfoVal) { $blockCode[] = substr($propsInfoVal['areaCode'], 8, 4); $brokerIds[] = $propsInfoVal['brokerId']; } $blockInfos = Bll_Community_CommunityGardener::getAreaBlock($blockCode); //获取经纪人微聊信息 $chatInfos = Model_Mobile_BrokerChatInfo::getBrokerChatInfos($brokerIds); $propList = array(); foreach ($propsInfos as $propsInfo) { $row = array(); $row['brokerId'] = $propsInfo['brokerId']; $row['chatId'] = $chatInfos[$row['brokerId']]['chatId']; $row['propId'] = $propsInfo['proId']; $row['cityId'] = $propsInfo['cityId']; $row['title'] = $propsInfo['proName']; $row['commId'] = $propsInfo['commId']; $row['commName'] = $propsInfo['commName']; $row['areaCode'] = $propsInfo['areaCode']; $row['blockName'] = $blockInfos[$row['areaCode']]; $row['createTime'] = date("Y-m-d H:i:s", $propsInfo['postDate']); $row['room'] = $propsInfo['roomNum']; $row['hall'] = $propsInfo['hallNum']; $row['toilet'] = $propsInfo['toiletNum']; $row['area'] = $propsInfo['areaNum']; $row['areaUnit'] = '平米'; $row['price'] = intval($propsInfo['proPrice']); $row['priceUnit'] = '万'; //获取房源图片 $houseImageInfo = Bll_Ppc_ServiceAPI::getHouseImageInfo($propsInfo['proId']); $houseImageBaseInfos = $houseImageInfo['imageBaseInfo']; $houseImageUrls = array(); if ($houseImageBaseInfos) { foreach ($houseImageBaseInfos as $imageInfo) { $houseImageUrls[] = Util_Image::getInstance()->getResizeURL($imageInfo['FILENAME'], $imageInfo['HOST_ID'], 420, 315); } } $row['imageUrls'] = $houseImageUrls; $propList[] = $row; } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('props' => $propList)); }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $cityId = $this->_params['cityId']; $result['status'] = 'ok'; $propertyList = array(); $subscriptionInfo = Model_Choice_Subscription::selectData(array(Model_Choice_Subscription::SITE => Model_Choice_Subscription::SITE_AJK, Model_Choice_Subscription::BROKER_ID => $brokerId, Model_Choice_Subscription::STATUS => Model_Choice_Subscription::SUBSCRIPTION_START)); if (!empty($subscriptionInfo)) { $propIds = array(); foreach ($subscriptionInfo as $row) { $propIds[] = $row['propId']; } $houseInfo = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId, array('postDate' => 'desc')); //房源点击量 $proClickDao = new DAO_My_Ppc_PlanOpe(); $proClickInfo = $proClickDao->getProClick($propIds, strtotime("20120901")); foreach ($houseInfo as $row) { $propId = $row['proId']; $list['propId'] = $propId; $list['title'] = $row['proName']; $list['commId'] = $row['commId']; $list['commName'] = $row['commName']; $list['roomNum'] = $row['roomNum']; $list['hallNum'] = $row['hallNum']; $list['toiletNum'] = $row['toiletNum']; $list['area'] = round($row['areaNum']); $list['price'] = round($row['proPrice']); $list['priceUnit'] = '万'; $list['totalClicks'] = isset($proClickInfo[$propId]) ? $proClickInfo[$propId] : 0; $list['isBid'] = $list['isChoice'] = 0; $list['isMoreImg'] = $row['isHighQulity']; $list['isVisible'] = $row['isVisible']; $list['isPhonePub'] = $row['uriCode'] == 'mobile.asyn' || $row['uriCode'] == 'mobile-ajk-broker.asyn' ? 1 : 0; $list['createTime'] = $row['postDate']; $imgBll = Bll_Image_EsfHouseImage::getInstance(); $list['imgUrl'] = $imgBll->getThumbImageUrl($propId, $row['commId']); //委托房源标签 $list['isEntrust'] = $row['commitionType'] == 2 ? 1 : 0; $propertyList[] = $list; } } $result['data']['propertyList'] = $propertyList; return $result; }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $plans = Model_Plan_EsfFixedPlan::getValidPlan($brokerId); $props = 0; $result['status'] = 'ok'; if (!empty($plans)) { $planId = $plans['id']; $cityId = $plans['cityid'] ?: 0; $relations = Model_Plan_AjkFixRelation::getRelationListByPlanId($planId, $cityId); if (!empty($relations)) { $propIds = array(); foreach ($relations as $row) { $propIds[] = $row['proId']; } $houseInfo = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId); $props = count($houseInfo); } $planBll = new DAO_My_Ppc_PlanOpe(); $clicks = $planBll->planTodayNewCost($planId); $data['planId'] = $planId; $data['todayClicks'] = $clicks['allclick']; $data['todayConsume'] = Util_Formatter::formatTodayConsume($clicks['allamount']); $data['todayConsumeUnit'] = '元'; $data['totalProps'] = $props; //获取计划状态 $api_url = '/service-ppc/rest/ppc/getPpcPlan/' . $planId . '?resType=1'; $plan_info = Util_CallAPI::get_data_from_java_api($api_url); $data['planStatus'] = $plan_info['data']['plan']['statusDescrip'] == '推广中' ? 1 : 0; $limitInfo = Bll_Fixedspread_AjkFixedSpread::getLimitInfo($brokerId); $data['budget'] = !empty($limitInfo) ? round($limitInfo['amountLimit'] / 100, 2) : 0; $data['budgetUnit'] = '元'; } else { $brokerInfo = Model_Broker_AjkBrokerExtend::getDataByBrokerId($brokerId); $planId = Model_Plan_EsfFixedPlan::addPlan('定价推广组', 1, $brokerInfo->cityId, $brokerInfo->userId, $brokerInfo->brokerId); $data['planId'] = $planId; $data['todayClicks'] = $data['todayConsume'] = $data['totalProps'] = $data['planStatus'] = 0; $data['todayConsumeUnit'] = $data['budgetUnit'] = '元'; $limitInfo = Bll_Fixedspread_AjkFixedSpread::getLimitInfo($brokerId); $data['budget'] = !empty($limitInfo) ? round($limitInfo['amountLimit'] / 100, 2) : 0; } $result['data'] = $data; return $result; }
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); } if (!Bll_Broker_HzBroker::isComboBroker($brokerId)) { throw new Exception_ISNotComboBrokerException('不是套餐经纪人。'); } /** 套餐信息 */ $comboInfoList = Bll_Combo_Broker_BrokerComboInfo::getBrokerComboList($brokerId); $currentDate = time(); foreach ($comboInfoList as $comboInfo) { $startDate = strtotime($comboInfo['startTime']); $endDate = strtotime($comboInfo['endTime']); /** 获取当前使用的套餐 */ if ($currentDate >= $startDate && $currentDate < $endDate && $comboInfo['salePropNum'] > 0) { $currentCombo = $comboInfo; break; } } //获取经纪人套餐推广今日点击量 $comboClick = Bll_Ppc_NewPackageStatsBrokerDay::getComboClickInfo($brokerId, date('Ymd'), Model_Ppc_NewPackageStatsBrokerDay::SITE_TYPE_AJK); //经纪人没有套餐 if (!isset($currentCombo)) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('todayClicks' => intval($comboClick), 'totalProps' => 0)); } $cityId = $brokerInfo->cityId; //获取套餐推广信息 $comboSpreadHouseList = Bll_Broker_Combo_ManageAjk::getComboSpreadHouseList($brokerId, $cityId); //获取房源信息 $propIds = array_keys($comboSpreadHouseList); if ($propIds) { $propsInfo = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId); $propsNum = count($propsInfo); } else { $propsNum = 0; } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('todayClicks' => intval($comboClick), 'totalProps' => $propsNum)); }
/** * 获取经纪人精选房源列表 * * @param $brokerId * @return bool */ public function getBrokerPropChoiceInfo($brokerId) { try { //初始话返回数据 $data = array('OnlinePropertyList' => array(), 'QueuedPropertyList' => array(), 'OfflinePropertyList' => array()); //获取经纪人基本信息 $brokerBaseInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (empty($brokerBaseInfo)) { $this->error(self::EMPTY_BROKER_ERROR, self::EMPTY_BROKER_ERROR_MSG); } //判断经纪人城市是否开通精选 if (!$this->checkChoiceOpen($brokerBaseInfo->cityId)) { $this->error(self::CHOICE_CLOSE_ERROR, self::CHOICE_CLOSE_ERROR_MSG); } //获取经纪人有效精选计划 $choicePlans = Model_Plan_EsfAjkPropSpread::getValidChoicePlanByBroker($brokerId, array('createtime', 'desc')); if (empty($choicePlans)) { return $data; } //格式化精选计划数据 list($onSpreadList, $onQueueList, $historyList, $propList) = $this->formatPlanInfo($choicePlans); //获取经纪人的所有房源信息 $propInfo = Bll_House_EsfHouse::getHouseBaseInfo($propList, $brokerBaseInfo->cityId); //转换房源数组key,同时添加默认totalClick的默认值 $propInfo = $this->formatPropInfo($propInfo); //根据房源id获取定价总点击 $bidBll = new bll_plan_bid_EsfBid(); $bidClickInfo = $bidBll->getPropTotalClicksAndCost($propList, $brokerBaseInfo->cityId); //$fixedClickInfo = Model_Plan_EsfFixedClickInfo::getClickInfoByProps($propList, $brokerId); foreach ($propInfo as $key => $row) { $propInfo[$key]['totalClicks'] = $bidClickInfo[$row['id']]['totalClicks']; } //根据计划拼接房源信息 $this->combinePropInfo($onSpreadList, $propInfo); $this->combinePropInfo($onQueueList, $propInfo); $this->combinePropInfo($historyList, $propInfo); // 排序 $this->_sortPropByUpdateTime($onSpreadList); $this->_sortPropByUpdateTime($onQueueList); $this->_sortPropByUpdateTime($historyList); if (!empty($historyList)) { foreach ($historyList as $key => $val) { $historyList[$key]['isChoice'] = 0; } } return array('OnlinePropertyList' => $onSpreadList, 'QueuedPropertyList' => $onQueueList, 'OfflinePropertyList' => $historyList); } catch (Exception $e) { if ($e instanceof Exception_BllErrorException) { $this->errorCode = $e->getCode(); } else { $this->errorCode = self::UNKNOW_ERROR; } $this->errorMsg = $e->getMessage(); return false; } }
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); } if (!Bll_Broker_HzBroker::isComboBroker($brokerId)) { throw new Exception_ISNotComboBrokerException('不是套餐经纪人。'); } /** 套餐信息 */ $comboInfoList = Bll_Combo_Broker_BrokerComboInfo::getBrokerComboList($brokerId); $currentDate = time(); foreach ($comboInfoList as $comboInfo) { $startDate = strtotime($comboInfo['startTime']); $endDate = strtotime($comboInfo['endTime']); /** 获取当前使用的套餐 */ if ($currentDate >= $startDate && $currentDate < $endDate && $comboInfo['salePropNum'] > 0) { $currentCombo = $comboInfo; $comboPropNum = $currentCombo['salePropNum']; if (Bll_Combo_Broker_BrokerComboInfo::isOpenUp($currentCombo)) { $comboPropNum = $currentCombo['rentPropNum'] + $currentCombo['salePropNum']; } break; } } $hasCombo = 0; //没有二手房套餐 if (!isset($currentCombo)) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('newList' => array(), 'oldList' => array(), 'surplus' => 0, 'hasCombo' => $hasCombo)); } else { $hasCombo = 1; } $cityId = $brokerInfo->cityId; //获取套餐推广信息 $comboSpreadHouseList = Bll_Broker_Combo_ManageAjk::getComboSpreadHouseList($brokerId, $cityId); if (Bll_Combo_Broker_BrokerComboInfo::isOpenUp($currentCombo)) { $currentSpreadHouseCount = Bll_Combo_HouseRelation::getHouseCount($brokerId, Bll_Combo_Broker_BrokerComboInfo::SITE_TYPE_AJK, true); } else { $currentSpreadHouseCount = Bll_Combo_HouseRelation::getHouseCountEx($brokerId, $cityId, Bll_Combo_Broker_BrokerComboInfo::SITE_TYPE_AJK); } //套餐还可以推的房源数量 $surplus = $comboPropNum - $currentSpreadHouseCount; if (empty($comboSpreadHouseList)) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('newList' => array(), 'oldList' => array(), 'surplus' => $surplus, 'hasCombo' => $hasCombo)); } //获取房源信息 $propIds = array_keys($comboSpreadHouseList); $propsInfo = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId); //批量获取默认图片 $propDefImages = Model_House_AjkPropertyData::getDafImages($propIds); //批量获取房源总点 $houseTodayClickInfo = Bll_House_EsfHouse::getHouseTodayComboClick($propIds); $houseClickInfo = Bll_House_EsfHouse::getComboHouseAccumulateClickByPropIds($brokerId, $propIds, $cityId); //房源竞价&精选计划 $propSpreadInfo = Model_Plan_EsfAjkPropSpread::getPlanByPropIds($propIds); //拼接房源列表中房源数据 $newList = array(); $oldList = array(); foreach ($propsInfo as $prop) { $row = array(); $row['propId'] = $prop->proId; $row['title'] = $prop->proName; $row['commId'] = $prop->commId; $row['commName'] = $prop->commName; $row['roomNum'] = $prop->roomNum; $row['hallNum'] = $prop->hallNum; $row['area'] = round($prop->areaNum); $row['toiletNum'] = $prop->toiletNum; $row['price'] = intval($prop->proPrice); $row['priceUnit'] = '万'; $row['isBid'] = 0; $row['isChoice'] = 0; $row['isMoreImg'] = $prop->isHighQulity; $row['isPhonePub'] = $prop->uriCode == 'mobile.asyn' || $prop->uriCode == 'mobile-ajk-broker.asyn' ? 1 : 0; $row['isVisible'] = isset($houseInfo['isVisible']) ? $houseInfo['isVisible'] : 1; //0-违规房源 1-非违规房源 $row['createTime'] = $prop->postDate; //房源发布时间 $row['imgUrl'] = Model_House_AjkPropertyData::imageUrl($propDefImages[$prop->proId]); if ($prop->commitionType == 2) { $row['isEntrust'] = 1; } else { $row['isEntrust'] = 0; } $row['totalClicks'] = $houseTodayClickInfo[$prop->proId] + $houseClickInfo[$prop->proId]; if (isset($propSpreadInfo[$prop->proId])) { if ($propSpreadInfo[$prop->proId]->bidVersion == 1 && ($propSpreadInfo[$prop->proId]->status == 1 || $propSpreadInfo[$prop->proId]->status == 11)) { $row['isBid'] = 1; } elseif ($propSpreadInfo[$prop->proId]->bidVersion == 2 && ($propSpreadInfo[$prop->proId]->status == 1 || $propSpreadInfo[$prop->proId]->status == 11)) { $row['isChoice'] = 1; } } //计算出房源发布天数 $timeFixStr = strtotime(date("Ymd", $row['createTime'])); $leftDay = floor((time() - $timeFixStr) / 86400); if ($leftDay >= 30) { $oldList[] = $row; } else { $newList[] = $row; } } // 排序 usort($oldList, function ($a, $b) { if ($a['createTime'] == $b['createTime']) { return 0; } return $a['createTime'] > $b['createTime'] ? -1 : 1; }); usort($newList, function ($a, $b) { if ($a['createTime'] == $b['createTime']) { return 0; } return $a['createTime'] > $b['createTime'] ? -1 : 1; }); return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('newList' => $newList, 'oldList' => $oldList, 'surplus' => $surplus > 0 ? $surplus : 0, 'hasCombo' => $hasCombo)); }
/** * 页面停止推广操作封装 * * @param $planId * @return array */ public static function stop_plan($planId, $brokerId) { $rstArr = array('status' => 'ok'); //获取计划信息 $planInfo = Model_Plan_EsfAjkPropSpread::data_access()->filter_by_op('id', '=', $planId)->filter_by_op('status', '=', Model_Plan_EsfAjkPropSpread::ONLINE)->find_only(); if (empty($planInfo)) { return array('status' => 'fail', 'info' => 'empty plan'); } if ($brokerId != $planInfo->brokerId) { return array('status' => 'fail', 'info' => 'invalid broker'); } if (Model_Plan_EsfAjkPropSpread::COMM_CHOICE != $planInfo->model) { return array('status' => 'fail', 'info' => 'invalid house'); } $cityId = $planInfo->cityId; $propId = $planInfo->propId; //验证choice城市 if (!Bll_City::isChoiceCity($cityId)) { return array('status' => 'fail', 'info' => 'choice is not open'); } //获取房源信息 $pageAttribute['housesInfo'] = Bll_House_EsfHouse::getHouseBaseInfo($propId, $cityId); if (empty($pageAttribute['housesInfo'])) { return array('status' => 'fail', 'info' => 'empty house'); } //更新状态 $oldStatus = $planInfo->status; $planInfo->status = Model_Plan_EsfAjkPropSpread::HANDELSTOP; if (!$planInfo->save()) { return array('status' => 'fail', 'info' => 'update plan status fail'); } /** 坑位-1 只在计划关系被正确修改后才做 */ $housePrice = $planInfo->propriceint; $commId = $planInfo->commId; //获取价格段id $priceIdInfo = Model_House_EsfPrice::get_price($cityId, $housePrice); $priceId = $priceIdInfo['id']; //坑位减1 Model_Choice_EsfBidBucket::decrement_used_num($commId, $priceId); //放入队列 $ip = APF::get_instance()->get_request()->get_client_ip(); if (!Bll_Plan_Bid_EsfChoiceQueue::insert($brokerId, $planId, Model_Choice_ActionQueue::ENUM_STOP_BY_HAND, date('m'), $brokerId, '经纪人手动停止推广', $ip, $propId)) { return array('status' => 'fail', 'info' => 'insert chioce queue fail'); } //记录日志 $remark = sprintf("STATUS:%d=>%d", $oldStatus, Model_Plan_EsfAjkPropSpread::HANDELSTOP); Model_Plan_LogAjkPropspread::addNewLog($planId, $brokerId, Model_Plan_LogAjkPropspread::STOP, $remark); return $rstArr; }
function getComboPropsInOneComm($brokerId, $cityId, $commId = '') { $base_domain = APF::get_instance()->get_config('base_domain'); //获取套餐推广信息 $comboSpreadHouseList = Bll_Broker_Combo_ManageAjk::getComboSpreadHouseList($brokerId, $cityId); if (empty($comboSpreadHouseList)) { return array(); } else { //获取房源信息 $propIds = array_keys($comboSpreadHouseList); $propsInfo = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId); } //房源计划形态(是精选还是竞价) $spreads = array(); if ($propIds) { $spreads = Model_Plan_AjkPropspread::getAjkPropSpreadByIds($propIds); } if (!empty($spreads)) { foreach ($spreads as $row) { $spreadArr[$row['propId']]['bidVersion'] = $row['bidVersion']; $spreadArr[$row['propId']]['status'] = $row['status']; } } foreach ($propsInfo as $propArr) { $propId = $propArr['proId']; $commProps[$propArr['commId']][$propId]['id'] = $propId; $commProps[$propArr['commId']][$propId]['title'] = $propArr['proName']; $commProps[$propArr['commId']][$propId]['commId'] = $propArr['commId']; $commProps[$propArr['commId']][$propId]['commName'] = $propArr['commName']; $commProps[$propArr['commId']][$propId]['roomNum'] = $propArr['roomNum']; $commProps[$propArr['commId']][$propId]['hallNum'] = $propArr['hallNum']; $commProps[$propArr['commId']][$propId]['toiletNum'] = $propArr['toiletNum']; $commProps[$propArr['commId']][$propId]['area'] = $propArr['areaNum']; $commProps[$propArr['commId']][$propId]['price'] = $propArr['proPrice']; $commProps[$propArr['commId']][$propId]['priceUnit'] = '万'; $commProps[$propArr['commId']][$propId]['isVisible'] = $propArr['isVisible']; $commProps[$propArr['commId']][$propId]['imgUrl'] = 'http://pages.anjukestatic.com/img/global/nopic_100x75.gif'; $commProps[$propArr['commId']][$propId]['isMoreImg'] = $propArr['isHighQulity'] ? 1 : 0; $commProps[$propArr['commId']][$propId]['isPhonePub'] = $propArr['uriCode'] == 'mobile.asyn' || $propArr['uriCode'] == 'mobile-ajk-broker.asyn' ? 1 : 0; $commProps[$propArr['commId']][$propId]['propUrl'] = 'http://' . $base_domain . '/web/sale/x/' . $propArr['cityId'] . '/' . $propId; $commProps[$propArr['commId']][$propId]['createTime'] = date('Y-m-d H:i:s', $propArr['postDate']); $commProps[$propArr['commId']][$propId]['totalClicks'] = isset($proClickInfo[$propId]) ? $proClickInfo[$propId] : 0; $commProps[$propArr['commId']][$propId]['isBid'] = $commProps[$propArr['commId']][$propId]['isChoice'] = 0; if (isset($spreadArr) && isset($spreadArr[$propId])) { if ($spreadArr[$propId]['bidVersion'] == 1 && $spreadArr[$propId]['status'] == 1) { $commProps[$propArr['commId']][$propId]['isBid'] = 1; } elseif ($spreadArr[$propId]['bidVersion'] == 2 && ($spreadArr[$propId]['status'] == 1 || $spreadArr[$propId]['status'] == 11)) { $commProps[$propArr['commId']][$propId]['isChoice'] = 1; } } $imgBll = Bll_Image_EsfHouseImage::getInstance(); $commProps[$propArr['commId']][$propId]['imgUrl'] = $imgBll->getThumbImageUrl($propId, $propArr['commId']); } $return = $commProps; if ($commId) { $ret['status'] = 'ok'; $ret['data']['propertyList'] = $return[$commId] ? array_values($return[$commId]) : array(); } else { $ret = $return; } return $ret; }
public function handle_request_internal() { header("Access-Control-Allow-Origin: *"); $propId = $this->_params['propId']; //好丑陋。。。。。。好无奈。。。。。。 //委托房源自动转发停用,为了app能够展示报错信息。。。 if (empty($propId)) { $this->_params['apiDebug'] = 1; return array('status' => Const_APIStatus::RETURN_CODE_ERROR, 'errcode' => '0000', 'message' => '委托房源自动转发功能已停用;若要发布请手动发布'); } $propInfo = Bll_Ppc_ServiceAPI::getHouseInfo($propId); $brokerId = $this->_params['brokerId']; $houseInfo = Model_House_EsfHouseElementFactory::getHouseBaseInfo($propId); if (empty($houseInfo)) { $cityId = Model_Broker_AjkBrokerExtend::getCityIdByBrokerId($this->_params['brokerId']); $houseInfo = Bll_House_EsfHouse::getHouseBaseInfo($propId, $cityId); } if (!empty($houseInfo)) { $result['status'] = 'ok'; $areaCode = $houseInfo['areaCode']; $block = Bll_Commtype_Api::getInfoByTypeCode($areaCode); $area = Bll_Commtype_Api::getInfoByTypeId($block['parentId']); $area_name = $area['typeName']; $block_name = $block['typeName']; $data['title'] = $houseInfo['proName']; $data['commId'] = $houseInfo['commId']; $data['commName'] = $houseInfo['commName']; //小区信息 $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($data['commId'], 2); $data['commLocation'] = $commInfo['commLocal']; $data['sosolat'] = $commInfo['sosolat']; //纬度 $data['sosolng'] = $commInfo['sosolng']; //经度 $data['floor'] = $propInfo['property']['ProFloor']; $data['totalFloor'] = $propInfo['property']['FloorNum']; $propDescription = $propInfo['property']['sale']['AddExplan']; $propDescription = str_replace('<p>', "", $propDescription); $propDescription = str_replace('</p>', "", $propDescription); $propDescription = trim($propDescription); $data['propDescription'] = $propDescription; $data['areaname'] = $area_name; $data['blockname'] = $block_name; $data['roomNum'] = $houseInfo['roomNum']; $data['hallNum'] = $houseInfo['hallNum']; $data['toiletNum'] = $houseInfo['toiletNum']; $data['area'] = $houseInfo['areaNum']; $data['areaUnit'] = '平米'; $data['price'] = $houseInfo['proPrice']; $data['priceUnit'] = '万'; $data['isMoreImg'] = $houseInfo['isHighQulity']; $data['isVisible'] = $houseInfo['isVisible']; $data['isPhonePub'] = $houseInfo['uriCode'] == 'mobile.asyn' || $houseInfo['uriCode'] == 'mobile-ajk-broker.asyn' ? 1 : 0; $data['propImagesUrl'] = array(); $data['propImages'] = $data['outdoorImage'] = array(); if ($propInfo['attachments']['attachments']) { $propImageNum = 0; $outdoorImageNum = 0; $images = $propInfo['attachments']['attachments']; foreach ($images as $image) { if ($image['DataType'] == 2) { if ($propImageNum >= 8) { continue; } $imageInfo = array(); $url = Util_ImageUtils::getResizeURL($image['FileName'], $image['host_id'], 600, 600); $url = str_replace("display", "display/e", $url); $imageInfo['bigImageUrl'] = $url; $data['propImages'][] = $imageInfo; $propImageNum += 1; } else { if ($image['DataType'] == 3) { if ($outdoorImageNum >= 1) { continue; } $imageInfo = array(); $url = Util_ImageUtils::getResizeURL($image['FileName'], $image['host_id'], 600, 600); $url = str_replace("display", "display/e", $url); $imageInfo['bigImageUrl'] = $url; $data['outdoorImage'][] = $imageInfo; $outdoorImageNum += 1; } } } } $spread = Model_Plan_AjkPropspread::getAjkPropSpreadByIds($propId); $data['isChoice'] = $data['isBid'] = 0; if (!empty($spread)) { if ($spread[0]['bidVersion'] == 1 && $spread[0]['status'] == 1) { $data['isBid'] = 1; } elseif ($spread[0]['bidVersion'] == 2 && ($spread[0]['status'] == 1 || $spread[0]['status'] == 11)) { $data['isChoice'] = 1; } } //计算出房源推广天数 $timeFixStr = strtotime(date("Ymd", $houseInfo['postDate'])); $leftDay = floor((time() - $timeFixStr) / 86400); $data['publishDaysMsg'] = $leftDay > 0 ? $leftDay . '天前发布' : '今天发布'; $imgBll = Bll_Image_EsfHouseImage::getInstance(); $data['imgUrl'] = $imgBll->getThumbImageUrl($propId, $houseInfo['commId']); $mobileBaseDomain = APF::get_instance()->get_config("mobile_base_domain"); $data['url'] = 'http://' . $mobileBaseDomain . '/sale/x/' . $houseInfo['cityId'] . '/' . $houseInfo->proId; //增加委托房源标签 if ($houseInfo['commitionType'] == 2) { $data['isEntrust'] = 1; } else { $data['isEntrust'] = 0; } } else { $data['status'] = 'error'; $data['message'] = '房源信息不存在'; } $result['data'] = $data; return $result; }
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); } $communityList = array(); $cityId = $brokerInfo->cityId; $hzBrokerId = Model_Broker_HzMapping::get_hz_broker_id($brokerId); if (Bll_Broker_HzBroker::isComboBroker($brokerId)) { /** 租房 */ $comboList = Bll_Combo_HouseRelation::getHouseRelations($brokerId, Bll_Combo_HouseRelation::SITE_TYPE_HZ, 1); //套餐列表 $propIds = array(); foreach ($comboList as $combo) { $propIds[] = $combo['houseId']; } if ($propIds && $hzBrokerId) { $hzPropList = Model_House_HzPropSearch::getPropList($propIds, $hzBrokerId, $cityId); //房源信息 foreach ($hzPropList as $list) { //过滤无效房源 if (in_array($list['status'], array(Const_HzStatus::VERIFY, Const_HzStatus::REMOVE, Const_HzStatus::EXPIRED))) { continue; } $row = array(); $row['commId'] = $list['commid']; $row['commName'] = $list['commname']; $communityList[$list['commid']] = $row; } } /** 二手房 */ $comboSpreadHouseList = Bll_Broker_Combo_ManageAjk::getComboSpreadHouseList($brokerId, $cityId); if ($comboSpreadHouseList) { //获取房源信息 $propIds = array_keys($comboSpreadHouseList); $propsInfo = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId); foreach ($propsInfo as $prop) { $row = array(); $row['commId'] = $prop->commId; $row['commName'] = $prop->commName; $communityList[$prop->commId] = $row; } } } else { //定价的情况 $brokerProps = Bll_Broker_HzBroker::getBrokerProps($brokerId, $cityId); // 获取房源关系列表 if ($brokerProps['status']) { /** 租房*/ $brokerProps = $brokerProps['msg']; $plans = $brokerProps['plans'][0]; //定价计划 $plannings = $brokerProps['plannings']; //计划房源关系 $propsTemp = $brokerProps['props']; //定价房源 if (empty($plans)) { $hzPropList = array(); } else { $hzPropList = array(); foreach ($propsTemp as $prop) { $hzPropList[$prop['proId']] = $prop; } foreach ($plannings as $key => $planning) { // 非有效 过滤掉 if (!Bll_HzFixPlan::isValidPlanning($planning['isValid'])) { unset($hzPropList[$planning['proId']]); } } } foreach ($hzPropList as $prop) { $row = array(); $row['commId'] = $prop['commId']; $row['commName'] = $prop['commName']; $communityList[$prop['commId']] = $row; } } /** 二手房*/ //获取经纪人有效定价计划 计划表 $fixSpreadPlanList = Bll_Plan_Fix_AjkPlan::getBrokerPlanList($brokerId); $fixPlanId = $fixSpreadPlanList[0]['id']; //关系表中获取房源; if ($fixPlanId) { $relations = Model_Plan_AjkFixRelation::getRelationListByPlanId($fixPlanId, $cityId); $propIds = array(); foreach ($relations as $relation) { $propIds[] = $relation['proId']; } if ($propIds) { $propsInfo = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId); foreach ($propsInfo as $prop) { $row = array(); $row['commId'] = $prop->commId; $row['commName'] = $prop->commName; $communityList[$prop->commId] = $row; } } } } //对小区按首字母排序 $communityList = $this->communitySortByCommCode($communityList); return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('communityList' => array_values($communityList))); }
/** * app 获取可竞价列表 */ public static function get_combo_canbid_props($broker_id, $city_id) { //获取套餐推广信息 $comboSpreadHouseList = Bll_Broker_Combo_ManageAjk::getComboSpreadHouseList($broker_id, $city_id); $comboPropIds = array_keys($comboSpreadHouseList); if (empty($comboPropIds)) { return array(); } //竞价房源 $bidProps = static::gitBidProps($broker_id); $bidPropIds = array_keys($bidProps); foreach ($comboPropIds as $key => $propId) { if (in_array($propId, $bidPropIds)) { unset($comboPropIds[$key]); } } if (!empty($comboPropIds)) { $props = Bll_House_EsfHouse::getHouseBaseInfo($comboPropIds, $city_id); return $props; } return array(); }
/** * 获取二手房的坑位信息 * * @param array $params * @return array */ private function do_bucket_info_ajk($params) { $request = APF::get_instance()->get_request(); $cityId = $request->getBrokerCityId(); $pageAttribute['housesInfo'] = Bll_House_EsfHouse::getHouseBaseInfo($params['prop_id'], $cityId); if (empty($pageAttribute['housesInfo'])) { return array('error_code' => -1, 'error_message' => '房源不存在!'); } $propInfo = $pageAttribute['housesInfo'][0]; $housePrice = intval($propInfo->proPrice * 10000); $commId = $propInfo->commId; $bucketInfo = Bll_Choice_EsfBidBucket::get_bucket_info($commId, $cityId, $housePrice); if (false === $bucketInfo) { return array('error' => -1, 'msg' => '板块价格段不存在。', 'price' => $housePrice); } if (empty($bucketInfo)) { return array('error' => -1, 'msg' => '当前板块没有展示位。', 'commId' => $commId); } return array('error' => 0, 'bucket' => $bucketInfo); }
public function handle_request_internal() { if (Bll_Weshop::weshopPropsIsMaintain()) { return array('status' => 'error', 'message' => "系统维护中,请稍后再试!"); } header("Access-Control-Allow-Origin: *"); $brokerId = $this->_params['brokerId']; $propIds = explode(',', $this->_params['propIds']); $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } //房源表查寻后 添加到队列表 $propsInfos = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $brokerInfo->cityId); if (count($propIds) == 1) { //插入 房源列表 并返回 $propInfo = Bll_Ppc_ServiceAPI::getHouseInfo($propIds[0]); if ($propInfo) { $params = array(); $params['cityId'] = $propInfo['property']['CityId']; $params['commId'] = $propInfo['property']['CommId']; $params['brokerId'] = $brokerId; $params['areaId'] = substr($propInfo['property']['AreaCode'], 0, 8); $params['blockId'] = $propInfo['property']['AreaCode']; $params['price'] = $propInfo['property']['ProPrice']; $params['acreage'] = $propInfo['property']['AreaNum']; $params['room'] = $propInfo['property']['RoomNum']; $params['hall'] = $propInfo['property']['HallNum']; $params['toilet'] = $propInfo['property']['ToiletNum']; $propDescription = $propInfo['property']['sale']['AddExplan']; $propDescription = str_replace('<p>', "", $propDescription); $propDescription = str_replace('</p>', "", $propDescription); $propDescription = trim($propDescription); $params['description'] = json_encode($propDescription); $params['title'] = $propInfo['property']['ProName']; $params['floor'] = $propInfo['property']['ProFloor']; $params['totalFloor'] = $propInfo['property']['FloorNum']; $params['status'] = 1; $params['createTime'] = date('Y-m-d H:i:s', time()); $params['updateTime'] = date('Y-m-d H:i:s', time()); $result = Model_Weshop_Props::insertWeshopProps($params); //存储图片 默认图 区分 室内图8张 户型图 1张 $imageUrl = ''; if ($propInfo['attachments']['attachments']) { $propImageNum = 0; $outdoorImageNum = 0; $images = $propInfo['attachments']['attachments']; foreach ($images as $image) { if ($image['DataType'] == 2) { if ($propImageNum >= 8) { continue; } if ($propImageNum == 0) { $img_params['isDefault'] = 1; //默认图 $url = Util_ImageUtils::getResizeURL($image['FileName'], $image['host_id'], 290, 240); //(拼好小图) $imageUrl = str_replace("240", "240c", $url); //无水印格式 } else { $img_params['isDefault'] = 0; } $img_params['imageType'] = 1; //室内图 $propImageNum += 1; } else { if ($image['DataType'] == 3) { if ($outdoorImageNum >= 1) { continue; } $img_params['imageType'] = 2; //户型图 $outdoorImageNum += 1; } } $img_params['propId'] = $result->id; $img_params['imageHostId'] = $image['host_id']; $img_params['imageHash'] = $image['FileName']; $img_params['isDelete'] = 0; $img_params['createTime'] = date('Y-m-d H:i:s', time()); $img_params['updateTime'] = date('Y-m-d H:i:s', time()); //存储图片 Model_Weshop_PropImages::insertWeshopPropImages($img_params); } } if ($result) { //插入 weshop_prop_ext表 $tmp = array('weshopPropId' => $result->id, 'brokerId' => $brokerId, 'propId' => $propIds[0]); Model_Weshop_PropsFilter::insertRecord($tmp); //区域板块 $areaAndBlockIds = array(); $areaId = $params['areaId']; $blockId = $params['blockId']; $areaAndBlockIds[] = $areaId; $areaAndBlockIds[] = $blockId; $commTypeInfos = Bll_Community_CommunityGardener::getCommTypeInfo($areaAndBlockIds); $previewUrl = Bll_Weshop::getPropPreviewUrl(array('brokerId' => $brokerId, 'propId' => $result->id)); return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('propId' => $result->id, 'title' => $propInfo['property']['ProName'], 'areaName' => $commTypeInfos[$areaId], 'blockName' => $commTypeInfos[$blockId], 'commId' => $propInfo['property']['CommId'], 'commName' => $propInfo['property']['CommName'], 'room' => $propInfo['property']['RoomNum'], 'hall' => $propInfo['property']['HallNum'], 'toilet' => $propInfo['property']['ToiletNum'], 'price' => $propInfo['property']['ProPrice'], 'priceUnit' => '万', 'area' => $propInfo['property']['AreaNum'], 'areaUnit' => '平米', 'propDescription' => $propDescription, 'previewUrl' => $previewUrl, 'imageUrl' => $imageUrl)); } } } //插入队列表 foreach ($propsInfos as $propsInfo) { if ($propsInfo['brokerId'] == $brokerId) { $params = array(); $params['brokerId'] = $brokerId; $params['propId'] = $propsInfo['proId']; $params['cityId'] = $brokerInfo->cityId; $params['status'] = 0; $params['addTime'] = date('Y-m-d H:i:s', time()); $params['updateTime'] = date('Y-m-d H:i:s', time()); Model_Weshop_PropQueue::insertWeshopPropQueue($params); } } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('message' => '导入成功')); }
/** * 金铺-精选房源设置页面 * * @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('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' => '房源已经精选'); } $pageAttribute['title'] = sprintf("%s,%d室%d厅%d卫,%d平,%.2f万", $houseInfo->commName, $houseInfo->roomNum, $houseInfo->hallNum, $houseInfo->toiletNum, intval($houseInfo->areaNum), $houseInfo->proPrice); $pageAttribute['community_name'] = $houseInfo->commName; $housePrice = intval($houseInfo->proPrice * 10000); //获取坑位信息 $bucketInfo = Bll_Choice_EsfBidBucket::get_bucket_info($houseInfo->commId, $cityId, $housePrice); //获取坑位信息 if (empty($bucketInfo)) { Bll_Choice_EsfBidBucket::init_bucket_info($houseInfo->commId, $cityId, $housePrice); $bucketInfo = Bll_Choice_EsfBidBucket::get_bucket_info($houseInfo->commId, $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_Choice::ajkClickPrice(array('brokerId' => $brokerId, 'cityId' => $cityId, 'price' => $housePrice, 'commId' => $houseInfo->commId)); 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_EsfBidBucket::getBucketAverageClickBudget($houseInfo->commId, $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/blockset/ajk/" . $houseInfo['proId'] . '/?act=1&rebid=1&plan_id=' . $bidPlanList['id']; } } } else { $bidUrl = "/ajkbroker/user/choice/blockset/ajk/" . $houseInfo['proId']; } $pageAttribute['bidUrl'] = $bidUrl; return $pageAttribute; }
public function handle_request_internal() { // TODO: Implement handle_request_internal() method. $result['status'] = 'ok'; $cityId = $this->_params['cityId']; $brokerId = $this->_params['brokerId']; $relations = Model_Plan_AjkFixRelation::getRelationListByPlanId($this->_params['planId'], $cityId); $propertyList = array('newList' => array(), 'oldList' => array()); if (!empty($relations)) { $propIds = array(); foreach ($relations as $row) { $propIds[] = $row['proId']; } $houseInfo = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId, array('postDate' => 'desc')); //房源点击量 $proClickDao = new DAO_My_Ppc_PlanOpe(); $proClickInfo = $proClickDao->getProClick($propIds, strtotime("20120901")); $spreads = Model_Plan_AjkPropspread::getAjkPropSpreadByIds($propIds); if (!empty($spreads)) { foreach ($spreads as $row) { $spreadArr[$row['propId']]['bidVersion'] = $row['bidVersion']; $spreadArr[$row['propId']]['status'] = $row['status']; } } foreach ($houseInfo as $row) { $propId = $row['proId']; $list['propId'] = $propId; $list['title'] = $row['proName']; $list['commId'] = $row['commId']; $list['commName'] = $row['commName']; $list['roomNum'] = $row['roomNum']; $list['hallNum'] = $row['hallNum']; $list['toiletNum'] = $row['toiletNum']; $list['area'] = round($row['areaNum']); $list['price'] = is_float($row['proPrice']) ? round($row['proPrice'], 1) : $row['proPrice']; $list['priceUnit'] = '万'; $list['totalClicks'] = isset($proClickInfo[$propId]) ? $proClickInfo[$propId] : 0; $list['isBid'] = $list['isChoice'] = 0; if (isset($spreadArr) && isset($spreadArr[$propId])) { if ($spreadArr[$propId]['bidVersion'] == 1 && $spreadArr[$propId]['status'] == 1) { $list['isBid'] = 1; } elseif ($spreadArr[$propId]['bidVersion'] == 2 && ($spreadArr[$propId]['status'] == 1 || $spreadArr[$propId]['status'] == 11)) { $list['isChoice'] = 1; } } $list['isMoreImg'] = $row['isHighQulity']; $list['isVisible'] = $row['isVisible']; $list['isPhonePub'] = $row['uriCode'] == 'mobile.asyn' || $row['uriCode'] == 'mobile-ajk-broker.asyn' ? 1 : 0; $list['createTime'] = $row['postDate']; $imgBll = Bll_Image_EsfHouseImage::getInstance(); $list['imgUrl'] = $imgBll->getThumbImageUrl($propId, $row['commId']); //增加委托房源标签 if ($row['commitionType'] == 2) { $list['isEntrust'] = 1; } else { $list['isEntrust'] = 0; } //计算出房源推广天数 $timeFixStr = strtotime(date("Ymd", $row['postDate'])); $leftDay = floor((time() - $timeFixStr) / 86400); if ($leftDay >= 30) { $propertyList['oldList'][] = $list; } else { $propertyList['newList'][] = $list; } } } $result['data'] = $propertyList; return $result; }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; //检查经纪人是否存在 $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_Broker_NotFound('BrokerId: ' . $brokerId); } // 判断城市是否开通竞价业务 $cityId = $brokerInfo->cityId; if (!Bll_City::isBidCity($cityId)) { throw new Exception_City_NotBidCity('CityId: ' . $cityId); } //从 竞价计划表 找出该经纪人的所有计划 1:推广中 11: 排队中 2:删除 $bidPlans = Model_Plan_EsfAjkPropSpread::getPlanByBroker($brokerId, Model_Plan_EsfAjkPropSpread::DEFAULTVERSION); $data = array('OnlinePropertyList' => array(), 'QueuedPropertyList' => array(), 'OfflinePropertyList' => array()); if (empty($bidPlans)) { return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data); } $keyedPlans = array(); foreach ($bidPlans as $plan) { $keyedPlans[$plan->propId] = $plan; //key:propId 保存时间 状态 } //房源信息 $propIds = array_keys($keyedPlans); $props = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $brokerInfo->cityId); //批量获取竞价总点击 $bidClickInfo = Model_plan_HpProStatsDay::getPropClicks($propIds, $brokerInfo->cityId); //批量获取图片 $propDefImages = Model_House_AjkPropertyData::getDafImages($propIds); //拼接房源列表中房源数据 $propertyList = array(); foreach ($props as $prop) { $row = array(); $row['propId'] = $prop->proId; $row['title'] = $prop->proName; $row['commId'] = $prop->commId; $row['commName'] = $prop->commName; $row['roomNum'] = $prop->roomNum; $row['hallNum'] = $prop->hallNum; $row['area'] = round($prop->areaNum); $row['toiletNum'] = $prop->toiletNum; $row['price'] = intval($prop->proPrice); $row['priceUnit'] = '万'; $row['isVisible'] = $prop->isHighQulity; $row['isBid'] = 1; $row['isChoice'] = 0; $row['isMoreImg'] = $prop->isHighQulity; $row['isPhonePub'] = $prop->uriCode == 'mobile.asyn' || $prop->uriCode == 'mobile-ajk-broker.asyn' ? 1 : 0; $row['isVisible'] = $prop->isVisible; $row['createTime'] = $keyedPlans[$prop->proId]->createtime; $row['imgUrl'] = $propDefImages[$prop->proId]; if ($prop->commitionType > 1) { $row['isEntrust'] = 1; } else { $row['isEntrust'] = 0; } $row['totalClicks'] = $bidClickInfo[$prop->proId]['totalClicks']; //房源竞价总点击 $propertyList[] = $row; } // 排序 usort($propertyList, function ($a, $b) { if ($a['createTime'] == $b['createTime']) { return 0; } return $a['createTime'] > $b['createTime'] ? -1 : 1; }); // 分组 $onlinePropertyList = array(); //推广中列表 $waitPropertyList = array(); //排队中列表 $offlinePropertyList = array(); //推广结束列表 foreach ($propertyList as $val) { switch ($keyedPlans[$val['propId']]->status) { case '1': $onlinePropertyList[] = $val; break; case '11': $waitPropertyList[] = $val; break; default: $val['isBid'] = 0; $offlinePropertyList[] = $val; } } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('OnlinePropertyList' => $onlinePropertyList, 'QueuedPropertyList' => $waitPropertyList, 'OfflinePropertyList' => $offlinePropertyList)); }
public function handle_request_internal() { $brokerId = $this->_params['brokerId']; $propId = $this->_params['propId']; //检查经纪人是否存在 $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_Broker_NotFound('BrokerId: ' . $brokerId); } // 判断城市是否开通竞价业务 $cityId = $brokerInfo->cityId; if (!Bll_City::isBidCity($cityId)) { throw new Exception_City_NotBidCity('CityId: ' . $cityId); } //房子的竞价计划 $bidPlan = Model_Plan_EsfAjkPropSpread::getBidPlanInfoByHouseid($propId); if (empty($bidPlan)) { //房源信息 $propInfo = Bll_House_EsfHouse::getHouseBaseInfo($propId, $brokerInfo->cityId); if (!$propInfo[0]->isHighQulity) { throw new Exception_Property_NotMultiImages("Anjuke propId: {$propId}"); } throw new Exception_BidPlan_NotFound('PropId: ' . $propId); } //房源总点击 $bidClickInfo = Model_Plan_HpProStatsDay::getPropClicks($propId, $brokerInfo->cityId); $data = array(); $data['totalClicks'] = $bidClickInfo[$propId]['totalClicks']; //房源竞价总点击 $data['todayClicks'] = Model_plan_HpProStatsDay::getPropClickByDate($propId, $cityId, date('Ymd')); //今日点击 $data['planId'] = $bidPlan->id; $priceInfo = Model_House_EsfPrice::get_price($cityId, $bidPlan->propriceint); $data['minClickPrice'] = $priceInfo['vPrice']; //最小出价 $data['minClickPriceUnit'] = '元'; //最小出价 //推广中 排队中 if ($bidPlan->status == Model_Plan_EsfAjkPropSpread::ONLINE || $bidPlan->status == Model_Plan_EsfAjkPropSpread::ONQUEUE) { $data['planStatus'] = 1; // 推广中 or 排队中 $data['budget'] = $bidPlan->budget / 100; //预算 $data['budgetUnit'] = '元'; $consume = Model_plan_HpProStatsDay::getPlanAmounts($bidPlan->id, $cityId); $data['budgetRemain'] = ($bidPlan->budget - $consume) / 100; $data['budgetRemainUnit'] = '元'; $data['clickPrice'] = $bidPlan->offer / 100; //出价 $data['clickPriceUnit'] = '元'; $data['rankMsg'] = '排队中'; if ($bidPlan->status == Model_Plan_EsfAjkPropSpread::ONLINE) { //排名 $data['rank'] = $this->getPpcSaleRankBll($propId, $bidPlan->commId, $bidPlan->smallprice, $bidPlan->bigprice, $bidPlan->commsHpratioA, 3); $data['rankMsg'] = '推广中'; } } else { $data['planStatus'] = 2; //已暂停 $data['budget'] = 0; $data['budgetUnit'] = '元'; $data['budgetRemain'] = 0; $data['budgetRemainUnit'] = '元'; $data['clickPrice'] = 0; $data['clickPriceUnit'] = '元'; $data['rankMsg'] = '已暂停'; } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data); }
public function handle_request_internal() { $brokerIds = explode(',', $this->_params['brokerIds']); $cityId = $this->_params['cityId']; $sinceId = isset($this->_params['sinceId']) ? intval($this->_params['sinceId']) : 0; //从$sinceId 行开始读 $per = isset($this->_params['per']) ? $this->_params['per'] : 10; //每页示的条数 //二手房 房源表查找房源信息 找出所有的 propIds $isComboCity = Bll_City::isComboCity($cityId); $propIds = array(); if ($isComboCity) { //如果是套餐城市 套餐房源表中 批量获取经纪人在线房源 $comboSpreadHouseList = Bll_Broker_Combo_ManageAjk::getComboSpreadHouseList($brokerIds, $cityId); $propIds = array_keys($comboSpreadHouseList); $status = 2; //2 套餐 1 定价 } else { //如果是定价城市 获取经纪人定价计划--获取有效计划房源关系 $fixSpreadPlanList = Bll_Plan_Fix_AjkPlan::getBrokerPlanList($brokerIds); //获取经纪人有效定价计划 计划表 $fixSpreadPlanIds = array_keys($fixSpreadPlanList); //获取有效计划房源关系 $relations = Bll_Plan_Fix_AjkPlan::getPropFixedPlanRelation($brokerIds, $cityId, $fixSpreadPlanIds); foreach ($relations as $relation) { $propIds[] = $relation['propId']; } $status = 1; } //获取房源信息 分页 $propsInfos = Bll_House_EsfHouse::getHouseBaseInfo($propIds, $cityId, array(), $per + 1, $sinceId); //板块信息 $blockCode = array(); foreach ($propsInfos as $propsInfoVal) { $blockCode[] = substr($propsInfoVal['areaCode'], 8, 4); } $blockInfos = Bll_Community_CommunityGardener::getAreaBlock($blockCode); $hasNextPage = 0; //是否有下一页 $brokerProps = array(); if (!empty($propsInfos)) { $hasNextPage = count($propsInfos) > $per ? 1 : 0; } if ($hasNextPage) { array_pop($propsInfos); $sinceId += $per; } else { $sinceId = 0; } foreach ($propsInfos as $propsInfo) { $row = array(); $row['brokerId'] = $propsInfo['brokerId']; $row['propId'] = $propsInfo['proId']; $row['cityId'] = $propsInfo['cityId']; $row['title'] = $propsInfo['proName']; $row['commId'] = $propsInfo['commId']; $row['commName'] = $propsInfo['commName']; $row['areaCode'] = $propsInfo['areaCode']; $row['blockName'] = $blockInfos[$row['areaCode']]; $row['createTime'] = date("Y-m-d H:i:s", $propsInfo['postDate']); $row['room'] = $propsInfo['roomNum']; $row['hall'] = $propsInfo['hallNum']; $row['toilet'] = $propsInfo['toiletNum']; $row['area'] = $propsInfo['areaNum']; $row['areaUnit'] = '平米'; $row['price'] = intval($propsInfo['proPrice']); $row['priceUnit'] = '万'; //获取房源图片 $houseImageInfo = Bll_Ppc_ServiceAPI::getHouseImageInfo($propsInfo['proId']); $houseImageBaseInfos = $houseImageInfo['imageBaseInfo']; $houseImageUrls = array(); if ($houseImageBaseInfos) { foreach ($houseImageBaseInfos as $imageInfo) { $houseImageUrls[] = Util_Image::getInstance()->getResizeURL($imageInfo['FILENAME'], $imageInfo['HOST_ID'], 420, 315); } } $row['imageUrls'] = $houseImageUrls; $row['status'] = $status; $brokerProps[] = $row; } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('brokerProps' => $brokerProps, 'hasNextPage' => $hasNextPage, 'sinceId' => $sinceId)); }