Пример #1
0
 private function process_post()
 {
     // 接收参数
     $action = $this->request->get_parameter('action') ? $this->request->get_parameter('action') : 'createPage';
     $dir = $this->request->get_parameter('dir') ? trim($this->request->get_parameter('dir'), '/') : '';
     $headerType = $this->request->get_parameter('headerType') ? $this->request->get_parameter('headerType') : 'normal';
     $fileName = $this->request->get_parameter('fileName') ? $this->request->get_parameter('fileName') : 'new';
     // 首字母大写
     $fileName = ucfirst(trim($fileName, '/'));
     $title = $this->request->get_parameter('title') ? $this->request->get_parameter('title') : '安居客';
     $desc = $this->request->get_parameter('desc') ? $this->request->get_parameter('desc') : '';
     $scriptUrl = $this->request->get_parameter('scriptUrl') ? $this->request->get_parameter('scriptUrl') : '';
     if (!in_array($action, $this->actionConfig)) {
         return Util_GlobalFunc::buildReturn(0, 'invalid param: action');
     }
     switch ($action) {
         case 'createPage':
             $result = Bll_Tools_AutoCreate::createPage($dir, $fileName, $title, $desc, $headerType, $scriptUrl);
             break;
         default:
             $result = Bll_Tools_AutoCreate::createPage($dir, $fileName, $title, $desc, $headerType, $scriptUrl);
             break;
     }
     return $result;
 }
Пример #2
0
 /**
  * 由于套餐变更 下掉多余房子
  * @param $brokerId
  * @param $shouldNum
  * @return array
  */
 public static function deleteExtraHouse($brokerId, $shouldNum)
 {
     $allReturn = array();
     // 转好租brokerid
     if (!($hzBrokerId = Model_Broker_HzMapping::get_hz_broker_id($brokerId))) {
         return Util_GlobalFunc::buildReturn(0, "租房-该经纪人:{$brokerId}获取不到租房经纪人id");
     }
     // 获取有效推广关系
     if (!($plannings = Model_Plan_HzPlanning::getPlanningLists(array('user_id' => $hzBrokerId, 'plan_type' => Const_HzPlan::SPREAD_TYPE, 'is_valid' => Const_HzPlan::SPREAD), 1000, array('proid', 'asc')))) {
         return Util_GlobalFunc::buildReturn(0, "租房-该经纪人:{$hzBrokerId}没有有效定价推广关系");
     }
     $num = count($plannings);
     //推广房源数
     echo '正在处理租房 hzBrokerId:' . $hzBrokerId . ',总推广房源数' . $num . ',api中允许推广数量' . $shouldNum . PHP_EOL;
     if ($num > $shouldNum) {
         // 应该下掉多余房子
         $offNum = $num - $shouldNum;
         foreach ($plannings as $key => $planning) {
             if ($offNum < $key + 1) {
                 break;
             }
             // 下房子动作
             $result = Bll_HzFixPlan::prop_out_fix($planning['user_id'], $planning['proid'], $planning['plan_id']);
             $allReturn[] = $result['msg'];
         }
     }
     return Util_GlobalFunc::buildReturn(1, $allReturn);
 }
Пример #3
0
 /**
  * 获取上下架系统运行情况
  */
 private function getUpDownRuntimeInfo()
 {
     // db 还没处理的队列数
     $noDBDealTasksNum = $this->getDBNoDealTasksNum();
     // redis 还没处理的队列数
     $noRedisDealTasksNum = $this->getRedisNoDealTaskdNum();
     return Util_GlobalFunc::buildReturn(1, array('noDBDealTasksNum' => '房源上下架DB队列积压数量:' . $noDBDealTasksNum, 'noRedisDealTasksNum' => '房源上下架Redis队列积压数量:' . $noRedisDealTasksNum));
 }
Пример #4
0
 /**
  * 房源取消套餐推广
  * @return array
  */
 public function do_removePropFromCombo()
 {
     $this->params['proIds'] = is_array($this->params['proIds']) ? $this->params['proIds'] : explode(',', $this->params['proIds']);
     if (!Bll_Combo_HouseRelation::houseStopComboSpread($this->brokerId, $this->cityId, $this->params['proIds'], Bll_Combo_HouseRelation::SITE_TYPE_HZ)) {
         return Util_GlobalFunc::buildReturn(0, '房源取消套餐推广失败');
     }
     return Util_GlobalFunc::buildReturn(1, '房源取消套餐推广成功');
 }
