コード例 #1
0
ファイル: Res.php プロジェクト: emilymwang8/ajk-broker
 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;
     }
 }
コード例 #2
0
 /**
  * 经纪人抽奖主程序
  * @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);
     }
 }
コード例 #3
0
 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';
     }
 }
コード例 #4
0
ファイル: Activity.php プロジェクト: emilymwang8/ajk-broker
 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';
 }
コード例 #5
0
ファイル: City.php プロジェクト: emilymwang8/ajk-broker
 /**
  * 判断城市是否开通板块精选模式
  *
  * @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];
 }