private function choiceHouse($type = 1) { $params = array('planId' => 60732, 'brokerId' => 1168365, 'oldPrice' => 4500, 'newPrice' => 1000000); switch ($type) { case 1: var_dump(Bll_Plan_Bid_JpChoice::choicePromotion($params)); break; case 2: var_dump(Bll_Plan_Bid_JpChoice::stopSpread($params)); break; case 3: var_dump(Bll_Plan_Bid_JpChoice::expireSpread($params)); break; case 4: var_dump(Bll_Plan_Bid_JpChoice::noMoneySpread($params)); break; case 5: var_dump(Bll_Plan_Bid_JpChoice::removeFixSpread($params)); break; case 6: var_dump(Bll_Plan_Bid_JpChoice::changePriceForHouse($params)); break; case 7: $obj = new Bll_Plan_Bid_JpSettlement(); var_dump($obj->insert_settlement('bid', array('spread_id' => 60690, 'log_status' => 7))); break; } }
public static function stopJpBidData($list) { $checkList = self::checkList($list); if (!$checkList['status']) { return $checkList; } $planInfo = Model_Plan_Jp::data_access()->filter('id', $list['planId'])->find_only(); if ($planInfo->isDelete == Model_Plan_Jp::ENUM_IS_DELETE_YES) { return Bll_HzPropBll::build_return(0, '无效的竞价计划' . json_encode($list)); } if ($planInfo->status != Model_Plan_Jp::ENUM_STATUS_ONLINE) { return Bll_HzPropBll::build_return(0, '竞价计划不在推广中' . json_encode($list)); } if ($planInfo->type != Model_Plan_Jp::ENUM_TYPE_BID) { return Bll_HzPropBll::build_return(0, '竞价计划类型有误' . json_encode($list)); } if (!in_array($planInfo->bidVersion, array(Model_Plan_Jp::BIDVERSION_OLD, Model_Plan_Jp::BIDVERSION_CHOICE))) { return Bll_HzPropBll::build_return(0, '竞价计划version error' . json_encode($list)); } $houseIdx = Model_House_JpHouseIdx::data_access()->filter('id', $planInfo['houseId'])->find_only(); if (empty($houseIdx)) { return Bll_HzPropBll::build_return(0, '金铺房源信息没有' . json_encode($list)); } if ($houseIdx->bidSpreadId != $planInfo->id) { return Bll_HzPropBll::build_return(0, '金铺房源信息有误bidSpreadId' . json_encode($list)); } $houseIdx->bidSpreadId = 0; if (!$houseIdx->save()) { return Bll_HzPropBll::build_return(0, '金铺房源信息更新失败' . json_encode($list)); } //发送结算 $params = array(); $params['spread_id'] = $planInfo->id; $params['log_status'] = 7; Bll_Plan_Bid_JpSettlement::getInstance()->settlement($params, 'bid'); $planInfo->status = Model_Plan_Jp::ENUM_STATUS_OVER; $planInfo->isDelete = 1; $planInfo->updateTime = date('Y-m-d H:i:s'); if (!$planInfo->save()) { return Bll_HzPropBll::build_return(0, '金铺计划信息更新失败' . json_encode($list)); } //房源下架tosolr Bll_House_JpHouseInfo::updateHouseToSolr(1, $planInfo->houseId, 1); //通知更新q_spread_bid_update表 计算竞价系数 Model_Plan_JpSpreadBidUpdate::setBidUpdateQ($planInfo->id); //记录房源日志 $data = array('houseId' => $houseIdx->id, 'planId' => $planInfo->id, 'brokerId' => $list['brokerId'], 'cityId' => $planInfo->cityId, 'type' => 15, 'changeType' => 407, 'remark' => '房源' . $houseIdx->id . '移出定价计划/取消套餐推广。竞价' . $planInfo->id . '(id)取消竞价推广。', 'addDate' => date('Y-m-d H:i:s'), 'operatorId' => $list['operationId'], 'siteType' => 3); if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { return Bll_HzPropBll::build_return(0, array("日志写入失败")); } return Bll_HzPropBll::build_return(1, array('竞价' . $planInfo->id . '(id)取消竞价推广。')); }
/** * 把房源从竞价推广中移除 * @param $objHouse * @param int $p_intMemberId * @param $log_type:1,手动停止 2,房源过期 * @param int $do_choice 是否处理精选计划,如果为false 说明插入竞价队列表,在竞价队列JOB中处理 * @return mixed */ public static function removeBidHouseFromSpread($objHouse, $memberId = 0, $log_type = 1, $do_choice = true) { if ($log_type == 1) { $arr_log_param = array('spread_status' => Model_Log_JpSpreadStatusUpdate::ENUM_STATUS_SPREAD_STOP, 'house_log' => Model_Log_JpHouseUpDown::ENUM_BID_MEMBER_HOUSE_STOP); } elseif ($log_type == 2) { $arr_log_param = array('spread_status' => Model_Log_JpSpreadStatusUpdate::ENUM_STATUS_SPREAD_HOUSE_EXPIRE, 'house_log' => Model_Log_JpHouseUpDown::ENUM_JOB_HOUSE_EXPIRE); } $p_intHouseId = $objHouse->id; //检查推广信息 $arrResult = Bll_Plan_JpPlanManage::getInstance()->checkSpreadInfo($objHouse->bidSpreadId, $memberId, $objHouse->id); if (!$arrResult['success']) { return $arrResult; } $objSpread = $arrResult['data']; //从竞价中移除房源 if ($objSpread->type == Model_Plan_Jp::ENUM_TYPE_HP) { if ($objSpread->bidVersion == Model_Plan_Jp::BIDVERSION_CHOICE) { if (false == $do_choice) { return array('success' => true, 'data' => '操作成功'); } } //记录停止日志 Bll_Log_JpPlan::getInstance()->writeSpreadStatusLog($arr_log_param['spread_status'], $objHouse->bidSpreadId, '房源停止计划:触发结算前'); //发送结算 $params = array(); $params['spread_id'] = $objHouse->bidSpreadId; $params['log_status'] = 7; Bll_Plan_Bid_JpSettlement::getInstance()->settlement($params, 'bid'); //解除关系 $objHouse->bidSpreadId = 0; $objHouse->save(); //判断是否下架房源 $intXiaJia = 1; if (!empty($objHouse->fixSpreadId)) { $objModel = Model_Plan_Jp::data_access(); try { $objFixSpread = $objModel->find_by_pk($objHouse->fixSpreadId, false); } catch (Exception $e) { $objFixSpread = null; } if (!empty($objFixSpread) && $objFixSpread->status == 2) { $intXiaJia = 0; } } //操作下架 if ($intXiaJia) { //下架房源 self::updateHouseIsList($objHouse->id, $objHouse->houseType, 0); //记录房源操作 $intTitle = Const_CrmHouseLog::V_OPERATION_TITLE_OUT_SHELVES; $intComment = Const_CrmHouseLog::V_OPERATION_COMMENT_HOUSE_SPREAD_OFFLINE; Bll_Log_JpHouse::getInstance()->logHouseOperation($objHouse->id, $objHouse->memberId, $intTitle, $intComment); } //更新solr Bll_House_JpHouseInfo::updateHouseToSolr(1, $p_intHouseId, 1); //TO 初始化房源统计日志 Bll_House_JpBwAnalysis::getInstance()->openSaveBluewhaleHouse($objHouse->id, date('Y-m-d'), $objHouse->bidSpreadId, $objSpread->type); //竞价房源下线日志 Bll_Log_JpHouse::getInstance()->writeHouseLog($objHouse->id, $objHouse->bidSpreadId, 0, $objHouse->memberId, $arr_log_param['house_log']); $objSpread->isDelete = 1; $objSpread->save(); return array('success' => true, 'data' => '操作成功'); } }
/** * @param $intSpreadId * @param $intHouseId * @param null $memberId * @param bool $isSettlement * @return int * @throws Exception */ public function stopBidSpread($intSpreadId, $intHouseId, $memberId = null, $isSettlement = true) { if (!$memberId) { $apf = APF::get_instance(); $memberId = $apf->get_request()->get_member_id(); } $spreadInfo = Model_Plan_Jp::data_access()->filter('id', $intSpreadId)->find_only(); if (!$spreadInfo) { return false; } if ($isSettlement) { // add log: broker stop hp Bll_Log_JpPlan::getInstance()->writeSpreadStatusLog(Model_Log_JpSpreadStatusUpdate::ENUM_STATUS_SPREAD_STOP, $intSpreadId, '精选房源计划手动停止计划:触发结算前'); $params = array(); $params['spread_id'] = $spreadInfo->id; $params['log_status'] = 7; Bll_Plan_Bid_JpSettlement::getInstance()->settlement($params, 'choice'); } //解除i_house.spread_bid_id $objHouse = Model_House_JpHouseIdx::getPropInfoByPk($intHouseId); if (!$objHouse) { return false; } $objHouse->bidSpreadId = 0; $objHouse->save(); //记录日志 Bll_Log_JpPlan::getInstance()->writeSpreadHouseLog(1, $intHouseId, $intSpreadId, 2); //判断是否下架房源 $intHouseOp = 1; if (!empty($objHouse->fixSpreadId)) { $objFixSpread = Model_Plan_Jp::getPlanInfoByPk($objHouse->fixSpreadId); if (!empty($objFixSpread) && $objFixSpread->status == 2) { $intHouseOp = 0; } } //操作下架 if ($intHouseOp) { // 房源下架 Bll_House_JpHouseInfo::houseOutShelves(intval($intHouseId), $memberId); //记录房源操作 $intTitle = Const_CrmHouseLog::V_OPERATION_TITLE_OUT_SHELVES; $intComment = Const_CrmHouseLog::V_OPERATION_COMMENT_HOUSE_SPREAD_OFFLINE; Bll_Log_JpHouse::getInstance()->logHouseOperation($intHouseId, $memberId, $intTitle, $intComment); } Bll_Log_JpHouse::getInstance()->writeHouseLog($intHouseId, $intSpreadId, 0, $memberId, Model_Log_JpHouseUpDown::ENUM_BID_MEMBER_STOP); return Bll_House_JpHouseInfo::updateHouseToSolr(1, intval($intHouseId), 1); }