Ejemplo n.º 1
0
 public function handle_request_internal()
 {
     $brokerId = $this->_params['brokerId'];
     $propId = $this->_params['propId'];
     // 获取Broker Mapping
     $brokerMapping = Model_Broker_MainBusiness::getMainBusinessByAjkBrokerId($brokerId);
     if (!$brokerMapping) {
         throw new Exception('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     $data = array();
     // 获取房源和计划关系
     $planRelation = Model_Plan_HzPlanning::getPropFixPlan($propId);
     if ($planRelation) {
         $data['status'] = 1;
         //推广中
     } else {
         $data['status'] = 0;
         //未推广
     }
     // 获取房源信息
     $prop = Model_House_HzProp::data_access()->filter('propId', $propId)->find_only();
     if (!$prop) {
         throw new Exception('房源不存在', Const_APIStatus::E_PROP_NOT_EXISTS);
     }
     // 判断房源和经纪人关联关系
     $propBasic = json_decode($prop['contentBasic'], true);
     if ($propBasic['userid'] != $brokerMapping['hzBrokerid']) {
         throw new Exception('房源不属于该经纪人', Const_APIStatus::E_PROP_NOT_EXISTS);
         // TODO
     }
     // 根据房源的计划ID判断房源是否已定价推广
     $data['planId'] = '';
     if ($plan = $prop->getFixPlan()) {
         $data['planId'] = $plan['id'];
     }
     // 点击单价
     $data['clickPrice'] = round($prop->getFixClickPrice(), 2);
     $data['clickPriceUnit'] = '元';
     // 今日定价点击量
     $data['todayClicks'] = $prop->getTodayClickSums('fix');
     // 定价点击总量
     $data['totalClicks'] = $prop->getTotalClickSums('fix');
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $data);
 }
Ejemplo n.º 2
0
 /**
  * 110 房源图片信息变更
  * 查询房源信息是否存在
  *   如果不存在 返回结束
  *   如果有效 记录房源编辑日志 type=2
  *   记录房源更新日志 type=4 后续由job rebuild
  *   //处理竞价 (多图判断)
  */
 private function change_prop_pic()
 {
     $this->writePropLog(2, '图片信息变更');
     if ($this->params['isComboCity']) {
         if (!($comboRelation = Bll_Combo_HouseRelation::getOnlineRelationByHouseId($this->params['pro_id']))) {
             return $this->allReturn[] = "房源{$this->params['pro_id']}套餐关系为空";
         }
     } else {
         // 查询定价关系
         if (!($fixPlanning = Model_Plan_HzPlanning::getPropFixPlan($this->params['pro_id']))) {
             return $this->allReturn[] = "房源{$this->params['pro_id']}定价关系为空";
         }
     }
     //$this->writePropLog(4, '更新');
     $this->tempDoBid();
 }
Ejemplo n.º 3
0
 /**
  * 获取房源计划信息
  *
  * @param $propId
  * @return array
  */
 public static function getPropPlanType($propId)
 {
     $propFixPlan = Model_Plan_HzPlanning::getPropFixPlan($propId);
     $propBidPlan = Model_Plan_HzPlanning::getPropBidPlan($propId);
     $result = array();
     if (!empty($propFixPlan)) {
         $result['fix'] = array('isValid' => $propFixPlan['is_valid'], 'planId' => $propFixPlan['plan_id']);
         $result['type'] = 1;
     }
     if (!empty($propBidPlan)) {
         $result['bid'] = array('isValid' => $propBidPlan['is_valid'], 'planId' => $propBidPlan['plan_id']);
         $result['type'] = 2;
     }
     if (!empty($propBidPlan) && !empty($propFixPlan)) {
         $result['type'] = 3;
     }
     return $result;
 }
Ejemplo n.º 4
0
 /**
  * 获取房源所属定价计划
  *
  * @return array|mixed|null
  */
 public function getFixPlan()
 {
     // 获取房源和计划关系
     $planRelation = Model_Plan_HzPlanning::getPropFixPlan($this->propId);
     if (!$planRelation) {
         return null;
     }
     // 获取计划
     $plan = Model_Plan_HzPlanBasic::get_plan_by_id($planRelation['plan_id']);
     if (!$plan) {
         return null;
     }
     return $plan;
 }
Ejemplo n.º 5
0
 /**
  * 竞价计划状态,更新房源状态
  *
  * @param $cityId
  * @param $propId
  */
 public static function bidStatusChangeUpdatePropStatus($cityId, $propId)
 {
     $propSearchInfo = Model_House_HzPropSearch::get_prop_by_prop_id($cityId, $propId);
     if (empty($propSearchInfo)) {
         return;
     }
     $oldStatus = $propSearchInfo['status'];
     $fixPropPlan = Model_Plan_HzPlanning::getPropFixPlan($propId);
     $newStatus = Bll_Ppc_HzProp::mapPropStatus($fixPropPlan['is_valid']);
     Model_House_HzPropSearch::updatePropStatus($cityId, $propId, $newStatus);
     Bll_HzProp::updatePropStatus($propId, $newStatus);
 }