Exemplo n.º 1
0
 /**
  * 动作 8
  * 房源取消套餐推广,导致精选停止(房源日志发起)
  * 结算
  * 维护坑位表(-1)如果精选已经停止则不需要-1
  * 更新计划为停止状态
  * 通知solr下(停止的房源)
  * 记录房源日志(停止的房源)
  * 根据停止的房源,取出坑位里面的推广、排队房源
  * 计算排名
  * 更新计划状态(坑位里面的异动房源更新状态)
  * 通知solr(坑位里面的异动房源通知solr)
  * 记房源日志(坑位里面的房源异动日志)
  * @param array $params
  * @return array|bool
  */
 public static function removeComboForChoice($params = array())
 {
     self::$qInfo = $params;
     // 检查参数
     $checkParams = self::checkParams($params);
     if (!$checkParams['status']) {
         return $checkParams;
     }
     // 获取信息,组装$params
     $joinParams = self::joinParams($params);
     if (!$joinParams['status']) {
         return $joinParams;
     }
     $all_return = array();
     // 如果不在线或者排队
     if (!in_array($params['status'], array(Const_HzPlan::SPREAD, Const_HzPlan::WAITING))) {
         if ($params['flag']) {
             Dao_Broker_HzPlan::update_history_bids($params['planId']);
         }
         return Bll_HzPropBll::build_return(1, array("精选已经删除"));
     }
     // 坑位-1
     Model_Choice_HzBidBucket::decrement_used_num($params['blockId'], $params['priceId']);
     // 租房精选房源取消推广
     $ret = Bll_HzBidPlan::choicePropOutBid($params['userId'], $params['proId']);
     if (!$ret['status']) {
         $ret['msg'] = Bll_HzFixPlan::get_message_from_code($ret['msg']);
         return $ret;
     }
     // 需要删除竞价
     Dao_Broker_HzPlan::update_history_bids($params['planId']);
     $all_return[] = $ret['msg'];
     $remark = "房源移出套餐导致精选房源{$params['proId']}停止推广";
     $type = $params['status'] == 1 ? 15 : 16;
     $data = self::build_prop_log($params, $type, $remark, $params['brokerId']);
     if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) {
         return Bll_HzPropBll::build_return(0, array($remark . "日志写入失败"));
     } else {
         $all_return[] = $remark . "日志写入";
     }
     $msg = self::choiceComputeRank($params['blockId'], $params['priceId']);
     return Bll_HzPropBll::build_return(1, array_merge($all_return, $msg));
 }