Пример #5
0
 /**
  * 由于套餐变更 下掉多余房子
  * @param $brokerId
  * @param $shouldNum
  * @return bool
  */
 public static function deleteExtraHouse($brokerId, $shouldNum)
 {
     $allReturn = array();
     // 获取有效计划
     if (!($plans = Dao_Broker_AjkPlan::get_broker_plans($brokerId))) {
         return Util_GlobalFunc::buildReturn(0, "二手房-该经纪人:{$brokerId}没有有效定价");
     }
     $planIds = array();
     foreach ($plans as $plan) {
         $planIds[] = $plan['id'];
     }
     $cityId = $plans[0]['cityId'];
     // 获取有效计划下有效关系
     if (!($plannings = Bll_Fixedspread_AjkFixedSpread::getRelationListByPlanId($planIds, $cityId))) {
         return Util_GlobalFunc::buildReturn(0, "二手房-该经纪人:{$brokerId}没有有效推广关系");
     }
     $num = count($plannings);
     //推广房源数
     $onlineProIds = array();
     foreach ($plannings as $planning) {
         $onlineProIds[$planning->proId] = $planning;
     }
     if ($num > $shouldNum) {
         // 应该下掉多余房子
         $offNum = $num - $shouldNum;
         $props = Bll_House_Property::getPropertyByBrokerId($brokerId, $cityId);
         if (!$props) {
             return Util_GlobalFunc::buildReturn(0, "二手房-该经纪人:{$brokerId}没有房源信息");
         }
         $offProIds = array();
         foreach ($props as $prop) {
             if (isset($onlineProIds[$prop['ProId']])) {
                 $offProIds[] = $prop['ProId'];
                 if (count($offProIds) == $offNum) {
                     break;
                 }
             }
         }
         // 开始下房子操作
         if (count($offProIds) > 0) {
             foreach ($offProIds as $offProId) {
                 $item = $onlineProIds[$offProId];
                 $result = Bll_Fixedspread_AjkFixedSpread::delPlanPro($item->planId, $item->proId, $cityId);
                 // 出错了
                 if (is_string($result)) {
                     // $allReturn
                     $allReturn[] = '[' . date('Y-m-d H:i:s') . '] planId: ' . $item->planId . ', proId: ' . $item->proId . ', result: ' . $result;
                 } else {
                     $allReturn[] = '[' . date('Y-m-d H:i:s') . '] planId: ' . $item->planId . ', proId: ' . $item->proId . ', result: ok';
                 }
             }
         }
         return Util_GlobalFunc::buildReturn(1, $allReturn);
     }
 }
Пример #6
0
 /**
  * 好租获取小区信息
  * @param $commuId
  * @param int $cls
  * @return array
  */
 public static function getCommInfo($commuId, $cls = 111)
 {
     $response = Bll_Service_Comm::hzGetCommInfo(array('commuId' => $commuId, 'rsl' => $cls));
     if ($response->isFailed()) {
         return Util_GlobalFunc::buildReturn(0, '好租获取小区信息失败,请求内部API失败.');
     }
     if ($response['status'] == 'error') {
         return Util_GlobalFunc::buildReturn(0, '好租获取小区信息失败,' . $response['info']);
     }
     return Util_GlobalFunc::buildReturn(1, array('commBaseInfo' => $response['commBaseInfo'], 'commExtInfo' => $response['commExtInfo']));
 }
Пример #7
0
 /**
  * 获取账户信息
  * @param $ajkBrokerId
  * @param string $field
  *      可能值 * => all
  *            balance=> 余额,
  *            frozen=> 冻结总额,
  *            jp|hz|ajk => 对应分站的余额 冻结 金额信息
  * @return array
  */
 public static function getAccountInfo($ajkBrokerId, $field = '*')
 {
     $userId = Bll_Broker_MainBusiness::getDataByEsfId($ajkBrokerId)->memberId;
     $response = Bll_Service_Payment::balance(Const_PaymentApp::AJK_DEFAULT, array('userId' => $userId));
     if ($response->isFailed()) {
         return Util_GlobalFunc::buildReturn(0, '获取账户余额失败,请求内部API失败.');
     }
     if ($response['status'] == 'error') {
         return Util_GlobalFunc::buildReturn(0, '获取账户余额失败' . $response['info']);
     }
     $data = $field == '*' ? $response['data'] : $response['data'][$field];
     return Util_GlobalFunc::buildReturn(1, $data);
 }
Пример #8
0
 public function DownHouse($brokerId = 0, $promitionHouseNum = 0)
 {
     $brokerId = intval($brokerId);
     $promitionHouseNum = intval($promitionHouseNum);
     if ($brokerId == 0 || $promitionHouseNum == 0) {
         return false;
     }
     //将二手房经纪人ID转成商业地产ID
     $jpBrokerInfoObj = Model_Broker_JpBroker::getJpBrokerInfoByAjkBrokerId($brokerId);
     if (!$jpBrokerInfoObj || $jpBrokerInfoObj->id == 0) {
         return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}没有找到");
     }
     //获取这个经纪人的有效计划
     $OnlinePlan = Model_Plan_Jp::getOnlinePlanByMemberId($jpBrokerInfoObj->id);
     if (!$OnlinePlan) {
         return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}没有有效计划");
     }
     $onlineplan = array();
     foreach ($OnlinePlan as $plan) {
         $onlineplan[] = $plan->id;
         $isBidVersion[$plan->id]['bidVersion'] = $plan->bidVersion;
     }
     //获取这些有效计划下的房子
     $houseIdx = Model_House_JpHouseIdx::getHouseInfoByFixPlanId($onlineplan);
     if (!$houseIdx) {
         return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}有效计划下的房子");
     }
     $housecount = count($houseIdx);
     echo '正在处理商业地产' . $brokerId . ',总推广房源数' . $housecount . ',api中允许推广数量' . $promitionHouseNum;
     $allReturn = array();
     //和套餐的推广房源做比较,如果当前在线推广的房子大于套餐推广房子,则下房源将较早推广的房子下架
     if ($housecount > $promitionHouseNum) {
         $offNum = $housecount - $promitionHouseNum;
         for ($i = $offNum; $i >= 1; $i--) {
             if (empty($houseIdx[$i])) {
                 continue;
             }
             if ($houseIdx[$i]->bidSpreadId) {
                 $resultBid = Bll_House_JpHouseInfo::removeBidHouseFromSpread($houseIdx[$i], $jpBrokerInfoObj->id, 1, false);
                 if (!$resultBid['success']) {
                     $allReturn[] = $resultBid['data'];
                 }
             }
             $resultFix = Bll_House_JpHouseInfo::removeFixHouseFromSpread($houseIdx[$i], $jpBrokerInfoObj->id);
             if (!$resultFix['success']) {
                 $allReturn[] = $resultFix['data'];
             }
         }
     }
     return Util_GlobalFunc::buildReturn(1, $allReturn);
 }
