public function handle_request_internal() { $request = APF::get_instance()->get_request(); $params = $this->getParameters(); $this->cityId = $request->getBrokerCityId(); $this->brokerId = self::$BrokerInfo['BaseInfo']['BROKERID']; //判断活动是否开始 $pageAttributes['activityStatus'] = Bll_City_BizType::isOnActivity($this->cityId, 4, Const_CityBizType::TYPE_ACTIVITY_RES); if ($pageAttributes['activityStatus'] == 'notStart') { echo json_encode(array('status' => 'error', 'info' => '活动还未开始')); exit; } elseif ($pageAttributes['activityStatus'] == 'end') { echo json_encode(array('status' => 'error', 'info' => '活动已经结束')); exit; } if ($params['action'] == 'activeSubmit') { $esfProIds = empty($params['esf']) ? array() : explode(',', $params['esf']); $zfProIds = empty($params['zf']) ? array() : explode(',', $params['zf']); if (empty($esfProIds) && empty($zfProIds)) { echo json_encode(array('status' => 'error', 'info' => '对不起,您提交的房源为空。')); exit; } //获取经纪人已经参加活动房源 $getBrokerResActivity = Bll_Activity_Res_ProInfo::getBrokerResActivityPropInfo($this->brokerId); $resActivityNum = count($getBrokerResActivity); $esfNum = count($esfProIds); $zfNum = count($zfProIds); if ($esfNum + $zfNum > 10 || $esfNum + $zfNum + $resActivityNum > 10) { echo json_encode(array('status' => 'error', 'info' => '对不起,您提交的房源数超出了10条。')); exit; } elseif ($esfNum + $zfNum + $resActivityNum == 10) { /*if (Bll_Activity_Res_RealEstateSeasonBrokerLuckDraw::getBrokerLuckDrawInfo($this->brokerId)) { Bll_Activity_Res_RealEstateSeasonBrokerLuckDraw::incrementLuckDrawNum($this->brokerId); } else {*/ $luckDrawInfo = array('brokerId' => $this->brokerId, 'cityId' => $this->cityId, 'totalNum' => 1, 'num' => 1, 'addTime' => time()); Bll_Activity_Res_RealEstateSeasonBrokerLuckDraw::insertBrokerLuckDrawInfo($luckDrawInfo); //} } $this->doPost($esfProIds, $zfProIds, $getBrokerResActivity); echo json_encode(array('status' => 'ok', 'info' => '提交成功。')); exit; } }
/** * 经纪人抽奖主程序 * @param $broker_id 经纪人id * @return array 获得奖品的信息 */ public static function BrokerLuckDraw($broker_id, $city_id) { //判断活动是否开始 if (!Bll_City_BizType::isOn($city_id, 4, Const_CityBizType::TYPE_ACTIVITY_RES)) { return array('status' => 'err', 'errCode' => 'Luck_Draw_TimeErr', 'errMsg' => self::Luck_Draw_TimeErr); } //获取获取经纪人可抽奖的次数 $brokerLuckDrawNum = self::getBrokerLuckDrawNum($broker_id); if ($brokerLuckDrawNum < 1) { return array('status' => 'err', 'errCode' => 'Luck_Draw_BrokerNumNotEnough', 'errMsg' => self::Luck_Draw_BrokerNumNotEnough); } //获取可抽奖清单 $prizeList = self::getPrizeList(); if (empty($prizeList['prizeList'])) { return array('status' => 'err', 'errCode' => 'Luck_Draw_PrizeNumNotEnough', 'errMsg' => self::Luck_Draw_PrizeNumNotEnough); } //抽取奖品 $prize = $prizeList['prizeList'][self::get_rand($prizeList['randList'])]; //扣去经纪人的抽奖次数 if (!Model_Activity_Res_eResProLuckDraw::decrementLuckDrawNum($broker_id)) { return array('status' => 'err', 'errCode' => 'Luck_Draw_BrokerNumNotEnough', 'errMsg' => self::Luck_Draw_BrokerNumNotEnough); } //扣去奖品个数 if (Model_Activity_Res_eResActivityPrizeList::decrementPrizeNum($prize['id'])) { //记录抽奖信息 $prizeRecodeId = Model_Activity_Res_eResActivityProPrize::addBrokerPrizeInfo(array('brokerId' => $broker_id, 'cityId' => $city_id, 'prizeId' => $prize['id'], 'prizeName' => $prize['prizeName'], 'actionType' => $prize['actionType'], 'addTime' => time())); //判断是否为安币 if ($prize['actionType'] == 2) { //在线充值,直接返还钱 //经纪人返款 $brokerCashBackResult = self::resBrokerLuckDrawCashBack($broker_id, $city_id, $prize['actionValue']); //记录返款结果 Model_Activity_Res_eResActivityProPrize::updateBrokerPrizeRemark($prizeRecodeId, $broker_id, json_encode($brokerCashBackResult)); } //返回中奖信息 // return array('status'=>'ok','prize'=>$prize, 'prizeRecodeId'=>$prizeRecodeId); return array('status' => 'ok', 'prize' => array('prizeName' => $prize['prizeName'], 'actionType' => $prize['actionType'], 'note' => $prize['remark']), 'prizeRecodeId' => $prizeRecodeId); } else { //返还抽奖次数 Model_Activity_Res_eResProLuckDraw::incrementLuckDrawNum($broker_id); return array('status' => 'err', 'errCode' => 'Luck_Draw_PrizeHalfwayIntercept', 'errMsg' => self::Luck_Draw_PrizeHalfwayIntercept); } }
public function handle_request_internal() { if (!$this->isBrokerLogin()) { $this->redirect_to_login(); } /** * @var $request AJKRequest */ $request = APF::get_instance()->get_request(); $response = APF::get_instance()->get_response(); $params = $this->getParameters(); $routeMatches = $request->get_router_matches(); $business = $routeMatches[1]; $cityId = $request->getBrokerCityId(); /** 判断是否是精选开放城市 */ $siteType = $business == 'ajk' ? Const_Site::ANJUKE : ($business == 'hz' ? Const_Site::HAOZU : Const_Site::JINPU); if (!Bll_City::isChoiceIndependentCity($cityId, $siteType)) { $this->redirect('/ajkbroker/combo/broker/manage/' . $business . '/?from=V2'); } $brokerId = $request->getBrokerId(); $response->set_content_type('text/html', 'utf-8'); if (!Bll_Broker_HzBroker::isComboBroker($brokerId)) { if ($business == 'jp') { $this->redirect('/jinpu/house/managementv3'); } else { $this->redirect('/ajkbroker/user/manage/proplist/' . $business . '/'); } } /** * 三网统一Controller入口,但是业务实现层使用各自的。 */ $businessCallback = array('ajk' => array('Bll_Broker_Combo_ManageAjk', 'getComboInfo'), 'hz' => array('Bll_Broker_Combo_ManageHz', 'getComboInfo'), 'jp' => array('Bll_Broker_Combo_ManageJp', 'getComboInfo')); if (!isset($businessCallback[$business])) { $this->redirect(sprintf('/ajkbroker/user/manage/proplist/ajk/?%s', http_build_query(array('err' => '地址错误')))); } /** * 调用三网业务回调函数 * @link http://php.net/manual/zh/function.call-user-func.php */ $pageParams = call_user_func($businessCallback[$business], $this, $request, $response); //echo "<pre>";print_r($pageParams);exit; if (false === $pageParams) { $this->redirect(sprintf('/ajkbroker/user/manage/proplist/ajk/?%s', http_build_query(array('err' => '系统繁忙')))); } $this->setAttributes($pageParams); $this->setAttribute('pageType', $business); $this->setAttribute('business', $business); $this->setAttribute('broker', self::$BrokerInfo); /** * 添加委托房源信息栏 * add by xiongjianxu */ $areaCode = $this->getBrokerAreaCode(self::$BrokerInfo['BaseInfo']); $this->getCommissionInfo($brokerId, $cityId, $areaCode, 1); //echo '<!--- ', PHP_EOL, print_r($pageParams, true), PHP_EOL, ' --->'; //获取一元精选的配置 $isUnitaryChoice = Bll_Stats_DaUploadUnitarySiteCommPriceDaily::getUnitaryChoiceConfig($cityId); $this->setAttribute('isUnitaryChoice', $isUnitaryChoice); //判断房源季活动是否开始 $activityStatus = Bll_City_BizType::isOnActivity($cityId, 4, Const_CityBizType::TYPE_ACTIVITY_RES); $this->setAttribute('activityStatus', $activityStatus); if ($business == 'ajk') { return 'Combo_Broker_HouseManageAjkV2'; } else { return 'Combo_Broker_HouseManageV2'; } }
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'; }
/** * 判断城市是否开通板块精选模式 * * @param int $cityId * @param int $siteType * @return mixed */ public static function isBlockChoice($cityId, $siteType = Const_Site::ANJUKE) { static $_cityConfigCache = array(); if (!isset($_cityConfigCache[$cityId])) { $_cityConfigCache[$cityId] = Bll_City_BizType::isOn($cityId, $siteType, Const_CityBizType::TYPE_BLOCK_CHOICE); } return $_cityConfigCache[$cityId]; }