public static function deletePlan($id) { return Model_Plan_HzPlanBasic::updatePlan($id, array('flag' => 0)) > 0 ? true : false; }
/** * 重新计算坑位数 * 获取精选计划,根据计划的板块id、价格段id重新计算坑位信息。 * 从房源信息里获取到新的板块id、价格段id,更新计划的板块id、价格段id,重新计算坑位信息. * * @param int $houseId * @param int $cityId * @return string */ public static function rebuildBucketHz($houseId, $cityId) { $houseChoicePlan = Model_Plan_HzPlanning::getPropBidPlan($houseId); if (empty($houseChoicePlan)) { return '房源没有做精选'; } $choicePlanInfo = Model_Plan_HzPlanBasic::get_plan_by_id($houseChoicePlan['plan_id']); if (empty($choicePlanInfo)) { return '没有获取到精选计划'; } if ($choicePlanInfo['status'] != Const_HzPlan::SPREAD && $choicePlanInfo['status'] != Const_HzPlan::WAITING) { return '房源精选不在推广或排队中'; } $propInfo = Model_House_HzProp::get_prop_info_by_prop_id($houseId); $blockId = $propInfo['contentBasic']['blockid']; $priceIntervalInfo = Model_House_HzPriceChoice::get_price($cityId, $propInfo['contentBasic']['pricenum']); if (empty($priceIntervalInfo)) { return '没有获取到价格段信息'; } $priceId = $priceIntervalInfo['id']; $data = array('blockId' => $blockId, 'priceId' => $priceId); if (0 == Model_Plan_HzPlanBasic::updatePlan($houseChoicePlan['plan_id'], $data)) { return "更新精选计划[{$houseChoicePlan['plan_id']}]信息失败[{$blockId} - {$priceId}]"; } $result = ''; if (static::updateBucket($blockId, $priceId)) { $result .= "(新)更新坑位[{$blockId} - {$priceId}]成功"; } else { $result .= "(新)更新坑位[{$blockId} - {$priceId}]失败"; } if (static::updateBucket($choicePlanInfo['blockId'], $choicePlanInfo['priceId'])) { $result .= "(旧)更新坑位[{$choicePlanInfo['blockId']} - {$choicePlanInfo['priceId']}]成功"; } else { $result .= "(旧)更新坑位[{$choicePlanInfo['blockId']} - {$choicePlanInfo['priceId']}]失败"; } return $result; }
/** * 精选房源板块变更,修正计划的板块ID * * @param array $queue * @return array */ public static function houseAreaChange($queue) { if ($queue['siteType'] != 2) { return Bll_HzPropBll::build_return(0, '非好租精选队列'); } if ($queue['planId'] == 0 || $queue['proId'] == 0) { return Bll_HzPropBll::build_return(0, '房源Id、计划Id不能为空'); } /** 获取精选计划信息 */ $planInfo = Model_Plan_HzPlanBasic::get_plan_by_id($queue['planId'], true); if (empty($planInfo)) { return Bll_HzPropBll::build_return(1, sprintf('获取计划[%d]信息失败', $queue['planId'])); } if ($planInfo['status'] != Const_HzPlan::SPREAD && $planInfo['status'] != Const_HzPlan::WAITING) { return Bll_HzPropBll::build_return(1, sprintf('计划[%d]不在推广或者排队中', $queue['planId'])); } /** 获取房源基本信息 */ $houseInfo = Model_House_HzProp::get_prop_info_by_prop_id($queue['proId'], true); if (empty($houseInfo)) { return Bll_HzPropBll::build_return(1, '获取房源[%d - %d]信息失败', $planInfo['cityId'], $queue['proId']); } if ($houseInfo['contentBasic']['status'] == 99 || $houseInfo['contentBasic']['status'] == 100) { return Bll_HzPropBll::build_return(1, sprintf('房源已经被删除[%d - %d]', $queue['proId'], $houseInfo['contentBasic']['status'])); } $blockId = $houseInfo['contentBasic']['blockid']; /** 获取价格段Id */ $priceIntervalInfo = Model_House_HzPriceChoice::get_price($planInfo['cityId'], $houseInfo['contentBasic']['pricenum']); if (empty($priceIntervalInfo)) { return Bll_HzPropBll::build_return(1, sprintf('没有获取到价格段信息[%d - %d]', $planInfo['cityId'], $houseInfo['contentBasic']['pricenum'])); } $priceId = $priceIntervalInfo['id']; $data = array('blockId' => $blockId, 'priceId' => $priceId); if (0 == Model_Plan_HzPlanBasic::updatePlan($queue['planId'], $data)) { return Bll_HzPropBll::build_return(1, sprintf('更新精选计划[%d][%s]失败', $queue['planId'], json_encode($data))); } $result = sprintf('更新精选计划[%d][%s]成功', $queue['planId'], json_encode($data)); if (static::updateBucket($blockId, $priceId)) { $result .= ",(新)更新坑位[{$blockId} - {$priceId}]成功"; } else { $result .= ",(新)更新坑位[{$blockId} - {$priceId}]失败"; } if (static::updateBucket($planInfo['blockId'], $planInfo['priceId'])) { $result .= ",(旧)更新坑位[{$planInfo['blockId']} - {$planInfo['priceId']}]成功"; } else { $result .= ",(旧)更新坑位[{$planInfo['blockId']} - {$planInfo['priceId']}]失败"; } return Bll_HzPropBll::build_return(1, $result); }
/** * 经纪人手动停止精选推广 * 只将计划的状态状态设置为 Const_HzPlan::MENUOVER * * @param $ajkBrokerId * @param $planId * @param $ip * @return array */ public static function stopChoicePlan($ajkBrokerId, $planId, $ip) { $result = array('status' => 'ok'); $planInfo = Model_Plan_HzPlanBasic::get_plan_by_id($planId); if (empty($planInfo)) { return array('status' => 'error', 'msg' => '计划不存在。'); } if ($planInfo['status'] != Const_HzPlan::SPREAD) { return array('status' => 'error', 'msg' => '计划不在推广中。'); } $hzBrockId = Model_Broker_HzMapping::get_hz_broker_id($ajkBrokerId); if ($planInfo['user_id'] != $hzBrockId) { return array('status' => 'error', 'msg' => '计划不属于当前经纪人。'); } $blockId = $planInfo['blockId']; $priceId = $planInfo['priceId']; // 根据plan_id查pro_id $planning = Dao_Broker_HzPlan::get_planning($planId, 2); $proId = $planning ? $planning[0]['proid'] : 0; $bidQueueData = array('siteType' => Model_Choice_ActionQueue::ENUM_HAOZU, 'brokerId' => $ajkBrokerId, 'planId' => $planId, 'proId' => $proId, 'actionId' => Model_Choice_ActionQueue::ENUM_STOP_BY_HAND, 'createTime' => time(), 'createRemark' => '经纪人手动停止推广', 'operationId' => $ajkBrokerId, 'ip' => $ip); Model_Choice_ActionQueue::addBidQueen($bidQueueData); /** 更新计划状态为手工结束状态 */ //Bll_HzBidPlan::updatePlanStatus($planId, Const_HzPlan::MENUOVER); $updatePlanResult = Model_Plan_HzPlanBasic::updatePlan($planId, array('status' => Const_HzPlan::MENUOVER, 'stop_date' => time())); $updatePlanningResult = Model_Plan_HzPlanning::updatePropPlanStatusByPlanId($planId, Const_HzPlan::MENUOVER); // 计划和关系更新成功后坑才-1 if ($updatePlanResult && $updatePlanningResult) { Model_Choice_HzBidBucket::decrement_used_num($blockId, $priceId); } else { return array('status' => 'error', 'msg' => '更新计划或者关系失败。'); } return $result; }