Пример #9
0
 /**
  * 处理经纪人下房子任务
  * @param $brokerId
  * @return bool
  */
 public function dealTask($brokerId)
 {
     // 调api获取套餐推广房源数限制
     // TODO 会提供一个接口返回三网的数据来替代三次调用
     if (!($ajkShouldNum = Bll_Broker_BrokerLimit::getPpcBrokerPromotionLimit($brokerId, Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_ESF_SITE))) {
         return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}调用api接口获取封二手房顶数据失败");
     }
     if (!($hzShouldNum = Bll_Broker_BrokerLimit::getPpcBrokerPromotionLimit($brokerId, Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_ZF_SITE))) {
         return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}调用api接口获取封好租顶数据失败");
     }
     if (!($jpShouldNum = Bll_Broker_BrokerLimit::getPpcBrokerPromotionLimit($brokerId, Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_JP_SITE))) {
         return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}调用api接口获取封金铺顶数据失败");
     }
     $promotion3Web = array(Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_ESF_SITE => $ajkShouldNum, Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_ZF_SITE => $hzShouldNum, Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_JP_SITE => $jpShouldNum);
     $allReturn = array();
     // 分别掉用对用网站处理逻辑
     foreach ($promotion3Web as $siteType => $shouldNum) {
         switch ($siteType) {
             case Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_ESF_SITE:
                 // 二手房
                 $result = BLL_Package_AjkPackageSwitch::deleteExtraHouse($brokerId, $shouldNum);
                 $allReturn['msg'][] = $result['msg'];
                 break;
             case Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_ZF_SITE:
                 // 租房
                 $result = BLL_Package_HzPackageSwitch::deleteExtraHouse($brokerId, $shouldNum);
                 $allReturn['msg'][] = $result['msg'];
                 break;
             case Bll_Broker_BrokerLimit::PPC_BROKER_LIMIT_JP_SITE:
                 // 金浦
                 $result = BLL_Package_JpPackageSwitch::getInstance()->DownHouse($brokerId, $shouldNum);
                 $allReturn['msg'][] = $result['msg'];
                 break;
         }
     }
     return $allReturn;
 }
Пример #10
0
 /**
  * 获取计划的消费、点击信息
  * @param $planIds
  * @param $cityId
  * @param $ajkBrokerId
  * @return array
  */
 public static function getPlanConsumClickInfo($planIds, $cityId, $ajkBrokerId)
 {
     if (!is_array($planIds)) {
         $planIds = explode(',', $planIds);
     }
     // 获取计划的消费 点击信息
     $responseConsumClickInfos = Bll_Service_Plan::hzGetPlanConsumClickInfo(array('brokerId' => $ajkBrokerId, 'cityId' => $cityId, 'planIds' => implode(',', $planIds)));
     if ($responseConsumClickInfos->isFailed()) {
         return Util_GlobalFunc::buildReturn(0, '好租获取消费 点击信息失败,请求内部API失败.');
     }
     if ($responseConsumClickInfos['status'] == 'error') {
         return Util_GlobalFunc::buildReturn(0, '好租获取消费 点击信息失败,' . $responseConsumClickInfos['info']);
     }
     $result = array();
     foreach ($planIds as $planId) {
         $result[$planId]['totalClick'] = 0;
         $result[$planId]['totalCost'] = 0;
         $result[$planId]['totalUnit'] = 0;
         if ($responseConsumClickInfos['planCount'] > 0) {
             foreach ($responseConsumClickInfos['plan'] as $item) {
                 if ($item['planId'] == $planId) {
                     $result[$planId]['totalClick'] = $item['totalClick'];
                     $result[$planId]['totalCost'] = $item['totalCost'];
                     $result[$planId]['totalUnit'] = $item['totalUnit'];
                     break;
                 }
             }
         }
     }
     return Util_GlobalFunc::buildReturn(1, $result);
 }
