private function getComboSpreadHouseList() { try { return Model_Combo_HouseRelation::data_access(Model_Combo_HouseRelation::SITE_TYPE_JP)->filter_by_op('id', '>', $this->_startId)->filter_by_op('state', '<', Model_Combo_HouseRelation::ENUM_COMBO_OFFLINE)->limit(self::BATCH_LIMIT)->sort('id', 'asc')->get_all(); } catch (Exception $e) { return array(); } }
public static function JpCancelHouseCombo($houseIds, $cityId, $ajkBrokerId) { if (!is_array($houseIds)) { $houseIds = array($houseIds); } foreach ($houseIds as $houseId) { $houseRelation = Model_Combo_HouseRelation::data_access('jp')->filter('houseId', $houseId)->filter('brokerId', $ajkBrokerId)->find_only(); if (!empty($houseRelation)) { $houseRelation->state = Model_Combo_HouseRelation::ENUM_HOUSE_HANDLE; $houseRelation->updateTime = date('Y-m-d H:i:s'); $houseRelation->save(); } } Bll_Combo_HouseRelation::notifyHouseUpDownTask($ajkBrokerId, $houseIds, $cityId, Bll_Combo_HouseRelation::SITE_TYPE_JP, Model_House_UpDown_Task::TYPE_PRO_STOP_COMBO, '房源手动停止套餐推广', __METHOD__, $ajkBrokerId); return Util_GlobalFunc::buildReturn(1, '取消套餐推广成功'); }
/** * 判断给定的房源中推广房源数量 * * @param $proIds * * @return int */ private function getInPlanHouseNumByProIds($proIds) { if (empty($proIds) || !is_array($proIds)) { return 0; } $res = Model_Combo_HouseRelation::data_access('ajk')->filter('houseId', $proIds)->filter_by_op('state', '<', Model_Combo_HouseRelation::ENUM_COMBO_OFFLINE)->find_all(); return count($res); }
public static function delete_combo_prop($params) { if (empty($params['pro_id'])) { return self::build_return(0, array("房源ID为空")); } $out_return[] = "队列(" . $params['id'] . ")开始处理"; //broker prop relation update $brokerPropRelation = Model_Combo_HouseRelation::data_access('jp')->filter('brokerId', $params['broker_id'])->filter('houseId', $params['pro_id'])->find_only(); if ($brokerPropRelation->state >= Model_Combo_HouseRelation::ENUM_HOUSE_ONLINE && $brokerPropRelation->state <= 199) { //房源在线,需要取消套餐推广 //写入下线日志 $data = self::build_prop_log($params, 21, "房源取消套餐推广", $params['broker_id']); Model_Log_HouseLogNew::create($data, date('Ymd'))->save(); $all_return[] = "房源" . $params['pro_id'] . "取消套餐推广日志写入成功"; //更新关系 $brokerPropRelation->state = Model_Combo_HouseRelation::ENUM_HOUSE_DELETE; $brokerPropRelation->save(); } //写房源删除日志 $data = self::build_prop_log($params, 3, "房源删除", 0); if (Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { $all_return[] = '写房源删除日志成功'; return self::build_return(1, $all_return); } else { $all_return[] = '写房源删除日志失败'; return self::build_return(0, $all_return); } }
public static function prepareComboHouseList(&$out) { $comboHouseId = Model_Combo_HouseRelation::data_access('jp')->filter('brokerId', $out['ajkBrokerId'])->filter_by_op('state', '>=', 101)->filter_by_op('state', '<=', 199)->get_all(); $comboHouses = $comboHouseIds = array(); //房源今日点击 房源累计点击 页面加载ajax获取 todo if ($comboHouseId) { foreach ($comboHouseId as $houseId) { $houseInfo = $out['houses'][$houseId['houseId']]; if (empty($houseInfo['base'])) { continue; } $comboHouses[$houseId['houseId']] = $houseInfo; $comboHouseIds[$houseId['houseId']] = $houseId['houseId']; } } $out['comboHouseList'] = $comboHouses; $out['comboHouseIds'] = $comboHouseIds; }
/** * 房源手动取消套餐推广 */ public function do_cancelHouseCombo() { $tempHouseIds = explode(',', $this->params['houseIds']); $houseIds = array(); foreach ($tempHouseIds as $k => $houseId) { $house = Bll_House_JpHouseInfo::getHouseInfoById($houseId); if ($house['base']['memberId'] != $this->jpBrokerId) { continue; } $houseComboInfo = Model_Combo_HouseRelation::data_access('jp')->filter('houseId', $house['base']->id)->find_only(); if ($houseComboInfo->state != Model_Combo_HouseRelation::ENUM_HOUSE_ONLINE) { continue; } $houseIds[] = $houseId; } if (empty($houseIds)) { $this->outPut(0, '房源信息有误,请重新选择房源'); } if (Bll_Combo_HouseRelation::houseStopComboSpread($this->brokerId, $this->cityId, $tempHouseIds, Bll_Combo_HouseRelation::SITE_TYPE_JP)) { $this->outPut(1, '房源停止推广成功'); /* foreach($houseIds as $houseId) { $houseIdx = Model_House_JpHouseIdx::data_access() ->filter('id', $houseId) ->filter('isDelete', Model_House_JpHouseIdx::ENUM_IS_DELETE_NO) ->find_only(); //删除竞价 更新数据 通知solr后端JOB做 if($houseIdx->bidSpreadId) { $plan = Model_Plan_Jp::data_access() ->filter('id', $houseIdx->bidSpreadId) ->find_only(); if($plan) { $houseIdx->bidSpreadId = 0; $houseIdx->updateTime = date('Y-m-d H:i:s'); $houseIdx->save(); if($plan->status = Model_Plan_Jp::ENUM_STATUS_ONLINE) { //发送结算 $params = array(); $params['spread_id'] = $plan->id; $params['log_status'] = 7; Bll_Plan_Bid_JpSettlement::getInstance()->settlement($params,'bid'); } $plan->status = Model_Plan_Jp::ENUM_STATUS_OVER; $plan->isDelete = 1; $plan->updateTime = date('Y-m-d H:i:s'); $plan->save(); //记录房源操作 $intTitle = Const_CrmHouseLog::V_OPERATION_TITLE_OUT_SHELVES; $intComment = Const_CrmHouseLog::V_OPERATION_COMMENT_HOUSE_SPREAD_OFFLINE; Bll_Log_JpHouse::getInstance()->logHouseOperation($houseIdx->id,$houseIdx->memberId,$intTitle,$intComment); //TO 初始化房源统计日志 Bll_House_JpBwAnalysis::getInstance()->openSaveBluewhaleHouse($houseIdx->id,date('Y-m-d'),$houseIdx->bidSpreadId,$plan->type); } } } */ } else { $this->outPut(0, '房源停止推广失败'); } }
/** * 505 套餐转入 * 1. 获取经纪人当前的套餐信息 * 2. 如果经纪人没有套餐 * 1. 下掉经纪人所有的的套餐房源&竞价计划 * 3. 判断经纪人当前在线的房源数和经纪人当前生效的套餐能够推广的房源数 * 1. 如果当前推广的房源数 大于 套餐可以推广的房源数,把多余的房子下掉(按关系表的更新时间,优先下线更新时间早的) * 2. 如果当前推广的房源数 小于 套餐可以推广的房源数,把套餐到期的房子下掉(按关系表的更新时间,优先上线更新时间晚的) * * @param $queueInfo */ public static function comboImport($params) { //除日志内容外,基本复制 self::comboExpire $allReturn = array("队列(" . $params['id'] . ")开始处理"); //获取经纪人当前在用的套餐 $brokerCombo = Bll_Combo_Broker_BrokerComboInfo::getBrokerCurrentCombo($params['broker_id'], Bll_Combo_Broker_BrokerComboInfo::SITE_TYPE_JP); //经纪人当前在线房源,按照update_time asc排序 $brokerOnlineProps = Model_Combo_HouseRelation::data_access('jp')->filter('brokerId', $params['broker_id'])->filter_by_op('state', '>=', 101)->filter_by_op('state', '<=', 199)->sort('updateTime', 'asc')->find_all(); $allReturn[] = "经纪人当前套餐ID:" . $brokerCombo['comboId'] . ",可推广jp房源数:" . $brokerCombo['jpPropNum'] . ",经纪人在线房源数:" . count($brokerOnlineProps); if (!empty($brokerCombo)) { //套餐转入,不用下房源,只需要上线房源即可,获取经纪人需要自动上架的房源,state=到期 按照update_time desc 排序 $brokerAutoProp = Model_Combo_HouseRelation::data_access('jp')->filter('brokerId', $params['broker_id'])->filter('state', Model_Combo_HouseRelation::ENUM_COMBO_EXPIRE)->sort('updateTime')->find_all(); if (!empty($brokerAutoProp)) { foreach ($brokerAutoProp as $key => $prop) { if ($key < $brokerCombo['jpPropNum'] - count($brokerOnlineProps)) { //房源信息验证 $check = self::propCheck($prop->houseId, $prop->brokerId); if (!$check['flg']) { $allReturn[] = "房源" . $prop->houseId . "无法上线," . $check['data']; continue; } //房源上线 更新数据 关系表状态 state=上线 $prop->state = Model_Combo_HouseRelation::ENUM_HOUSE_ONLINE; $prop->save(); //写入上线日志 $params['pro_id'] = $prop->houseId; $data = Bll_JpPropBll::build_prop_log($params, 20, "房源开始套餐推广", $params['broker_id']); Model_Log_HouseLogNew::create($data, date('Ymd'))->save(); $allReturn[] = "套餐转入,房源" . $params['pro_id'] . "开始套餐推广日志写入成功"; } } } } else { $allReturn[] = "套餐转入,当前没有查询到套餐,不处理"; } return Bll_JpPropBll::build_return(1, $allReturn); }