Пример #1
0
 public static function deletePlan($id)
 {
     return Model_Plan_HzPlanBasic::updatePlan($id, array('flag' => 0)) > 0 ? true : false;
 }
Пример #2
0
 /**
  * 重新计算坑位数
  *  获取精选计划,根据计划的板块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;
 }
Пример #3
0
 /**
  * 精选房源板块变更,修正计划的板块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);
 }
Пример #4
0
 /**
  * 经纪人手动停止精选推广
  * 只将计划的状态状态设置为 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;
 }