Пример #11
0
 /**
  * 获取房源历史总点击量(可批量)
  * 注:对查询跨度对限制,限制只能查询一个月内的
  * @param $proIds
  * @param $cityId
  * @param $ajkBrokerId
  * @param $field (返回过滤字段, 可能的值amount|cnum|freeCnum|icnum|realAmount)
  * @return array
  */
 public static function getPropTotalClicks($proIds, $cityId, $ajkBrokerId, $field = '*')
 {
     if (!is_array($proIds)) {
         $proIds = explode(',', $proIds);
     }
     $key = sprintf('%s_%s_%s_%d_%d_%s123', __CLASS__, __METHOD__, implode(',', $proIds), $cityId, $ajkBrokerId, $field);
     $cacheObj = APF_Cache_Factory::get_instance()->get_memcache();
     $result = $cacheObj->get($key);
     if ($result) {
         return Util_GlobalFunc::buildReturn(1, $result);
     }
     $response = Bll_Service_House::hzGetPropTotalClicks(array('brokerId' => $ajkBrokerId, 'cityId' => $cityId, 'proIds' => implode(',', $proIds), 'startDate' => date('Ymd', strtotime('-90 days')), 'endDate' => date('Ymd')));
     if ($response->isFailed()) {
         return Util_GlobalFunc::buildReturn(0, '好租获取房源历史总点击量失败,请求内部API失败.');
     }
     if ($response['status'] == 'error') {
         return Util_GlobalFunc::buildReturn(0, '好租获取房源历史总点击量失败,' . $response['info']);
     }
     $result = array();
     foreach ($proIds as $proId) {
         if ($response['count'] == 0) {
             $result[$proId] = $field == '*' ? array() : 0;
         } else {
             foreach ($response['property'] as $item) {
                 if ($item['proId'] == $proId) {
                     $result[$proId] = $field == '*' ? $item : $item[$field];
                     break;
                 }
             }
         }
     }
     $cacheObj->set($key, $result, 0, self::EXPIRE_TIME);
     return Util_GlobalFunc::buildReturn(1, $result);
 }
Пример #12
0
 public function buildSuccessReturnResult()
 {
     $this->allReturn[] = 'success';
     return Util_GlobalFunc::buildReturn(1, $this->allReturn);
 }
 /**
  * @param $proId
  * @param $blockId
  * @param $areaId
  * @param $cityId
  * @return int
  */
 private function changePropBlock($proId, $blockId, $areaId, $cityId, $ajk_brokerid)
 {
     //获取房源信息
     $propInfo = Bll_House_HzHouse::getPropInfo($proId, $cityId);
     //重组房源信息,同时编辑区域板块id
     //$rebuildPropInfo = $this->rebuildPropInfo($propInfo, $blockId, $areaId, $ajk_brokerid);
     $commName = $propInfo['msg']['commname'];
     $commAddress = $propInfo['msg']['address'];
     $rebuildPropInfo = array('proid' => $proId, 'blockId' => $blockId, 'areaId' => $areaId, 'isCommUpdate' => 1, 'commName' => $commName, 'commAddress' => $commAddress);
     $response = Bll_Service_House::HzUpdateCommunitysMessageInHouse($rebuildPropInfo);
     if ($response->isFailed()) {
         return Util_GlobalFunc::buildReturn(0, '好租更新房源失败,请求内部API失败.');
     }
     if ($response['status'] == 'error') {
         return Util_GlobalFunc::buildReturn(0, '好租更新失败,' . $response['info']);
     }
     return Util_GlobalFunc::buildReturn(1, 'success');
     //        //javaApi update
     //        $host = APF::get_instance()->get_config("JavaAPIHost");
     //        $url = $host . "service-combo/rest/rent/properties/update?json";
     //        $curl = new Util_Http_Curl();
     //        $re = $curl->setDefaults()->setConnectTimeOut(30)->post($url, $rebuildPropInfo);
     //        $re = json_decode($re, true);
     //        return $re;
 }
Пример #14
0
 /**
  * 设置默认房源图片
  * @param $ajkBrokerId
  * @param $aid
  * @param int $tradeType
  * @return array
  */
 public static function setDefaultImage($ajkBrokerId, $aid, $tradeType = 2)
 {
     $response = Bll_Service_Image::hzSetDefaultImage(array('brokerid' => $ajkBrokerId, 'aid' => $aid, 'tradeType' => $tradeType));
     if ($response->isFailed()) {
         return Util_GlobalFunc::buildReturn(0, '设置默认房源图片失败,请求内部API失败.');
     }
     if ($response['status'] == 'error') {
         return Util_GlobalFunc::buildReturn(0, '设置默认房源图片失败,' . $response['info']);
     }
     return Util_GlobalFunc::buildReturn(1, 'success');
 }
Пример #15
0
 /**
  * @param $brokerId
  * @param $cityId
  * @param string $siteType
  * @return array
  * 房源发布验证是否能够套餐推广
  */
 public static function housePublishComboCheck($brokerId, $cityId, $siteType = self::SITE_TYPE_AJK)
 {
     $comboList = Bll_Combo_Broker_BrokerComboInfo::getComboListBySite($brokerId, $siteType);
     if (empty($comboList)) {
         return Util_GlobalFunc::buildReturn(-1, '您还没有购买套餐,只能保存到未推广房源');
     }
     $currentCombo = array();
     $nextCombo = array();
     $currentTime = time();
     $index = Bll_Combo_Broker_BrokerComboInfo::getComboIndexBySiteType($siteType);
     foreach ($comboList as $combo) {
         if (strtotime($combo['endTime']) > $currentTime && strtotime($combo['startTime']) < $currentTime) {
             $currentCombo = $combo;
         } else {
             $nextCombo = $combo;
         }
     }
     $currentComboHouseCount = $currentCombo[$index];
     if (Bll_Combo_Broker_BrokerComboInfo::isOpenUp($currentCombo)) {
         $currentComboHouseCount = $currentCombo['rentPropNum'] + $currentCombo['salePropNum'];
     }
     if (empty($currentCombo) && empty($nextCombo)) {
         return Util_GlobalFunc::buildReturn(-2, '您还没有购买套餐,只能保存到未推广房源');
     }
     if (empty($currentCombo) && !empty($nextCombo)) {
         return Util_GlobalFunc::buildReturn(-3, '您的套餐未生效,只能保存到未推广房源');
     }
     if (Bll_Combo_Broker_BrokerComboInfo::isOpenUp($currentCombo) && ($siteType == self::SITE_TYPE_HZ || $siteType == self::SITE_TYPE_AJK)) {
         $currentSpreadHouseCount = static::getHouseCount($brokerId, $siteType, true);
     } else {
         $currentSpreadHouseCount = static::getHouseCountEx($brokerId, $cityId, $siteType);
     }
     if ($currentSpreadHouseCount >= $currentComboHouseCount) {
         return Util_GlobalFunc::buildReturn(-4, '推广房源已满,只能保存到未推广房源');
     }
     return Util_GlobalFunc::buildReturn(1, '');
 }
