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); }
/** * 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(); }
/** * 获取房源计划信息 * * @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; }
/** * 获取房源所属定价计划 * * @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; }
/** * 竞价计划状态,更新房源状态 * * @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); }