Пример #1
0
 /**
  * 203 计划删除
  * 计划id非空判断
  * 查询计划信息 如果计划status=6 记录删除计划日志
  * 查询房源计划关系
  *   如果不存在 return
  *   如果存在
  *      如果关系在线状态is_valid=1 记录房源停止推广日志
  *      将关系置为删除is_valid=0,计划下所有房源记录移除计划日志
  *      如果有竞价 下竞价 更新房子状态
  */
 private function delete_plan()
 {
     $planInfo = Bll_Plan_Fix_HzFix::getPlan($this->params['plan_id']);
     if (!$planInfo['status']) {
         throw new Exception_BllErrorException($planInfo['msg']);
     }
     $planInfo = $planInfo['msg'];
     if ($planInfo['status'] != Const_HzPlan::DELETE) {
         throw new Exception_BllErrorException("计划为非删除状态,status={$planInfo['status']}");
     }
     $this->writePlanLog(3, '删除计划');
     // 查询计划关系
     $fixPlannings = Model_Plan_HzPlanning::getPlanningByPlanIds($this->params['plan_id']);
     if (empty($fixPlannings)) {
         return;
     }
     foreach ($fixPlannings as $fixPlanning) {
         $this->params['pro_id'] = $fixPlanning['proid'];
         // 维护房子状态
         Bll_HzPropBll::bulidHzProStatu($fixPlanning['proid']);
         if ($fixPlanning['is_valid'] == Const_HzPlan::SPREAD) {
             $this->writePropLog(6, '取消推广');
         }
         if ($fixPlannings['is_valid'] == Const_HzPlan::AUTOOVER) {
             $this->writePropLog(12, '取消第二天推广');
         }
         // 更新关系状态为删除6,记录房源移除计划日志 type=11
         if (Model_Plan_HzPlanning::updatePropPlan($fixPlanning['id'], array('is_valid' => Const_HzPlan::DELETE))) {
             $this->writePropLog(11, '移除计划');
         }
     }
     $this->tempDoBid();
 }
Пример #2
0
 public static function prepareChoiceList(&$out)
 {
     // $out['bidList'] = array();
     // $out['bidProIds'] = array();
     $out['choiceProIds'] = $out['choiceProps'] = $out['choiceComsume'] = array();
     // 目前需要获取精选房源id列表 供页面判断使用
     // 获取精选计划
     $validChoicePlans = Model_Plan_HzPlanBasic::getValidBidPlansEx($out['ajkBrokerId'], Const_HzPlan::BID_VERSION_CHOICE);
     if (empty($validChoicePlans)) {
         return;
     }
     $planIds = array();
     foreach ($validChoicePlans as $plan) {
         $planIds[] = $plan['id'];
     }
     // 获取关系
     $choicePlannings = Model_Plan_HzPlanning::getPlanningByPlanIds($planIds);
     if (empty($choicePlannings)) {
         return;
     }
     foreach ($choicePlannings as $choicePlanning) {
         $out['choiceProIds'][] = $choicePlanning['proid'];
         $out['choiceProps'][$choicePlanning['proid']]['choiceStatus'] = $choicePlanning['is_valid'];
         $out['choiceProps'][$choicePlanning['proid']]['planId'] = $choicePlanning['plan_id'];
     }
     // 获取精选消费信息
     //$out['choiceComsume'] = Bll_Plan_Bid_HzBid::getBidPlanConsumeAndClickInfos($planIds, date('Ymd'));
     $out['choiceComsume'] = Model_Stats_PropClick::getBillingInfo($out['hzBrokerId'], $out['cityId'], date('Ymd'));
 }