Пример #16
0
 /**
  * 构造发房数据
  * @return string
  * @throws Exception
  */
 public static function buildPropPostData($info)
 {
     if (!isset($info["ajkBrokerId"]) || !isset($info["cityId"])) {
         return Util_GlobalFunc::buildReturn(0, '缺少参数: ajkBrokerId | cityId');
     }
     // 装修 例子:2|普通装修
     $decorationArr = explode('|', $info["decoration"]);
     $params["broker_id"] = $info["ajkBrokerId"];
     //经纪人ID
     $params["comm_id"] = (int) $info["commonid"];
     //小区ID
     $params["trade_type"] = 2;
     //交易类型-租房
     $params["area"] = $info["housearea"];
     //产证面积(输入)
     $params["rooms"] = $info["room"] . ',' . $info["hall"] . ',' . $info['toliet'];
     // 房间数,客厅数,卫生间
     $params["price"] = $info["rentprice"];
     //价格(输入)
     $params["floor"] = $info["floor"] . ',' . $info['floorall'];
     //楼层(选择)
     $params["fitment"] = Bll_House_HzHouse::getFitmentMappingId($decorationArr, $info["cityId"]);
     //装修(默认+选择)
     $params['style'] = self::buildHouseType($info['housetype']);
     // 需要映射
     $params["exposure"] = $info["renttype"] == 1 ? $info["toward"] : $info["roomtoward"];
     //朝向(默认+选择)
     $params["title"] = $info["housetitle"];
     //房源标题(输入)
     $params["description"] = $info["ProDesc"];
     //房源描述(输入)
     $params["equipment"] = self::buildHouseConfig(isset($info["houseconfig"]) ? $info["houseconfig"] : array());
     $params["rentType"] = $info["renttype"];
     //租房类型(1.整租  2.合租)
     $params["shareType"] = isset($info["shareType"]) ? $info["shareType"] : 1;
     //合租类型1单间 2隔断间 3床位  新的发房页只有单间
     $params["shareSex"] = $info["rentsex"] ? $info["rentsex"] : 0;
     //0男女不限   1限男生  2限女生
     $params["rent_deposit_and_cycle"] = $info["paytype"] ? $info["paytype"] : '0|0';
     //付款方式。仅对出租房(trade_type==2)。目前仅支持押几付几的形式,例如'3|1'表示押金为一个月的price,一次付款3个月price。(0|0)面议、(3|1)付3押1、(1|1)付1押1、(2|1)付2押1、(1|2)付1押2、(12|0)年付不押、(6|0)半年付不押、(12|1)年付押1、(6|1)半年付押1 ,其中年付押1、半年付押1只适用于大连、西安、成都经纪人
     $params['from'] = 'my.anjuke.com';
     // 如果小区id为0
     if (!$params["comm_id"]) {
         $params['commName'] = $info['commname'];
         $params['commAddress'] = $info['comm_address'];
         $params['areaId'] = $info['areaid'];
         $params['blockId'] = $info['blockid'];
     }
     return Util_GlobalFunc::buildReturn(1, $params);
     //  下面这段逻辑的字段api不需要
     /*
     // 房屋类型(读取) 读取所选择小区的“物业类型”
     // 建造年代(读取) 读取所选择小区的“竣工时间”
     $comminfo = Bll_Community_HzComm::getCommInfo($params["commId"]);
     
     if ($comminfo['status']) {
         $usetype = Dao_Broker_AjkProp::get_prop_usetype($info["cityId"],intval($comminfo['msg']['commBaseInfo']['USETYPE']));
         $usetype_name_id = array('公寓'=>1,'别墅'=>4,'新里洋房'=>3,'其它'=>5,'老公房'=>2,'普通住宅'=>8,'四合院'=>7,'酒店公寓'=>6);
         $change_style   = array(1=>1, 4=>2, 3=>3, 5=>4, 2=>5, 6=>6, 7=>7, 8=>8);
         $usetype_id      = $change_style[$usetype_name_id[$usetype['TYPENAME']]];
         $params["style"] = $usetype_id ? $usetype_id : intval($params["style"]); //物业类型
         if (2 == $params["style"])//别墅强制转换楼层
         {
             $pos = strpos($params["floor"],',');
             $params["floor"] = '0' . substr($params["floor"],$pos);
         }
         $params["year"] = $comminfo['msg']['commExtInfo']['SENDDATE'] ? date("Y", strtotime($comminfo['msg']['commExtInfo']['SENDDATE'])) : date("Y"); //竣工日期
     
         if ($params["year"] > date('Y'))
         {
             $params["year"] = date('Y');
         }
     
         //删除该经纪人房源缓存
         $key = self::MEMCACHE_KEY_ZUFANG_CHAT_GETCOMMPROPS . '_' . $info["brokerId"] . '_' . $info["commId"] . '_' . date("Ymd");
         $memcache = APF_Cache_Factory::get_instance()->get_memcache();
         $result = $memcache->delete($key);
     
     } else {
         Util_GlobalFunc::buildReturn(0, $comminfo['msg']);
     }
     $params["style"] = $params["style"] ? $params["style"] : 1;//房屋类型 (//1公寓;2老公房;3新里洋房;4别墅;5其它 ;6洒店公寓;7四合院; 8普通住宅)
     return Util_GlobalFunc::buildReturn(1, $params);
     */
 }
