Beispiel #1
0
 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;
     }
 }
Beispiel #2
0
 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)取消竞价推广。'));
 }
Beispiel #3
0
 /**
  * 把房源从竞价推广中移除
  * @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);
 }