/** * 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(); }
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')); }
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; }
/** * 根据板块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))); }
/** * 组装竞价列表 * @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; }