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; }
/** * 由于套餐变更 下掉多余房子 * @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); }
/** * 获取上下架系统运行情况 */ private function getUpDownRuntimeInfo() { // db 还没处理的队列数 $noDBDealTasksNum = $this->getDBNoDealTasksNum(); // redis 还没处理的队列数 $noRedisDealTasksNum = $this->getRedisNoDealTaskdNum(); return Util_GlobalFunc::buildReturn(1, array('noDBDealTasksNum' => '房源上下架DB队列积压数量:' . $noDBDealTasksNum, 'noRedisDealTasksNum' => '房源上下架Redis队列积压数量:' . $noRedisDealTasksNum)); }
/** * 房源取消套餐推广 * @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, '房源取消套餐推广成功'); }
/** * 由于套餐变更 下掉多余房子 * @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); } }
/** * 好租获取小区信息 * @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'])); }
/** * 获取账户信息 * @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); }
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); }
/** * 处理经纪人下房子任务 * @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; }
/** * 获取计划的消费、点击信息 * @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); }
/** * 获取房源历史总点击量(可批量) * 注:对查询跨度对限制,限制只能查询一个月内的 * @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); }
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; }
/** * 设置默认房源图片 * @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'); }
/** * @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, ''); }
/** * 构造发房数据 * @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); */ }
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); }
/** * @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); }
/** * @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 . ' ' . $blockName . ' ' . (!$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); }
/** * 获取板块 * @return array */ public function do_getBlocks() { $result = Bll_House_HzHouse::getBlocks($this->cityId, $this->params['areaId']); return Util_GlobalFunc::buildReturn(1, $result); }
/** * 删除房源模版 * @return array */ public function do_deletePropTemplate() { $result = Bll_House_JpPropertyTemplate::deletePropTemplate($this->params['id'], $this->brokerId); return Util_GlobalFunc::buildReturn($result == 1 ? 1 : 0, '删除房源模板成功'); }