Пример #3
0
 public function handle_request_internal()
 {
     /*
     @params planId :计划id
     @params resType :默认为0,0表示不取计划房源信息,1为取房源信息
     @params from :来源
     @success return 该计划id的信息
     */
     if (!isset($this->_params['brokerId'])) {
         return Util_MobileAPI::error(Const_APIStatus::E_PLAN_PARAM_BROKERID_MISS);
     }
     $brokerId = $this->_params['brokerId'];
     //根据安居客经纪人ID获取好租经纪人ID
     $brokerId_hz = Bll_HzBroker::get_brokerid_by_ajk_brokerid($brokerId);
     if ($brokerId_hz) {
         $broker_info = Dao_Broker_HzPlan::get_hzbroker_info($brokerId_hz);
         if (!Bll_City::isBidCity($broker_info['cityid'])) {
             return array('status' => 'ok', 'data' => array('propertyList' => array()));
         }
     }
     if (Bll_Broker_HzBroker::isComboBroker($brokerId)) {
         //获取套餐推广房源列表
         $comboList = Bll_Combo_HouseRelation::getHouseRelations($brokerId, Bll_Combo_HouseRelation::SITE_TYPE_HZ, 1);
         if (!empty($comboList)) {
             foreach ($comboList as $combo) {
                 $comboIds[$combo['houseId']] = 1;
             }
             //获取竞价房源 去除竞价房源
             $validBidPlans = Model_Plan_HzPlanBasic::getBidPlansByBrokerId($brokerId_hz);
             $planIds = array();
             if (!empty($validBidPlans)) {
                 foreach ($validBidPlans as $plan) {
                     if ($plan['flag'] == 1 && $plan['status'] != Const_HzPlan::DELETE) {
                         $planIds[] = $plan['id'];
                     }
                 }
                 if (!empty($planIds)) {
                     $bidPlannings = Model_Plan_HzPlanning::getPlanningByPlanIds($planIds);
                 }
                 if (!empty($bidPlannings)) {
                     foreach ($bidPlannings as $bid) {
                         unset($comboIds[$bid['proid']]);
                     }
                 }
             }
             //$propertyList = Model_House_HzProp::getPropsByPropIds(array_keys($comboIds));
             $propertyList = Dao_Broker_HzProp::get_prop(array_keys($comboIds));
             if (!empty($propertyList)) {
                 foreach ($propertyList as $key => $list) {
                     if ($list['content_basic']['quality'] != 1) {
                         unset($propertyList[$key]);
                     }
                 }
             }
             $result = $propertyList;
         } else {
             $result = array();
         }
         //去除竞价房源和非多图房源
     } else {
         $result = Bll_HzBidPlan::get_canbid_props($brokerId_hz);
     }
     $return = array();
     $return["status"] = "ok";
     $return["data"]['propertyList'] = array();
     if (!empty($result)) {
         $proprow = array();
         foreach ($result as $propertyList) {
             $proprow["id"] = $propertyList['proid'];
             $proprow["title"] = $propertyList['content_basic']['title'];
             $proprow["commId"] = $propertyList['content_basic']['commid'];
             $proprow["commName"] = $propertyList['content_basic']['commname'];
             $proprow["roomNum"] = $propertyList['content_basic']['roomnum'];
             $proprow["hallNum"] = $propertyList['content_basic']['hallnum'];
             $proprow["toiletNum"] = $propertyList['content_basic']['toilnetnum'];
             $proprow["area"] = round($propertyList['content_basic']['areanum']);
             $proprow["price"] = round($propertyList['content_basic']['pricenum']);
             $proprow["isMoreImg"] = $propertyList['content_basic']['quality'] ? 1 : 0;
             $proprow["priceUnit"] = "元";
             $return["data"]['propertyList'][] = $proprow;
             unset($proprow);
         }
         unset($result);
     }
     return $return;
 }
