/** * 关系表数据处理. * * */ public function reletion_handle($id) { $houseList = Model_House_HouseRelation::getHouseList($id); if (empty($houseList)) { // 空数据。 $this->setLog(sprintf("[%s] : 房源关系表中没有剩余数据,处理完成.", date('Y-m-d H:i:s'))); exit; } else { foreach ($houseList as $house) { $message = []; $flagId = $house['id']; $cityId = $house['cityId']; $brokerId = $house['brokerId']; $houseId = $house['houseId']; $info = Bll_House_EsfHouse::getHouseInfo($houseId, $cityId); echo '[houseID]:', $houseId, ' [id]:', $flagId, ' [brokerId]:', $brokerId, ' [feifa]:--', $info['operateState'], "\n"; $flagInfo = array('type' => 're', 'id' => $flagId); if ($info['operateState'] == 1) { $updateTime = $info['updatedDatetime']; // 延迟5分钟处理. if (time() - strtotime($updateTime) < 300) { continue; } $filter = Bll_House_Filter::filterJob($info); if (!$filter) { // 正常房源. $this->setLog(sprintf("[%s] 房源[%s], 城市[%s], %s", date('Y-m-d H:i:s'), $houseId, $cityId, '房源信息正常.')); } else { // 虚假房源. $filter--; $message = Bll_House_Filter::$message; $log = $this->falseLog($filter, $info, $message); $this->setLog($log); $this->false_handle($info); $reasonArr = array('propId' => $houseId, 'brokerId' => $brokerId, 'type' => 2, 'reason' => '房源信息不实!', 'postTime' => time(), 'mid' => 0); Model_Log_AjkIllegalHouse::writeHouseIllegalInfo($reasonArr); $Date = date("Ymd"); $reason = '房源信息不符,房源规则' . ($filter + 1) . '违规'; $hpData = array("ProId" => $houseId, "Remark" => $reason, "BrokerId" => $brokerId, "CityId" => $cityId, "Type" => 1, "OperateId" => 0, "From" => "system"); Model_House_AjkHpProSpreadChange::insertProSpreadChange($hpData); $data = array('houseId' => $houseId, 'planId' => 0, 'brokerId' => $brokerId, 'cityId' => $cityId, 'type' => 103, 'remark' => $reason, 'flag' => 0, 'addDate' => time(), 'dealRemark' => '', 'operateId' => 0, 'from' => __METHOD__, 'siteType' => 1); if (!Model_House_UpDown_Task::create($data, date('Ymd'))->save()) { $log = sprintf("[%s]:[房源id]:%s, [房源面积]:%s,[房源户型]:%s,插入下架队列失败。", date('Y-m-d h:i:s'), $info['proId'], $info['areaNum'], $info['roomNum']); $this->setLog($log); } // 插入下架队列,actionAPI,虚假房源表。 } $this->setFlag($flagInfo); } else { // 非法房源. // log. $this->setFlag($flagInfo); continue; } } exit; } }
/** * 处理post * @param $esfProIds * @param $zfProIds * @param $getBrokerResActivity */ private function doPost($esfProIds, $zfProIds, $getBrokerResActivity) { $insertEsfData = array(); $insertZfData = array(); //二手房 if (!empty($esfProIds)) { $esfProIdsAll = $this->getProIdsByBrokerId(Bll_Combo_HouseRelation::SITE_TYPE_AJK); //过滤不属于该经济人的推广房源和已经参加活动的房源 foreach ($esfProIds as $key => $val) { if (!in_array($val, $esfProIdsAll)) { unset($esfProIds[$key]); } if (!empty($getBrokerResActivity[$val])) { unset($esfProIds[$key]); } } if (!empty($esfProIds)) { $esfProInfos = Bll_House_EsfHouse::getHouseInfo($esfProIds, $this->cityId); foreach ($esfProInfos as $key => $val) { $insertEsfData[] = array('proId' => $val['proId'], 'brokerId' => $this->brokerId, 'cityId' => $this->cityId, 'siteType' => Bll_Activity_Res_ProInfo::SITE_TYPE_AJK, 'proContent' => json_encode(Bll_Activity_Res_ProInfo::getEsfShowInfo($val)), 'addTime' => time()); } } } //租房 if (!empty($zfProIds)) { $zfProIdsAll = $this->getProIdsByBrokerId(Bll_Combo_HouseRelation::SITE_TYPE_HZ); foreach ($zfProIds as $key => $val) { if (!in_array($val, $zfProIdsAll)) { unset($zfProIds[$key]); } if (!empty($getBrokerResActivity[$val])) { unset($zfProIds[$key]); } } if (!empty($zfProIds)) { $zfProInfos = Bll_House_HzPro::getInstance()->getBrokerHzProInfo($zfProIds, $this->cityId); //房源主表信息 $propMainInfo = Bll_House_HzPro::getInstance()->getHzProInfoByIds($zfProIds); $propMainNew = array(); foreach ($propMainInfo as $val) { $propMainNew[$val['propId']]['contentBasic'] = json_decode($val['contentBasic'], true); $propMainNew[$val['propId']]['contentOther'] = json_decode($val['contentOther'], true); } foreach ($zfProInfos as $key => $val) { $insertZfData[] = array('proId' => $val['proid'], 'brokerId' => $this->brokerId, 'cityId' => $this->cityId, 'siteType' => Bll_Activity_Res_ProInfo::SITE_TYPE_HZ, 'proContent' => json_encode(Bll_Activity_Res_ProInfo::getZfShowInfo($val, $propMainNew)), 'addTime' => time()); } } } //合并 $insertData = array_merge($insertEsfData, $insertZfData); foreach ($insertData as $proInfo) { Bll_Activity_Res_ProInfo::insertBrokerResActivityPropInfo($proInfo); $ProPlanChangeApiBll = Bll_ProPlanChangeApiBll::get_instance(); $ProPlanChangeApiBll->insertProPlanChange(array('broker_id' => $this->brokerId, 'pro_id' => $proInfo['proId'], 'type' => 'ACTIVITY_RES_ADD', 'from' => __CLASS__, 'remark' => '房源季用户参加活动房源', 'site_type' => $proInfo['siteType']), 0); } }
/** * 获取二手房房源列表信息 * @return array */ private function getBrokerEsfPro() { //获取经纪人参加活动二手房房源id $proIds = $this->getProIdsByBrokerId(Bll_Combo_HouseRelation::SITE_TYPE_AJK); //获取经纪人参加活动二手房房源详细信息 $proInfos = Bll_House_EsfHouse::getHouseInfo($proIds, $this->cityId); //获取经纪人已经参加活动房源 $getBrokerResActivity = Bll_Activity_Res_ProInfo::getBrokerResActivityPropInfo($this->brokerId); $resActivityNum = count($getBrokerResActivity); //过滤已经参加活动二手房房源,同时返回必须参数(参数拼接) $result = Bll_Activity_Res_ProInfo::getCanSetEsfProList($proInfos, $getBrokerResActivity); //根据最新发布时间排序 array_multisort($result['orderByEsfProId'], SORT_DESC, $result['data']); return $pageAttributes = array('data' => $result['data'], 'resActivityNum' => $resActivityNum, 'resActivityNumLeave' => 10 - $resActivityNum); }
public function handle_request_internal() { $type = "sale"; $this->apf = APF::get_instance(); $this->request = $this->apf->get_request(); $this->response = $this->apf->get_response(); $baseDomain = APF::get_instance()->get_config('base_domain', 'common'); $baseUri = defined('BASE_URI') ? BASE_URI : ''; $baseUrl = "http://my.{$baseDomain}"; $commissionsPageUrl = "http://my.{$baseDomain}{$baseUri}/commissions"; $myCommissionsPageUrl = "http://my.{$baseDomain}{$baseUri}/commissions/mysale"; $myRentCommissionsPageUrl = "http://my.{$baseDomain}{$baseUri}/commissions/my"; $cityId = $this->request->getBrokerCityId(); if ($cityId == 11) { $this->request->set_attribute('propCheck', 0); } else { $this->request->set_attribute('propCheck', 1); } $params = $this->request->get_parameters(); $brokerId = self::$BrokerInfo['BaseInfo']['BROKERID']; // TODO 替换为其他的方式 $per = 10; $page = isset($params[Const_Listing::PARAM_N_PAGE]) && intval($params[Const_Listing::PARAM_N_PAGE]) > 0 ? intval($params[Const_Listing::PARAM_N_PAGE]) : 1; // 获取经纪人的委托 $daCommissions = Model_House_Commission::data_access()->filter('brokerId', $brokerId)->filter('type', 1)->filter('isDelete', Model_House_Commission::DELETE_NO); $daTotal = clone $daCommissions; $commissions = $daCommissions->limit($per)->offset(($page - 1) * $per)->sort('id', 'desc')->find_all(); // 获取委托关联的房源 if (!empty($commissions)) { $houseIds = array(); $brokerHouseIds = array(); foreach ($commissions as $commission) { $houseIds[] = $commission->houseId; if (!empty($commission->brokerHouseId)) { $brokerHouseIds[] = $commission->brokerHouseId; } } $houses = Model_House_CommissionHouse::data_access()->filter('id', $houseIds)->sort('id', 'asc')->find_all(); $this->request->set_attribute('houses', $houses); // 获取小区默认图片 和 区域板块名称 $communityIds = array(); $areaCodes = array(); foreach ($houses as $house) { $communityIds[] = $house->commId; $areaCodes[] = $house->areaCode; } // 房东房源图片 $propImageUrls = Bll_Image_UtilsImage::getCommissionProImage($houseIds); $this->request->set_attribute('propImageUrls', $propImageUrls); // 小区默认图片 $communityImageUrls = $this->getCommunityImageUrls($communityIds); $this->request->set_attribute('communityImageUrls', $communityImageUrls); // 区域板块 $areaCodesNames = $this->getAreaCodeNames($areaCodes); $this->request->set_attribute('areaCodeNames', $areaCodesNames); // 是否推广数据 $staticPro = Bll_House_EsfHouse::getHouseOnLineInfo(self::$BrokerInfo['BaseInfo']['CITYID'], $brokerId, $brokerHouseIds); if (!empty($brokerHouseIds)) { $publishedProInfo = Bll_House_EsfHouse::getHouseInfo($brokerHouseIds, self::$BrokerInfo['BaseInfo']['CITYID']); } // 分页 $total = $daTotal->count(); $pager = Util_MultiPage::multiPage($params, '', $total, $per, 10, $myCommissionsPageUrl); $this->request->set_attribute('page', $page); $this->request->set_attribute('pager', $pager); $this->request->set_attribute('showPager', $total > $per); } $proSpreadUrl1 = "http://my." . $baseDomain . "/user/ajax/ppclimit"; $proSpreadUrl2 = "http://my." . $baseDomain . "/user/ajax/sale/staticplan/"; // 立即推广地址 $isCombo = Bll_Combo_HouseRelation::ifComboCity(self::$BrokerInfo['BaseInfo']['CITYID']); if ($isCombo == true) { $tgUrl = $baseUrl . "/ajkbroker/combo/broker/manage/ajk"; } else { $tgUrl = $baseUrl . "/user/broker/sale/homepage"; } $this->request->set_attribute('commissions', $commissions); $this->request->set_attribute('commissionsPageUrl', $commissionsPageUrl); $this->request->set_attribute('myCommissionsPageUrl', $myCommissionsPageUrl); $this->request->set_attribute('type', $type); $this->request->set_attribute('staticPro', $staticPro); $this->request->set_attribute('publishedProInfo', $publishedProInfo); $this->request->set_attribute('myRentCommissionsPageUrl', $myRentCommissionsPageUrl); $this->request->set_attribute('proSpreadUrl1', $proSpreadUrl1); $this->request->set_attribute('proSpreadUrl2', $proSpreadUrl2); $this->request->set_attribute('baseUrl', $baseUrl); $this->request->set_attribute('tgUrl', $tgUrl); return 'House_Commission_MySale'; }
public function push($remind, &$error) { // 订阅不存在,不推送 if (!isset($this->subscriptions[$remind['subscriptionId']])) { $error = 'subscription is not exist.'; return false; } // 订阅已取消,不推送 $subscription = $this->subscriptions[$remind['subscriptionId']]; if ($subscription['status'] == Model_Choice_Subscription::SUBSCRIPTION_CANCEL) { $error = 'subscription is canceled'; return false; } // 微聊账户不存在,不推送 $chatInfo = Model_Mobile_BrokerChatInfo::data_access()->filter('brokerId', $subscription['brokerId'])->find_only(); if (!$chatInfo) { $error = 'broker has no chat account.'; return false; } // 文案:XXX(小区)的精选推广位空出来了,快去占位吧! if ($subscription['site'] == Model_Choice_Subscription::SITE_AJK) { // 获取二手房房源小区 $broker = Model_Broker_AjkBrokerExtend::data_access()->filter('brokerId', $subscription['brokerId'])->find_only(); $cityId = $broker['cityId']; $prop = Bll_House_EsfHouse::getHouseInfo($subscription['propId'], $cityId); $commName = $prop['commName']; } elseif ($subscription['site'] == Model_Choice_Subscription::SITE_RENT) { // 获取租房房源小区 $prop = Model_House_HzProp::findByPropId($subscription['propId']); $cityId = $prop->getContentBasic('cityid'); $propSearch = Model_House_HzPropSearch::data_access($cityId)->filter('proid', $prop['propId'])->find_only(); $commName = $propSearch['commname']; } else { $error = 'invalid subscription site.'; return false; } if (!$commName) { $error = 'failed to fetch community name'; return false; } // 准备待推送文案 $type = 'subscription'; $text = $commName . '的精选推广位空出来了,快去占位吧!'; $propId = strval($subscription['propId']); $tradeType = strval($subscription['site']); // 1 二手房 2租房 // 推送消息 $chatId = $chatInfo['chatId']; $api_host = APF::get_instance()->get_config('chat_api_host'); $message_url = $api_host['host'] . '/common/sendUserNotify/' . $chatId . '?from_idc=1&from=mobile-ajk-broker'; $message = json_encode(array('msgType' => 'push', 'type' => $type, 'message' => $text, 'propId' => $propId, 'tradeType' => $tradeType, 'body' => array('type' => $type, 'msg' => $text, 'propId' => $propId, 'tradeType' => $tradeType))); $result = Util_API::postData($message_url, $message); if ($result['status'] != 'OK') { $error = 'failed to call push api: ' . json_encode($result); return false; } return true; }
/** * 获取二手房房源数据 * [getBrokerEsfPro description] */ private function getBrokerEsfPro() { //判断是否是套餐城市 $data = $proClickInfo = array(); $isCombo = Bll_Combo_HouseRelation::isComboCity($this->cityId); if ($isCombo['data']) { //套餐城市 $comboList = Bll_Combo_HouseRelation::getHouseRelations($this->brokerId, Bll_Combo_HouseRelation::SITE_TYPE_AJK, 1); $proIds = $this->getObjFieldInfo($comboList, 'houseId'); $clicksInfo = Bll_Ppc_NewPackageStatsBrokerDay::getHouseComboClickInfo($proIds, date('Ymd'), Model_Ppc_NewPackageStatsHouseDay::SITE_TYPE_AJK); if (!empty($clicksInfo)) { foreach ($clicksInfo as $val) { if (isset($proClickInfo[$val['propId']])) { $proClickInfo[$val['propId']] += intval($val['cnum']); } else { $proClickInfo[$val['propId']] = intval($val['cnum']); } } } } else { //经纪人计划信息 $brokerPlanInfo = BLL_Plan_EsfPropFixedPlanRelation::get_instance()->getBrokerEsfOnlinePlan($this->brokerId); if (empty($brokerPlanInfo)) { //计划数据为空 $this->outData($data, 1); } //计划IDs $planIds = $this->getObjFieldInfo($brokerPlanInfo, 'id'); //定价推广房源 $fixedProInfos = Bll_Fixedspread_AjkFixedSpread::getFixedOnlineProByPlanIds($this->cityId, $planIds); if (empty($fixedProInfos)) { $this->outData($data, 1); } //房源IDs $proIds = $this->getObjFieldInfo($fixedProInfos, 'proId'); //房源点击量 $proClickDao = new DAO_My_Ppc_PlanOpe(); $proClickInfo = $proClickDao->getProClick($proIds); } $proInfos = Bll_House_EsfHouse::getHouseInfo($proIds, $this->cityId); if (empty($proInfos)) { $this->outData($data, 1); } //经纪人橱窗房源设置信息 $adProInfos = Bll_Broker_ShowcaseAdSetPro::getInstance()->getBrokerAdSalePropInfo($this->brokerId); $addPro = array(); if (!empty($adProInfos)) { foreach ($adProInfos as $adProVal) { $addPro[$adProVal->propId] = true; } } $this->initEsfProData($proInfos, $proClickInfo, $addPro); }
public function handle_request() { //分表 $date = date('Ymd'); $id = 0; //获取游标 $dateFlag = $this->getFlag(); if (!empty($dateFlag)) { $date = $dateFlag['date']; $id = $dateFlag['id']; } //竞价队列数据获取 $ProLogList = Model_Log_HouseLogNew::getProLogList($date, $id, $this->limit); //判断当前队列是否处理完成 if (empty($ProLogList)) { //判断是否切换表 if ($date < date('Ymd')) { $date = date('Ymd', strtotime($date) + 24 * 3600); $id = 0; //记录表游标 $this->setFlag(array('date' => $date, 'id' => $id)); } //休息1秒钟 $this->setShCommonSleepTime(1); $this->setLog(date('Y-m-d H:i:s') . ' 处理完成'); exit; } //队列数据处理 foreach ($ProLogList as $list) { $id = $list['id']; $time = 0; //查询房源的发布时间 if ($list['siteType'] == 1) { //二手房 $ajkProInfo = Bll_House_EsfHouse::getHouseInfo($list['houseId'], $list['cityId']); if ($ajkProInfo->postDate) { $time = $ajkProInfo->postDate; } } elseif ($list['siteType'] == 2) { $hzProInfo = Model_House_HzPropSearch::get_prop_by_prop_id($list['cityId'], $list['houseId']); if ($hzProInfo['created']) { $time = $hzProInfo['created']; } } elseif ($list['siteType'] == 3) { $jpProInfo = Model_House_JpHouseIdx::getPropInfoByPk($list['houseId']); if ($jpProInfo['createTime']) { $time = strtotime($jpProInfo['createTime']); } } //写索引表 if (!empty($time)) { //查询数据是否存在 $ProLogIndex = Model_Log_HouseLogIndexNew::getProLogIndexByProId($list['houseId'], date('Ymd', strtotime($list['addDate'])), $list['siteType'], date('Ymd', $time)); if (!empty($ProLogIndex)) { //记录处理日志 $this->setLog(date('Y-m-d H:i:s') . ' id:' . $list['id'] . ' 城市id:' . $list['cityId'] . ' 经纪人:' . $list['brokerId'] . ' 房源:' . $list['houseId'] . ' 网站:' . $list['siteType'] . ' 房源创建时间:' . date('Y-m-d H:i:s', $time) . ' remark:索引已存在'); continue; } try { Model_Log_HouseLogIndexNew::create(array('proId' => $list['houseId'], 'datei' => date('Ymd', strtotime($list['addDate'])), 'siteType' => $list['siteType']), date('Ymd', $time))->save(); } catch (Exception $e) { print_r($e); } //记录处理日志 $this->setLog(date('Y-m-d H:i:s') . ' id:' . $list['id'] . ' 城市id:' . $list['cityId'] . ' 经纪人:' . $list['brokerId'] . ' 房源:' . $list['houseId'] . ' 网站:' . $list['siteType'] . ' 房源创建时间:' . date('Y-m-d H:i:s', $time) . ' remark:创建索引'); } else { //记录处理日志 $this->setLog(date('Y-m-d H:i:s') . ' id:' . $list['id'] . ' 城市id:' . $list['cityId'] . ' 经纪人:' . $list['brokerId'] . ' 房源:' . $list['houseId'] . ' 网站:' . $list['siteType'] . ' remark:未找到房源信息'); } } $this->setFlag(array('date' => $date, 'id' => $id)); //休息10毫秒 $this->setShCommonSleepTime(0.01); }
public function handle_request_internal() { if (!$this->isBrokerLogin()) { $this->redirect_to_login(); } $request = APF::get_instance()->get_request(); $params = $request->get_parameters(); $this->cityId = $request->getBrokerCityId(); $this->brokerId = self::$BrokerInfo['BaseInfo']['BROKERID']; if ($params['action'] == 'dealInfoSubmit') { $this->doPost($params); $this->redirect('/ajkbroker/res/activity'); } //判断活动是否开始 $pageAttributes['activityStatus'] = Bll_City_BizType::isOnActivity($this->cityId, 4, Const_CityBizType::TYPE_ACTIVITY_RES); //如果用户有确认成交房源信息,显示倒计时 if (Bll_Activity_Res_ProInfo::getResProTransactionRecords($this->brokerId)) { $pageAttributes['showTimes'] = 1; } //倒计时 $startTime = '2015-03-31 00:00:00'; //活动开始时间 $endTime = '2015-05-01 00:00:00'; //活动截至时间 $now = time(); $lastDayNum = (strtotime($endTime) - $now) / (24 * 3600); $pageAttributes['lastDayNum'] = ceil($lastDayNum); if ($pageAttributes['lastDayNum'] <= 0) { //todo 获奖名单 二期 } //获取经纪人抽奖次数 $num = Bll_Activity_Res_RealEstateSeasonBrokerLuckDraw::getBrokerLuckDrawNum($this->brokerId); //已经抽奖 if ($num == 0) { $pageAttributes['luckDrawStatus'] = 1; //显示抽奖信息 $luckDrawInfo = Bll_Activity_Res_RealEstateSeasonBrokerLuckDraw::getBrokerPrizeByBrokerId($this->brokerId); $prizeInfo = Bll_Activity_Res_RealEstateSeasonBrokerLuckDraw::getBrokerActionTypeByBrokerId($luckDrawInfo[0]['prizeId']); $pageAttributes['actionType'] = $prizeInfo['actionType']; $pageAttributes['remark'] = $prizeInfo['remark']; $pageAttributes['prize_recode_id'] = $luckDrawInfo[0]['id']; $pageAttributes['prize_recode_remark'] = $luckDrawInfo[0]['remark']; $pageAttributes['prize_recode_prize_name'] = $luckDrawInfo[0]['prizeName']; } //显示立即抽奖 if ($num > 0) { $pageAttributes['luckDrawStatus'] = 2; } //获取经纪人已经参加活动房源 $getBrokerResActivity = Bll_Activity_Res_ProInfo::getBrokerResActivityPropInfo($this->brokerId); if (count($getBrokerResActivity) < 10) { $pageAttributes['luckDrawStatus'] = 3; } $esfData = array(); $orderByEsfProId = array(); $zfData = array(); $orderByZfProId = array(); foreach ($getBrokerResActivity as $val) { //参数初始化 $proInfo = array(); //获取房源信息 if ($val['siteType'] == Bll_Activity_Res_ProInfo::SITE_TYPE_AJK) { $proInfo = Bll_House_EsfHouse::getHouseInfo($val['proId'], $val['cityId']); $proInfo = !empty($proInfo) ? Bll_Activity_Res_ProInfo::getEsfShowInfo($proInfo) : array(); } else { $proInfo = Bll_House_HzPro::getInstance()->getBrokerHzProInfo($val['proId'], $val['cityId']); $propMainInfo = Bll_House_HzPro::getInstance()->getHzProInfoByIds($val['proId']); $propContentBasic[$val['proId']]['contentBasic'] = json_decode($propMainInfo['contentBasic'], true); //租房的所有信息可以从getHzProInfoByIds里面查到 $proInfo = $proInfo[0]; $proInfo = !empty($proInfo) ? Bll_Activity_Res_ProInfo::getZfShowInfo($proInfo, $propContentBasic) : array(); } //如果房源信息查不到,使用快照里面的数据 if (empty($proInfo)) { $proInfo = json_decode($val['proContent'], true); } $proInfo['status'] = $val['status']; //二手房、租房数据拆分 if ($val['siteType'] == Bll_Activity_Res_ProInfo::SITE_TYPE_AJK) { $esfData[] = $proInfo; $orderByEsfProId[] = $proInfo['id']; } else { $zfData[] = $proInfo; $orderByZfProId[] = $proInfo['id']; } } //按房源id排序 array_multisort($orderByEsfProId, SORT_DESC, $esfData); array_multisort($orderByZfProId, SORT_DESC, $zfData); $pageAttributes['esfData'] = $esfData; $pageAttributes['zfData'] = $zfData; $pageAttributes['error'] = $params['message']; $this->set_attributes($pageAttributes); return 'Activity_Res_Activity'; }
/** * * 根据经纪人查询套餐房源的标签(优、良、中、待评) * 根据房源的rank大段 * @param $brokerId * @param $siteType * @return array * $result['list'][proid]['rankStar'] 大段 * $result['list'][proid]['rankStarName'] 大段名称 * $result['count'][0][rankStar] 各大段的数量标记 * $result['count'][0][rankStarName] 各大段的数量名称 * $result['count'][0][rankStarNum] 各大段的数量 */ public static function getBrokerComboProRank($brokerId, $siteType, $cityId = '') { //标签返回值 $result = array(); switch ($siteType) { case 'ajk': //二手房 //分类计算标签数量 $rankTips = array(0 => '待评', 1 => '中等', 2 => '良好', 3 => '优质'); //获取经纪人套餐房源 $comboList = Bll_Combo_HouseRelation::getHouseRelations($brokerId, Bll_Combo_HouseRelation::SITE_TYPE_AJK, 1); $houseIds = array(); foreach ($comboList as $combo) { $houseIds[$combo['houseId']] = $combo['houseId']; } if (empty($houseIds)) { return $result; } $houseInfo = array(); foreach ($comboList as $combo) { $houseInfo['houseIdList'][] = $combo['houseId']; $tmp = array('proId' => $combo['houseId'], 'postDate' => strtotime($combo['created']), 'cityId' => $combo['cityId']); $houseInfo['comboSpreadHouseList'][$combo['houseId']] = $tmp; } if (empty($houseInfo)) { return $result; } $housePostDate = array(); $housePostDateTmp = Bll_House_EsfHouse::getHouseInfo($houseInfo['houseIdList'], $cityId); foreach ($housePostDateTmp as $k => $v) { $housePostDate[$v['proId']] = $v; } foreach ($houseInfo['comboSpreadHouseList'] as $k => &$v) { $v['postDate'] = $housePostDate[$k]['postDate']; } //获取房源的标签 $houseSollyResultList = Bll_House_EsfHouse::getHouseRankEx($houseInfo); $houseRank = array(); foreach ($houseSollyResultList as $houseSollyResult) { $houseRank[$houseSollyResult['propId']] = $houseSollyResult['rankStar']; } //标签数量计算 foreach ($houseIds as $houseId) { if (isset($rankTips[$houseRank[$houseId]])) { $rankStar = $houseRank[$houseId]; } else { $rankStar = 0; } //数据列表 $result['list'][$houseId]['rankStar'] = $rankStar; $result['list'][$houseId]['rankStarName'] = $rankTips[$rankStar]; //统计数据 $result['count'][$rankStar]['rankStar'] = $rankStar; $result['count'][$rankStar]['rankStarName'] = $rankTips[$rankStar]; if (isset($result['count'][$rankStar]['rankStarNum'])) { $result['count'][$rankStar]['rankStarNum'] += 1; } else { $result['count'][$rankStar]['rankStarNum'] = 1; } } break; case 'hz': //租房 //分类计算标签数量 $rankTips = array(0 => '待评', 1 => '中等', 2 => '良好', 3 => '优质'); //获取经纪人套餐房源 $comboList = Bll_Combo_HouseRelation::getHouseRelations($brokerId, Bll_Combo_HouseRelation::SITE_TYPE_HZ, 1); $houseIds = array(); foreach ($comboList as $combo) { $houseIds[$combo['houseId']] = $combo['houseId']; } if (empty($houseIds)) { return $result; } //获取房源的标签 //$houseSollyResultList = Model_Stats_HzPropQuality::getPropsqualityv2($houseIds); $houseInfo = array(); $tmp = array(); foreach ($comboList as $v) { $tmp['propId'] = $v['houseId']; $tmp['cityid'] = $v['cityId']; $tmp['created'] = strtotime($v['created']); $houseInfo[$v['houseId']] = $tmp; $tmp = array(); } $housePostDate = array(); $housePostDateTmp = Bll_House_HzHouse::getValidPropsByBrokerIdEx($brokerId, $cityId); foreach ($housePostDateTmp as $k => $v) { $housePostDate[$v['proid']] = $v; } foreach ($houseInfo as $k => &$v) { $v['created'] = $housePostDate[$k]['created']; } $houseSollyResultListTmp = Bll_Broker_Combo_ManageHz::getHzPropsQuality($houseInfo); foreach ($houseSollyResultListTmp as $v) { $tmp['cityId'] = $v['cityId']; $tmp['proId'] = $v['proId']; $tmp['rank'] = $v['rank']; $houseSollyResultList[] = $tmp; } $houseRank = array(); foreach ($houseSollyResultList as $houseSollyResult) { $houseRank[$houseSollyResult['proId']] = $houseSollyResult['rank']; } //标签数量计算 foreach ($houseIds as $houseId) { if (isset($rankTips[$houseRank[$houseId]])) { if ($houseRank[$houseId] == 1) { $rankStar = 3; //优 } elseif ($houseRank[$houseId] == 2) { $rankStar = 2; //良 } elseif ($houseRank[$houseId] == 3) { $rankStar = 1; //中 } else { $rankStar = 0; //优 } } else { $rankStar = 0; } //数据列表 $result['list'][$houseId]['rankStar'] = $rankStar; $result['list'][$houseId]['rankStarName'] = $rankTips[$rankStar]; //统计数据 $result['count'][$rankStar]['rankStar'] = $rankStar; $result['count'][$rankStar]['rankStarName'] = $rankTips[$rankStar]; if (isset($result['count'][$rankStar]['rankStarNum'])) { $result['count'][$rankStar]['rankStarNum'] += 1; } else { $result['count'][$rankStar]['rankStarNum'] = 1; } } break; case 'jp': //金铺 $exquisite = array(1 => '精品', 2 => '非精品'); //获取经纪人套餐房源 $comboList = Bll_Combo_HouseRelation::getHouseRelations($brokerId, Bll_Combo_HouseRelation::SITE_TYPE_JP, 1); $houseIds = array(); foreach ($comboList as $combo) { $houseIds[$combo['houseId']] = $combo['houseId']; } if (empty($houseIds)) { return $result; } //获取房源的标签 $jpOfficeRent = Model_House_JpOfficeRent::getPropInfoByIds($houseIds); $jpOfficeSale = Model_House_JpOfficeSale::getPropInfoByIds($houseIds); $jpShopRent = Model_House_JpShopRent::getPropInfoByIds($houseIds); $jpShopSale = Model_House_JpShopSale::getPropInfoByIds($houseIds); $houseSollyResultList = array_merge($jpOfficeRent, $jpOfficeSale, $jpShopRent, $jpShopSale); $houseExquisite = array(); foreach ($houseSollyResultList as $houseSollyResult) { $houseExquisite[$houseSollyResult['id']] = $houseSollyResult['isExquisite']; } //标签数量计算 foreach ($houseIds as $houseId) { if (isset($exquisite[$houseExquisite[$houseId]])) { $exquisiteStar = $houseExquisite[$houseId]; } else { $exquisiteStar = 2; } //数据列表 $result['list'][$houseId]['exquisiteStar'] = $exquisiteStar; $result['list'][$houseId]['exquisiteStarName'] = $exquisite[$exquisiteStar]; //统计数据 $result['count'][$exquisiteStar]['exquisiteStar'] = $exquisiteStar; $result['count'][$exquisiteStar]['exquisiteStarName'] = $exquisite[$exquisiteStar]; if (isset($result['count'][$exquisiteStar]['exquisiteStarNum'])) { $result['count'][$exquisiteStar]['exquisiteStarNum'] += 1; } else { $result['count'][$exquisiteStar]['exquisiteStarNum'] = 1; } } break; default: break; } return $result; }
public function handle_request_internal() { if (!Bll_City::isShowCaseCity(static::$intBrokerCityID)) { $this->redirect('/user/combo/brokerhome'); exit; } $objRequest = APF::get_instance()->get_request(); $cityID = self::$BrokerInfo['BaseInfo']['CITYID']; $objRequest->set_attribute('PayType', self::$BrokerInfo['BaseInfo']['PAYTYPE']); $tmp = array('cityId' => $cityID, 'status' => 1, 'startDate' => date('Ymd')); $cityPrice = Bll_Broker_ConfigCityPrice::getInstance()->getCityPrice($tmp, Const_ShowcaseOrders::SALE_DB); $todayPrice = round($cityPrice->discountPrice / 100, 2); $intBrokerID = $objRequest->getBrokerId(); $userId = $objRequest->getUserId(); $data = array('brokerId' => $intBrokerID); $orderinfo = Bll_Broker_ShowcaseOrders::getInstance()->getBrokerOrders($data, $this->db); if (!$orderinfo) { $this->toManage('/ajkbroker/showcase/esf/'); } $lavedays = ceil((strtotime($orderinfo->endDate) - strtotime(date('Ymd'))) / 3600 / 24); if ($orderinfo->isStop == 1 || $lavedays < 0) { $order_status = 'stop'; } else { $objRequest->set_attribute('lavedays', $lavedays); $objRequest->set_attribute('lastday', date('Y-m-d', strtotime($orderinfo->endDate))); $order_status = 'open'; } $objRequest->set_attribute('order_status', $order_status); $objRequest->set_attribute('todayPrice', $todayPrice); $params = APF::get_instance()->get_request()->get_parameters(); $days = intval($params['days']); //status=2是停止,status=1是续费 if ($params['status'] == 2) { if ($orderinfo->isStop == 0) { $stopstatus = Bll_Broker_ShowcaseOrders::getInstance()->stopBrokerOthers($orderinfo, $cityPrice->discountPrice, $this->db); if ($stopstatus['status']) { $this->toManage(); } else { $this->toError($stopstatus['msg']); } } else { $msg = '订单类型不能操作'; $this->toError($msg); } } elseif ($params['status'] == 1 && $days >= 1) { $BrokerMoney = Bll_Broker_ShowcaseOrders::getInstance()->getBrokerMoney($userId); if ($BrokerMoney < $todayPrice) { $this->toError(Const_ShowcaseOrders::MONEY_NOT_ENOUGH); } $Continueorder = Bll_Broker_ShowcaseOrders::getInstance()->continueBrokerOthers($orderinfo, $days, $cityPrice->discountPrice, $this->db); if ($Continueorder['status']) { $this->toManage(); } else { $this->toError($Continueorder['msg']); } } elseif ($params['status'] == 3) { $proIds = array(); if (!empty($params['rooms'])) { $proIds = explode(';', $params['rooms']); $filterProIds = Bll_Broker_ShowcaseAdSetPro::getInstance()->filterProIds($intBrokerID, $cityID, $this->db, $proIds); //有些房源不在线上展示 if (count($filterProIds) != count($proIds)) { $this->toError('有些房源没在线上推广,操作失败!'); } $res = Bll_Broker_ShowcaseAdSetPro::getInstance()->insertAdProsInfo($intBrokerID, $cityID, $proIds, $this->db); if (!$res['status']) { $this->toError($res['msg']); } else { //插入成功,跳转至管理页面 if ($orderinfo->isStop == 0) { $log = array(); $log['brokerId'] = $orderinfo->brokerId; $log['cityId'] = $orderinfo->cityId; $log['endDate'] = $orderinfo->endDate; $log['startDate'] = $orderinfo->startDate; $log['opType'] = Const_ShowcaseOrders::OPTYPE_6; $log['totalDays'] = ceil((strtotime($orderinfo->endDate) - strtotime($orderinfo->startDate)) / 3600 / 24) + 1; $log['createTime'] = time(); Bll_Broker_ShowcaseOrders::getInstance()->insertSetLog($log, $this->db); } $this->toManage(); } } } $orderCreated = date('Ymd', $orderinfo->createTime); if ($orderCreated < date('Ymd')) { $click = Bll_Broker_ShowcaseOrders::getInstance()->getBrokerClick($intBrokerID, date('Ymd', strtotime('-1 days')), $this->db); if (!$click->quantityCount) { $objRequest->set_attribute('YClick', 0); } else { $objRequest->set_attribute('YClick', $click->quantityCount); } $objRequest->set_attribute('IS_YClick', true); } $isCombo = Bll_Combo_HouseRelation::isComboCity($cityID); if ($isCombo['data']) { $comboList = Bll_Combo_HouseRelation::getHouseRelations($intBrokerID, Bll_Combo_HouseRelation::SITE_TYPE_AJK, 1); if (!empty($comboList)) { if (count($comboList) >= Const_ShowcaseOrders::SALE_PRO_MAX_COUNT) { $fixedProInfosCnt = Const_ShowcaseOrders::SALE_PRO_MAX_COUNT; } else { $fixedProInfosCnt = count($comboList); } } else { $fixedProInfosCnt = 0; } $proInfo = Bll_Broker_ShowcaseAdSetPro::getInstance()->getBrokerAdSalePropInfo($intBrokerID); $proIds = Bll_Broker_ShowcaseOrders::getInstance()->getObjFieldInfo($proInfo, 'propId'); $proInfos = Bll_House_EsfHouse::getHouseInfo($proIds, $cityID); $proList = Bll_Broker_ShowcaseAdSetPro::getInstance()->initComboEsfProData($proInfos, $comboList); } else { //获取经纪人计划 $brokerPlanInfo = BLL_Plan_EsfPropFixedPlanRelation::get_instance()->getBrokerEsfOnlinePlan($intBrokerID); if (!empty($brokerPlanInfo)) { //计划数据不为空 //计划IDs $planIds = Bll_Broker_ShowcaseOrders::getInstance()->getObjFieldInfo($brokerPlanInfo, 'id'); //定价推广房源 $fixedProInfos = Bll_Fixedspread_AjkFixedSpread::getFixedOnlineProByPlanIds($cityID, $planIds); $proIdsc = Bll_Broker_ShowcaseOrders::getInstance()->getObjFieldInfo($fixedProInfos, 'proId'); $proInfosc = Bll_House_EsfHouse::getHouseInfo($proIdsc, $cityID); if (!empty($proInfosc)) { if (count($proInfosc) >= Const_ShowcaseOrders::SALE_PRO_MAX_COUNT) { $fixedProInfosCnt = Const_ShowcaseOrders::SALE_PRO_MAX_COUNT; } else { $fixedProInfosCnt = count($proInfosc); } } else { $fixedProInfosCnt = 0; } } else { $fixedProInfosCnt = 0; } $proInfo = Bll_Broker_ShowcaseAdSetPro::getInstance()->getBrokerAdSalePropInfo($intBrokerID); $proIds = Bll_Broker_ShowcaseOrders::getInstance()->getObjFieldInfo($proInfo, 'propId'); $proInfos = Bll_House_EsfHouse::getHouseInfo($proIds, $cityID); $proStatus = Bll_Fixedspread_AjkFixedSpread::getFixedProBy($cityID, $proIds); $proList = Bll_Broker_ShowcaseAdSetPro::getInstance()->initEsfProData($proInfos, $proStatus, $planIds); } if (count($proList) > $fixedProInfosCnt) { $fixedProInfosCnt = count($proList); } $objRequest->set_attribute('type', 'ajk'); $objRequest->set_attribute('index', 2); //精选推广开关 $isChoice = Bll_City::isChoiceCity($cityID); $objRequest->set_attribute('isChoice', $isChoice); $objRequest->set_attribute('fixedProInfosCnt', $fixedProInfosCnt); $objRequest->set_attribute('proList', $proList); return 'Showcase_EsfManage'; }