/** * 动作 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)); }