Пример #17
0
 public static function JpComboHouseClick($houseIds, $type)
 {
     $return = array();
     if (!is_array($houseIds)) {
         $houseIds = array($houseIds);
     }
     $clicksP = Bll_Ppc_NewPackageStatsBrokerDay::getHouseComboClickInfo($houseIds, date('Ymd'), Model_Ppc_NewPackageStatsHouseDay::SITE_TYPE_JP);
     //先取今天点击
     $clicks = array();
     foreach ($clicksP as $clickP) {
         $clicks[$clickP['propId']] = intval($clickP['cnum']);
     }
     if ($type == 'today') {
         foreach ($houseIds as $houseId) {
             $return[$houseId] = intval($clicks[$houseId]);
         }
     } elseif ($type == 'all') {
         $historyClick = self::getPropHistoryComboClick($houseIds);
         foreach ($houseIds as $houseId) {
             $return[$houseId] = intval($clicks[$houseId]) + intval($historyClick[$houseId]);
         }
     }
     return Util_GlobalFunc::buildReturn(1, $return);
 }
Пример #18
0
 /**
  * @param $uri
  * @param $dir
  * @param $fileName
  * @param $title
  * @param string $desc
  * @return array
  */
 private static function createRoute($uri, $dir, $fileName, $title, $desc = '描述')
 {
     $result = array();
     $uri = trim($uri);
     $uri = str_replace('//', '/', $uri);
     $mappings = APF::get_instance()->get_config('mappings', 'route');
     $isFound = false;
     foreach ($mappings as $mappings) {
         foreach ($mappings as $pattern) {
             if (@preg_match("@" . $pattern . "@", $uri, $matches)) {
                 $isFound = true;
             }
         }
     }
     if ($isFound) {
         return Util_GlobalFunc::buildReturn(0, '已经有该router,请换一个url');
     }
     $routeOut = self::getRouteOut($dir, $fileName, $desc, $uri);
     // 写入router文件
     $writeRouteResult = file_put_contents(APP_PATH . 'config/route.php', $routeOut, FILE_APPEND);
     if ($writeRouteResult) {
         $result[] = '生成route文件成功';
     } else {
         return Util_GlobalFunc::buildReturn(0, '生成route文件失败');
     }
     return Util_GlobalFunc::buildReturn(1, $result);
 }
