public function handle_request_internal() { if (!$this->isBrokerLogin()) { echo json_encode(array('error' => -5, 'msg' => '请先登入!')); return false; } /** * @var $request AJKRequest */ $request = APF::get_instance()->get_request(); $cityId = $request->getBrokerCityId(); //板块精选开放 if (!Bll_City::isBlockChoice($cityId)) { echo json_encode(array('error' => -1, 'msg' => '您所在城市未开通精选业务!')); return false; } $params = $request->get_parameters(); if (!isset($params['act']) || empty($params['act'])) { echo json_encode(array('error' => -1, 'msg' => '参数错误!')); return false; } $action_method = 'do_' . $params['act']; if (!method_exists($this, $action_method)) { echo json_encode(array('error' => -1, 'msg' => '方法未实现。')); return false; } $result = call_user_func(array($this, $action_method), $params); APF::get_instance()->get_response()->set_content_type("application/json"); echo json_encode($result); return false; }
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_BlockChoice::BID_FAIL_OTHER, 'err_msg' => '请登陆操作', 'from' => 'bid_blockset')))); return false; } $isChoiceCity = false; $isChoiceCityTwo = false; switch ($business) { case 'ajk': $isChoiceCity = Bll_City::isBlockChoice($cityId, Const_Site::ANJUKE); //修改表city_biz_types 的type还有配置 $isChoiceCityTwo = Bll_City::isChoiceCity($cityId, Const_Site::ANJUKE); break; } if (!$isChoiceCity) { $response->redirect('/user/combo/brokerhome?from=not_choice_city'); return false; } //return 'Choice_BlockSet'; //验证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_blockset')))); return false; }*/ if (empty($route_matches) || count($route_matches) < 3) { $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query(array('err_no' => Bll_Plan_Bid_BlockChoice::BID_FAIL_OTHER, 'err_msg' => '请从精选房源管理页设置精选房源计划', 'from' => 'bid_blockset')))); return false; } if (!is_numeric($route_matches[2])) { $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query(array('err_no' => Bll_Plan_Bid_BlockChoice::BID_FAIL_OTHER, 'err_msg' => '房源ID必须是数字', 'from' => 'bid_blockset')))); 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_BlockChoice::esf_setting_post($brokerId, $cityId, $prop_id, $userId, $params); } catch (Exception $e) { $result = array('err_no' => Bll_Plan_Bid_BlockChoice::BID_FAIL_OTHER, 'err_msg' => '服务器繁忙,请重试'); } break; default: $result = http_build_query(array('err_no' => Bll_Plan_Bid_BlockChoice::BID_FAIL_OTHER, 'err_msg' => '参数错误。', 'from' => 'bid_blockset')); 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_BlockChoice::esf_setting($brokerId, $cityId, $prop_id, $userId, $params); } catch (Exception $e) { $pageAttributes = array('err_no' => Bll_Plan_Bid_BlockChoice::BID_FAIL_OTHER, 'err_msg' => '服务器繁忙,请重试'); } break; default: $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query(array('err_no' => Bll_Plan_Bid_BlockChoice::BID_FAIL_OTHER, 'err_msg' => '参数错误。', 'from' => 'bid_blockset')))); break; } if (isset($pageAttributes['err_no'])) { $result = array('err_no' => Bll_Plan_Bid_BlockChoice::BID_FAIL_OTHER, 'err_msg' => $pageAttributes['err_msg'], 'from' => 'bid_blockset'); $result = array_merge($result, array('act' => $business, 'propId' => $prop_id)); $response->redirect(Util_Url::buildChoiceResultUrl(http_build_query($result))); return false; } $request->set_attribute('isChoiceCityTwo', $isChoiceCityTwo); $request->set_attribute('isChoiceCity', $isChoiceCity); $request->set_attribute('business', $business); $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_BlockSetJP'; break; default: return 'Choice_BlockSet'; } }
/** * 页面删除推广操作封装 * * @param $planId * @return array */ public static function delete_plan($planId, $brokerId) { $rstArr = array('status' => 'ok'); //获取计划信息 $planInfo = Model_Plan_EsfAjkPropSpread::data_access()->filter('id', $planId)->find_only(); if (empty($planInfo)) { return array('status' => 'fail', 'info' => 'empty plan'); } if ($planInfo->status == Model_Plan_EsfAjkPropSpread::ONLINE) { return array('status' => 'fail', 'info' => '计划正在推广中'); } if ($planInfo->status == Model_Plan_EsfAjkPropSpread::ONQUEUE) { return array('status' => 'fail', 'info' => '计划正在排队中'); } if ($planInfo->tradestatus != Model_Plan_EsfAjkPropSpread::COMPLETETTRADESTATU) { return array('status' => 'fail', 'info' => '计划正在结算中'); } if ($planInfo->status == Model_Plan_EsfAjkPropSpread::DELETE) { return array('status' => 'ok', 'info' => '计划已经被删除'); } if ($brokerId != $planInfo->brokerId) { return array('status' => 'fail', 'info' => 'invalid broker'); } if (Model_Plan_EsfAjkPropSpread::BLOCK_CHOICE != $planInfo->model) { return array('status' => 'fail', 'info' => 'invalid house'); } //验证choice城市 $cityId = $planInfo->cityId; if (!Bll_City::isChoiceCity($cityId)) { return array('status' => 'fail', 'info' => 'starttime not achieved '); } if (!Bll_City::isBlockChoice($cityId)) { return array('status' => 'fail', 'info' => 'starttime not achieved '); } //更新状态 $oldStatus = $planInfo->status; $planInfo->status = Model_Plan_EsfAjkPropSpread::DELETE; if (!$planInfo->save()) { return array('status' => 'fail', 'info' => 'update plan status fail'); } //记录日志 $remark = sprintf("STATUS:%d=>%d", $oldStatus, Model_Plan_EsfAjkPropSpread::DELETE); Model_Plan_LogAjkPropspread::addNewLog($planId, $brokerId, Model_Plan_LogAjkPropspread::DEL, $remark); return $rstArr; }
/** * @param Manage_ProplistController $controller * @param AJKRequest $request * @param AJKResponse $response * * @return array */ public static function getComboInfo($controller, $request, $response) { $cityId = $request->getBrokerCityId(); $brokerId = $request->getBrokerId(); $query = $request->get_parameter('q'); $pageParams = array('query' => $query); if (!empty($query)) { $pageParams['searchByCommunity'] = !is_numeric($query); } /** 套餐信息 */ $comboInfoList = Bll_Combo_Broker_BrokerComboInfo::getBrokerComboList($brokerId); //echo "<pre>";print_r($comboInfoList);exit; $currentCombo = array(); $nextCombo = array(); $currentDate = time(); foreach ($comboInfoList as $comboInfo) { $startDate = strtotime($comboInfo['startTime']); $endDate = strtotime($comboInfo['endTime']); /** 获取当前使用的套餐 */ if ($currentDate >= $startDate && $currentDate < $endDate && $comboInfo['salePropNum'] > 0) { $currentCombo = $comboInfo; } /** 获取续买套餐 */ if ($comboInfo['salePropNum'] > 0 && $startDate > $currentDate) { if (!empty($nextCombo)) { $nextComboEffectTime = strtotime($nextCombo['startTime']); if ($nextComboEffectTime > $startDate) { $nextCombo = $comboInfo; } } else { $nextCombo = $comboInfo; } } } $pageParams['currentCombo'] = $currentCombo; $pageParams['nextCombo'] = $nextCombo; $pageParams['comboCanSpreadHouseCount'] = 0; if (!empty($currentCombo)) { if (Bll_Combo_Broker_BrokerComboInfo::isOpenUp($currentCombo)) { $hzSpreadHouseCount = Bll_Combo_HouseRelation::getHouseCountEx($brokerId, $cityId, Bll_Combo_HouseRelation::SITE_TYPE_HZ); $pageParams['comboCanSpreadHouseCount'] = max(0, $currentCombo['salePropNum'] + $currentCombo['rentPropNum'] - $hzSpreadHouseCount); } else { $pageParams['comboCanSpreadHouseCount'] = $currentCombo['salePropNum']; } } $pageParams['comboClick'] = Bll_Ppc_NewPackageStatsBrokerDay::getComboClickInfo($brokerId, date('Ymd'), Model_Ppc_NewPackageStatsBrokerDay::SITE_TYPE_AJK); $isChoiceCity = Bll_City::isChoiceCity($cityId, Const_Site::ANJUKE); $isBlockChoiceCity = Bll_City::isBlockChoice($cityId, Const_Site::ANJUKE); /** 精选城市 */ if ($isChoiceCity) { $pageParams['bidTip'] = '精选'; } $pageParams['isChoiceCity'] = $isChoiceCity; $pageParams['isBlockChoiceCity'] = $isBlockChoiceCity; $pageParams['isBidCity'] = false; $pageParams['isShowCaseCity'] = Bll_City::isShowCaseCity($cityId, Const_Site::ANJUKE); /** 获取竞价计划信息 */ if ($isChoiceCity) { $bidPropIds = array(); $pageParams['bidPlanList'] = static::getBrokerBidPlanList($brokerId, $cityId, $bidPropIds, true); $pageParams['bidPropIds'] = $bidPropIds; $pageParams['bidClickCount'] = Bll_Plan_Bid_AjkPlan::getBrokerBidClick($brokerId, date('Ymd'), $cityId); $pageParams['bidCost'] = Bll_Plan_Bid_AjkPlan::getBrokerBidCost($brokerId, date('Ymd'), $cityId); } /** 获取套餐推广信息 */ $comboSpreadHouseList = static::getComboSpreadHouseList($brokerId, $cityId); $pageParams['comboSpreadHouseList'] = $comboSpreadHouseList; $pageParams['comboHouseIds'] = array_keys($comboSpreadHouseList); /** 速度优化:effectURL 没有在房源管理页使用,所以这个是可以删除的 */ // if (!empty($comboSpreadHouseList)) { // TODO 获取效果时时看链接 // $pageParams['effectURL'] = Bll_Plan_Fix_AjkPlan::GetPlanFixedPriceDetailUri($pageParams['fixPlanPropList'][0]['planInfo']['id'], 0, 1); // } $houseInfoList = static::getBrokerAllPropInfoList($brokerId, $cityId, $pageParams['comboHouseIds'], $bidPropIds, $pageParams['isChoiceCity'], $query); //echo "<pre>";print_r($houseInfoList);exit; /** 房源质量信息 */ //$pageParams['houseSolly'] = static::getHouseSollyResult($houseInfoList['houseIdList']); $pageParams['houseSolly'] = static::getHouseSollyResultEx($houseInfoList); $pageParams['comboHouseIds'] = array_values(array_intersect($pageParams['comboHouseIds'], array_keys($houseInfoList['comboSpreadHouseList']))); if ($isChoiceCity) { $houseBidInfoList = array(); $houseBidStatus = array(); foreach ($pageParams['bidPlanList'] as $bidInfo) { $houseBidInfoList[$bidInfo['propId']] = $bidInfo; $houseBidStatus[$bidInfo['propId']] = $bidInfo['status']; if ($bidInfo['model'] == Model_Plan_EsfAjkPropSpread::BLOCK_CHOICE) { $pageParams['planInfoUrl'][$bidInfo['propId']]['urlChoice'] = "/ajkbroker/user/ajax/blockchoice"; } else { $pageParams['planInfoUrl'][$bidInfo['propId']]['urlChoice'] = "/ajkbroker/user/ajax/choice"; } } $pageParams['houseBidStatus'] = $houseBidStatus; $houseInfoList['comboSpreadHouseList'] = static::extendChoiceInfo($houseInfoList['comboSpreadHouseList'], $houseBidInfoList, $cityId); if (Bll_City::isChoiceIndependentCity($cityId, Const_Site::ANJUKE)) { $houseInfoList['noSpreadHouseList'] = static::extendChoiceInfo($houseInfoList['noSpreadHouseList'], $houseBidInfoList, $cityId); } // print_r($houseInfoList['noSpreadHouseList']); } /** 精选引导优化 (精选城市 && 已经购买了套餐 && 推广房源数>0) */ $choiceFunctionOptimizationGuide = false; /* if ($isChoiceCity && (!empty($currentCombo) || !empty($nextCombo)) && (count($comboSpreadHouseList) > 0)) { if (Bll_Broker_AjkBrokerGuideNew::getGuideStatus($brokerId, 'Choice_Function_Optimization') == 0) { $choiceFunctionOptimizationGuide = true; } } */ $pageParams['choiceFunctionOptimizationGuide'] = $choiceFunctionOptimizationGuide; //echo "<pre>";print_r(array_keys($houseInfoList));exit; return array_merge($pageParams, $houseInfoList); }