Пример #4
0
 /**
  * 根据板块id获取精选房源,写房源日志
  *
  * @param int $brokerId
  * @param $oldAreaCode
  * @param $newAreaCode
  * @return array
  */
 public static function hzCommunityAreaChangeEx($brokerId, $oldAreaCode, $newAreaCode)
 {
     $newAreaInfo = Model_City_HzArea::getAreaByTypeCode($newAreaCode);
     $oldAreaInfo = Model_City_HzArea::getAreaByTypeCode($oldAreaCode);
     if (empty($newAreaInfo)) {
         return static::buildReturn(self::PROCESS_STATUS_ERROR, '好租区域板块变更,新的板块Id[' . $newAreaCode . ']映射不存在');
     }
     if (empty($oldAreaInfo)) {
         return static::buildReturn(self::PROCESS_STATUS_ERROR, '好租区域板块变更,旧的板块Id[' . $oldAreaCode . ']映射不存在');
     }
     $choicePlanList = Model_Plan_HzPlanBasic::getChoicePlanByBlockId($oldAreaInfo['cityId'], $oldAreaInfo['id']);
     if (empty($choicePlanList)) {
         return static::buildReturn(self::PROCESS_STATUS_SUCCESS, '好租区域板块变更,旧的板块Id[' . $newAreaCode . '],没有精选计划');
     }
     $choicePlanIdList = array();
     foreach ($choicePlanList as $choicePlanInfo) {
         $choicePlanIdList[] = $choicePlanInfo['id'];
     }
     $choicePlaningList = Model_Plan_HzPlanning::getPlanningByPlanIds($choicePlanIdList);
     if (empty($choicePlaningList)) {
         return static::buildReturn(self::PROCESS_STATUS_ERROR, sprintf('好租区域板块变更,没有获取到精选[%s]计划房源关系信息', implode(',', $choicePlanIdList)));
     }
     /** 写房源日志 */
     $remark = json_encode(array('remark' => '区域板块变更', 'newAreaCode' => $newAreaCode, 'oldAreaCode' => $oldAreaCode, 'newBlockId' => $newAreaInfo['id'], 'oldBlockId' => $oldAreaInfo['id']));
     $rtn = array();
     foreach ($choicePlaningList as $choicePlaningInfo) {
         $houseLog = array();
         $houseLog['houseId'] = $choicePlaningInfo['proid'];
         $houseLog['planId'] = 0;
         $houseLog['brokerId'] = $brokerId;
         $houseLog['cityId'] = $choicePlaningInfo['city_id'];
         $houseLog['type'] = Model_Log_HouseLogNew::TYPE_COMMUNITY_AREA_CHANGE_EX;
         $houseLog['changeType'] = Const_ProPlanChangeType::COMMUNITY_AREA_CHANGE_EX;
         $houseLog['remark'] = $remark;
         $houseLog['addDate'] = date('Y-m-d H:i:s');
         $houseLog['operatorId'] = 0;
         $houseLog['siteType'] = 2;
         if (!Model_Log_HouseLogNew::create($houseLog, date('Ymd'))->save()) {
             $rtn[] = sprintf('板块变更房源[%d]日志写入失败', $choicePlaningInfo['proid']);
             continue;
         }
         $rtn[] = sprintf('板块变更房源[%d]日志写入成功', $choicePlaningInfo['proid']);
     }
     return static::buildReturn(self::PROCESS_STATUS_SUCCESS, sprintf('好租区域板块变更,%s', implode(',', $rtn)));
 }
Пример #5
0
 /**
  * 组装竞价列表
  * @param $out
  * @return array
  */
 private static function prepareBidList(&$out)
 {
     $bidList = array();
     $out['bidProIds'] = array();
     // 获取计划
     $validBidPlans = Model_Plan_HzPlanBasic::getValidBidPlans($out['hzBrokerId']);
     if (empty($validBidPlans)) {
         return array();
     }
     $planIds = array();
     foreach ($validBidPlans as $plan) {
         $planIds[] = $plan['id'];
     }
     // 获取关系
     $bidPlannings = Model_Plan_HzPlanning::getPlanningByPlanIds($planIds);
     if (empty($bidPlannings)) {
         return array();
     }
     // 组装
     foreach ($validBidPlans as $plan) {
         $planId = $plan['id'];
         // 拼接关系
         foreach ($bidPlannings as $bidPlanning) {
             $proId = $bidPlanning['proid'];
             if ($planId != $bidPlanning['plan_id']) {
                 continue;
             }
             $bidList[$planId] = $plan;
             $bidList[$planId]['planning'] = $bidPlanning;
             // 拼接房子
             $prop = isset($out['props'][$proId]) ? $out['props'][$proId] : array();
             if (empty($prop)) {
                 unset($bidList[$planId]);
                 continue;
             }
             $bidList[$planId]['prop'] = $prop;
             // 算竞价排名
             if ($plan['status'] == Const_HzPlan::SPREAD) {
                 $rank = Bll_Plan_Bid_HzBid::getBidRank($prop['proId'], $prop['commId'], $prop['priceNum'], $bidPlanning['unit_price'], $out['cityId']);
             } else {
                 $rank = '已暂停';
             }
             $bidList[$planId]['rank'] = $rank;
             $out['bidProIds'][] = $proId;
         }
     }
     // 获取房源竞价点击
     if (count($out['bidProIds']) > 0) {
         $out['bidClicks'] = Bll_Plan_Bid_HzBid::getPropsBidClick($out['bidProIds'], $out['cityId'], $out['hzBrokerId']);
     }
     return $bidList;
 }