Пример #19
0
 /**
  * @param $request object
  * @param $brokerInfo array
  * @param $type string rent || sale
  * @return array
  */
 public static function getShopBeforePost($request, $brokerInfo, $type)
 {
     $out = $logGiveArr = array();
     $params = $request->get_parameters();
     // manager_id不为空,说明是伪登录
     $out['managerId'] = $request->get_cookie('manager_id');
     // 经纪人信息
     $out['brokerInfo'] = $brokerInfo;
     $cityId = $brokerInfo['CITYID'];
     //金铺城市ID转换
     $jpCityId = $out['brokerInfo']['jpCityId'] = BLL_House_JpHouseManage::getMemberCityId($cityId);
     $out['ajkBrokerId'] = $out['brokerInfo']['BROKERID'];
     $jpMember = Model_Broker_JpBroker::getJpBrokerInfoByAjkBrokerId($out['ajkBrokerId']);
     $out['brokerInfo']['jpMemberId'] = intval($jpMember->id);
     //获取城市配置信息是否是精选推广
     $out['isChoiceCity'] = Bll_City::isChoiceCity($jpCityId, Const_Site::JINPU);
     $out['bidTip'] = $out['isChoiceCity'] ? '精选' : '竞价';
     //是否套餐经纪人
     $out['isCombo'] = $brokerInfo['PAYTYPE'] == 9999 ? 1 : 0;
     //套餐城市是否显示推广按钮,以及提示
     $out['spreadFlagInfo'] = array('spreadFlag' => 1, 'info' => '');
     if ($out['isCombo']) {
         $comboCheck = Bll_Combo_HouseRelation::housePublishComboCheck($out['ajkBrokerId'], $cityId, Bll_Combo_HouseRelation::SITE_TYPE_JP);
         if ($comboCheck['status'] != 1) {
             $out['spreadFlagInfo'] = array('spreadFlag' => 0, 'info' => $comboCheck['msg']);
         }
     }
     // 获取全部图片分类信息(用于编辑时候默认展示分类情况)
     $arrCategory = array();
     $arrAllCates = Model_Image_Category::get_img_cates_by_type('shop');
     $arrCategory['all'] = $arrAllCates;
     $arrCategory['classify'] = array_fill_keys(array_keys($arrAllCates), 0);
     $out['arrCategory'] = $arrCategory;
     // 描述引导
     $out['descGuide'] = self::getShopDescGuideTitle($type);
     //编辑图片,用于展示退回照片模块
     $out['editPic'] = $params['edit_pic'];
     //北上广深 四城市
     $citySpecial = array('13', '14');
     $out['priceType'] = in_array($jpCityId, $citySpecial) ? 1 : 0;
     $out['isPost'] = $request->is_post_method();
     if ($type == 'rent') {
         //交租方式
         $out['rentModeFirst'] = Model_House_JpShopRent::getRentModeFirst();
         $out['rentModeSecond'] = Model_House_JpShopRent::getRentModeSecond();
     }
     //---------是否编辑---------------//
     $shopInfo = array();
     $shopId = 0;
     $propertyId = 0;
     // 初始化参数
     $matches = $request->get_router_matches();
     if (isset($matches[2]) && !empty($matches[2])) {
         $shopId = intval($matches[2]);
         $shopInfo = $type == 'rent' ? Model_House_JpShopRent::getPropInfoById($shopId) : Model_House_JpShopSale::getPropInfoById($shopId);
         $propertyId = $shopInfo['propertyId'];
     }
     $out['isEdit'] = empty($shopInfo) ? 0 : 1;
     //四选一弹层
     $out['bolFlag'] = $out['isEdit'] || !isset($params['from']) ? 0 : 1;
     $out['shopInfo'] = $shopInfo;
     $out['shopId'] = $shopId;
     if (!$out['isCombo']) {
         $planInfo = BLL_House_JpHouseManage::getFixPlanInfo($shopId);
         if ($out['isEdit'] && $planInfo['success'] && $planInfo['data']['status'] == 3) {
             //定价计划状态为3,不可编辑
             return array('status' => 'error', 'errCode' => Const_PublishCode::UNKNOWN_ERROR);
         }
     }
     //新发,需要验证房源发布套数限制
     if (!$out['isEdit']) {
         if (BLL_House_JpHouseManage::houseNumLimit($out['brokerInfo']['jpMemberId'], $out['ajkBrokerId'], true)) {
             //保存漏斗日志
             if ($out['isPost']) {
                 $houseType = Bll_Loudou_Log::jinpuHouseType('shop', $type);
                 $str = '';
                 switch ($params['goto_next_step']) {
                     case 'planCombo':
                     case 'planFix':
                         $str = Bll_Loudou_Log::RESULT_TYPE_FIX_FAILED_OTHERS;
                         break;
                     case 'justSaveHouse':
                         $str = Bll_Loudou_Log::RESULT_TYPE_SAVE_FAILED_HOUSE_MAX_LIMIT;
                         break;
                 }
                 $logGiveArr[] = array('func' => array('Bll_Loudou_log', 'add'), 'params' => array($houseType, $str, Bll_Loudou_Log::SOURCE_TYPE_FORM));
             }
             return array('status' => 'error', 'errCode' => Const_PublishCode::PUBLISH_OUT_OF_LIMIT);
         }
     }
     //经营信息模块的配置信息
     list($out['enumShopType'], $out['enumShopMatching'], $out['enumShopIndustry'], $out['enumShopIndustryLimit'], $out['enumShopPassengerType']) = BLL_House_JpProperty::getShopEnum();
     //页面精品房源url
     $out['exquisiteUrl'] = BLL_Plan_JpPlanUrl::buildHelpUrl('1026');
     //页面经典范例url
     $out['exampleTitleUrl'] = BLL_Plan_JpPlanUrl::buildHelpUrl('1044');
     //页面房源描述下方经典范例url
     $out['exampleDescUrl'] = BLL_Plan_JpPlanUrl::buildHelpUrl('1045');
     //房源发布协议url
     $out['contractUrl'] = BLL_Plan_JpPlanUrl::buildHelpUrl('554');
     //房源PPC价格段信息
     $out['ppcInfo'] = Bll_Plan_JpPlanManage::getInstance()->getPPCPrice($jpCityId, $type == 'rent' ? 3 : 4);
     //城市区域列表,选择区域使用
     $out['districts'] = Model_Jinpu_District::getCityDistricts($jpCityId);
     //经纪人定价推广组信息
     $out['fixPlanInfo'] = $out['isCombo'] ? array() : Bll_Plan_JpPlanManage::getInstance()->getBrokerFixPlans($out['brokerInfo']['jpMemberId']);
     if ($out['isEdit']) {
         //编辑状态下的特殊信息
         //编辑 验证房源是否属于经纪人
         if ($out['brokerInfo']['jpMemberId'] != $out['shopInfo']['memberId']) {
             return array('status' => 'error', 'errCode' => Const_PublishCode::NOT_OWN_HOUSE);
         }
         //房源交租方式(付一押一)
         list($out['rentModelFirst'], $out['rentModelSecond']) = explode(',', $shopInfo['rentMode']);
         //单层 多层 独栋
         $out['floorType'] = 1;
         if ($shopInfo['isFullFloor']) {
             $out['floorType'] = 3;
         } elseif ($shopInfo['upFloor']) {
             $out['floorType'] = 2;
         }
         //房源推广信息,被编辑的房源是否在推广中
         $houseCanSpread = 1;
         if ($out['isCombo']) {
             $houseCombo = Model_Combo_HouseRelation::getOnlineHousebyHouseId($out['ajkBrokerId'], $shopId, $cityId, Model_Combo_HouseRelation::SITE_TYPE_JP);
             if (!empty($houseCombo)) {
                 $houseCanSpread = 0;
             }
         } else {
             $shopIdx = Model_House_JpHouseIdx::data_access()->filter('id', $shopId)->get_row();
             if (!empty($shopIdx['fixSpreadId'])) {
                 $houseCanSpread = 0;
             }
         }
         $out['houseCanSpread'] = $houseCanSpread;
         //图片退回信息
         $out['backRows'] = array();
         if ($shopId && $out['isEdit']) {
             $out['backRows'] = Bll_Image_JpHouseImage::getBackRows($shopId, $type == 'rent' ? 3 : 4);
         }
         //房源描述
         $desc = $type == 'rent' ? Model_Jinpu_ShopRentDesc::getByPk($shopId) : Model_Jinpu_ShopSaleDesc::getByPk($shopId);
         $out['shopDesc'] = $desc['desc'];
         //房源物业信息
         $out['propertyData'] = $propertyData = (array) BLL_House_JpProperty::getProperty($shopInfo['propertyId']);
         if (!$propertyData) {
             return array('status' => 'error', 'errCode' => Const_PublishCode::NOT_OWN_HOUSE);
         }
         if ($propertyData['isRoad'] == 1 && ($shopInfo['districtId'] || !$shopInfo['blockId'])) {
             $out['forceBlockEdit'] = true;
         } elseif ($propertyData['isRoad'] == 0 && (!$propertyData['districtId'] || !$propertyData['blockId'])) {
             $out['forceBlockEdit'] = true;
         }
         if (!$out['forceBlockEdit']) {
             //逻辑好多啊 妹子的
             $districtIdForSearch = !$propertyData['isRoad'] ? $propertyData['districtId'] : $shopInfo['districtId'];
             $blockIdForSearch = !$propertyData['isRoad'] ? $propertyData['blockId'] : $shopInfo['blockId'];
             $districtInfo = Model_Jinpu_District::data_access()->filter('id', $districtIdForSearch)->get_row();
             $districtName = $districtInfo['is_actived'] == 1 ? $districtInfo['name'] : '';
             $blockInfo = Model_Jinpu_Block::data_access()->filter('id', $blockIdForSearch)->get_row();
             $blockName = $blockInfo['isActived'] == 1 ? $blockInfo['name'] : '';
             $titleStr = $districtName . '&nbsp;' . $blockName . '&nbsp;' . (!$propertyData['isRoad'] ? $propertyData['address'] : '') . (!empty($shopInfo['closeRoad']) ? '靠近:' . $shopInfo['closeRoad'] : '');
             $showStr = strlen($titleStr) > 90 ? Util_GlobalFunc::cutchar($titleStr, 28) : $titleStr;
             $out['titleStr'] = $titleStr;
             $out['showStr'] = $showStr;
         }
         $out['hasLibrary'] = BLL_House_JpProperty::hasLibrary($out['brokerInfo']['jpMemberId'], $shopInfo['propertyId'], 'property');
         //房源图片查询和排序
         $images = self::handleShopImages($shopId, $type);
         //个人图库图片是否被锁定
         foreach ($images as $key => $imgVal) {
             $imgVal['isLock'] = 0;
             if ($imgVal && $imgVal['personalImgId']) {
                 $personalImg = Model_Jinpu_PersonalGallery::getImgById($imgVal['personalImgId']);
                 if ($personalImg && $personalImg->category) {
                     $imgVal['isLock'] = 1;
                 }
             }
             if ($imgVal['category'] && isset($out['arrCategory']['classify'][intval($imgVal['category'])])) {
                 $out['arrCategory']['classify'][intval($imgVal['category'])] += 1;
             }
             $images[$key] = $imgVal;
         }
         $out['images'] = $images;
     }
     $lng = $lat = $mapDataFlag = 0;
     //地图标注商铺位置的逻辑
     $DShopMap = Model_Jinpu_MapShop::getByPK($shopId);
     if (!empty($DShopMap)) {
         $lng = $DShopMap['lng'];
         $lat = $DShopMap['lat'];
         $mapDataFlag = 1;
     } else {
         if ($propertyId > 0) {
             $shopLocation = Model_Jinpu_MapProperty::getPropertyMapById($propertyId);
             if (!empty($shopLocation)) {
                 $lng = $shopLocation['lng'];
                 $lat = $shopLocation['lat'];
             }
         } else {
             list($lng, $lat) = BLL_House_JpHouseManage::getDefaultMap($out['brokerInfo']['CITYID']);
         }
         $mapDataFlag = 0;
     }
     $out['lng'] = $lng;
     $out['lat'] = $lat;
     $out['mapDataFlag'] = $mapDataFlag;
     return array('status' => 'ok', 'info' => $out, 'logArr' => $logGiveArr);
 }
Пример #20
0
 /**
  * 获取板块
  * @return array
  */
 public function do_getBlocks()
 {
     $result = Bll_House_HzHouse::getBlocks($this->cityId, $this->params['areaId']);
     return Util_GlobalFunc::buildReturn(1, $result);
 }
Пример #21
0
 /**
  * 删除房源模版
  * @return array
  */
 public function do_deletePropTemplate()
 {
     $result = Bll_House_JpPropertyTemplate::deletePropTemplate($this->params['id'], $this->brokerId);
     return Util_GlobalFunc::buildReturn($result == 1 ? 1 : 0, '删除房源模板成功');
 }