Пример #1
0
 public function handle_request_internal()
 {
     /**
      * @var $request AJKRequest
      */
     $request = APF::get_instance()->get_request();
     $response = APF::get_instance()->get_response();
     $params = $this->getParameters();
     $route_matches = $request->get_router_matches();
     $brokerId = $request->getBrokerId();
     $cityId = $request->getBrokerCityId();
     $userId = $request->getUserId();
     $business = trim($route_matches[1]);
     $prop_id = $route_matches[2];
     if (empty($brokerId)) {
         $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query(array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '请登陆操作', 'from' => 'bid_set'))));
         return false;
     }
     $isChoiceCity = false;
     $isChoiceCityTwo = false;
     switch ($business) {
         case 'ajk':
             $isChoiceCity = Bll_City::isChoiceCity($cityId, Const_Site::ANJUKE);
             $isChoiceCityTwo = Bll_City::isBlockChoice($cityId, Const_Site::ANJUKE);
             break;
         case 'hz':
             $isChoiceCity = Bll_City::isChoiceCity($cityId, Const_Site::HAOZU);
             break;
         case 'jp':
             $isChoiceCity = Bll_City::isChoiceCity($cityId, Const_Site::JINPU);
             break;
     }
     if (!$isChoiceCity) {
         $response->redirect('/user/combo/brokerhome?from=not_choice_city');
         return false;
     }
     //验证choice城市
     $config = Model_Config_CommonCity::getConfig(Model_Config_CommonCity::CHOICENAME, $cityId);
     /** 判断精选计划开启时间是否到了 */
     //$request->set_attribute('choiceStarted', time()<$config['startTime']);
     $request->set_attribute('choiceStarted', !$this->getCityOpenTimeBegin($config['startTime']));
     //计算精选是否到开放时间
     $request->set_attribute('choiceStartTimeMsg', sprintf('%d点准时开放', date('H', $config['startTime'])));
     /*if(time()<$config['startTime']){
           $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query(array('err_no'=>Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg'=>'还未到精选房源开始时间。', 'from'=>'bid_set'))));
           return false;
       }*/
     if (empty($route_matches) || count($route_matches) < 3) {
         $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query(array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '请从精选房源管理页设置精选房源计划', 'from' => 'bid_set'))));
         return false;
     }
     if (!is_numeric($route_matches[2])) {
         $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query(array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '房源ID必须是数字', 'from' => 'bid_set'))));
         return false;
     }
     $params['ip'] = $request->get_client_ip();
     //        var_dump($business);exit;
     if ($request->is_post_method()) {
         switch ($business) {
             case 'ajk':
                 try {
                     $result = Bll_Plan_Bid_Choice::esf_setting_post($brokerId, $cityId, $prop_id, $userId, $params);
                     //创建精选
                 } catch (Exception $e) {
                     $result = array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '服务器繁忙,请重试');
                 }
                 break;
             case 'hz':
                 $result = Bll_Plan_Bid_Choice::hz_setting_post($brokerId, $cityId, $prop_id, $params);
                 break;
             case 'jp':
                 try {
                     $result = Bll_Plan_Bid_Choice::jp_setting_post($brokerId, $cityId, $prop_id, $params);
                 } catch (Exception $e) {
                     $result = array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '服务器繁忙,请重试');
                 }
                 break;
             default:
                 $result = http_build_query(array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '参数错误。', 'from' => 'bid_set'));
                 break;
         }
         $result = array_merge($result, array('act' => $business, 'propId' => $prop_id));
         $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query($result)));
         return false;
     }
     switch ($business) {
         case 'ajk':
             try {
                 $pageAttributes = Bll_Plan_Bid_Choice::esf_setting($brokerId, $cityId, $prop_id, $userId, $params);
             } catch (Exception $e) {
                 $pageAttributes = array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '服务器繁忙,请重试');
             }
             break;
         case 'hz':
             $pageAttributes = Bll_Plan_Bid_Choice::hz_setting($brokerId, $cityId, $prop_id, $params);
             break;
         case 'jp':
             try {
                 $pageAttributes = Bll_Plan_Bid_Choice::jp_setting($brokerId, $cityId, $prop_id, $params);
                 $pageAttributes['choice_open'] = $this->getCityOpenTimeBegin($config['startTime']);
             } catch (Exception $e) {
                 $pageAttributes = array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '服务器繁忙,请重试');
             }
             break;
         default:
             $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query(array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => '参数错误。', 'from' => 'bid_set'))));
             break;
     }
     if (isset($pageAttributes['err_no'])) {
         $result = array('err_no' => Bll_Plan_Bid_Choice::BID_FAIL_OTHER, 'err_msg' => $pageAttributes['err_msg'], 'from' => 'bid_set');
         $result = array_merge($result, array('act' => $business, 'propId' => $prop_id));
         $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query($result)));
         return false;
     }
     $request->set_attribute('business', $business);
     $request->set_attribute('isChoiceCityTwo', $isChoiceCityTwo);
     $request->set_attribute('isChoiceCity', $isChoiceCity);
     $request->set_attribute('prop_id', $prop_id);
     $this->set_attributes($pageAttributes);
     /**
      * 2015 年关精选打折 预计时间2.1 ~ 3.5
      * TODO 2015.4.1 删除这部分代码
      */
     $isChoiceRebate = Bll_Onoff_Choice::getChoiceRebateByBroekrId($brokerId);
     $this->setAttribute('isChoiceRebate', $isChoiceRebate);
     switch ($business) {
         case 'jp':
             return 'Choice_SetJP';
             break;
         default:
             return 'Choice_Set';
     }
 }