public static function broker_restitution($params) { $all_return[] = "队列(" . $params['id'] . ")开始处理"; $all_return[] = '金铺系统返还'; //todo 查询用户所有定价计划,开启计划,上线房源 $ajk_broker_id = $params['broker_id']; //获取金铺经纪人broker_id $jpBrokerInfoObj = Model_Broker_JpBroker::getJpBrokerInfoByAjkBrokerId($params['broker_id']); $params['broker_id'] = $jpBrokerInfoObj->id; //获取由于余额用完停止的计划 $fixInfoObjs = Model_Plan_Jp::getNoBalancePlan($params['broker_id']); foreach ($fixInfoObjs as $fixInfoObj) { $plan_log = array(); $plan_log['id'] = $params['id']; $plan_log['plan_id'] = $fixInfoObj->id; $plan_log['broker_id'] = $ajk_broker_id; $plan_log['city_id'] = $fixInfoObj->cityId; $plan_log['type'] = $params['type']; $plan_log = Bll_JpFixPlanBll::build_plan_log($plan_log, 8, "系统返还", 0); //写计划日志 if (!Model_House_UpDown_PlanLog::create($plan_log, date('m'))->save()) { $all_return[] = "计划" . $plan_log['planId'] . "房源推广日志写入失败"; } else { $all_return[] = "计划" . $plan_log['planId'] . "房源推广日志写入成功"; } //计划开启 $fixInfoObj->status = 2; $fixInfoObj->stopReason = 0; if (!$fixInfoObj->save()) { return array('status' => 0, 'msg' => array("定价计划" . $plan_log['planId'] . ",更新失败")); } //获取房源列表 $houseInfoObjs = Model_House_JpHouseIdx::getHouseInfoByFixPlanId($plan_log['planId']); if ($houseInfoObjs) { foreach ($houseInfoObjs as $houseInfoObj) { $prop_log['id'] = $params['id']; $prop_log['pro_id'] = $houseInfoObj->id; $prop_log['plan_id'] = $plan_log['planId']; $prop_log['broker_id'] = $ajk_broker_id; $prop_log['city_id'] = $houseInfoObj->cityId; $prop_log['type'] = $params['type']; $prop_log = Bll_JpPropBll::build_prop_log($prop_log, 5, "系统返还", 0); //写房源日志 if (!Model_Log_HouseLogNew::create($prop_log, date('Ymd'))->save()) { $all_return[] = "房源" . $houseInfoObj->id . "系统返还后房源推广日志写入失败"; } else { $all_return[] = "房源" . $houseInfoObj->id . "系统返还后房源推广日志写入成功"; } //获取房源分表信息 $houseClass = Model_House_JpHouseIdx::getHouseTypeModelClass($houseInfoObj->houseType); $houseObj = $houseClass::getPropInfoByPk($houseInfoObj->id); //更新展示房源状态 $houseObj->isList = 1; if ($houseObj->save()) { $all_return[] = "houseType=" . $houseInfoObj->houseType . ",更新分表isList=1成功"; } else { $all_return[] = "houseType=" . $houseInfoObj->houseType . ",更新分表isList=1失败"; } } } } return Bll_JpPropBll::build_return(1, $all_return); }
public static function handle_plan_start($params) { $all_return = array(); $all_return[] = "队列(" . $params['id'] . ")开始处理"; //获取房源列表 $houseInfoObjs = Model_House_JpHouseIdx::getHouseInfoByFixPlanId($params['plan_id']); //写房源推广日志 if ($houseInfoObjs) { //todo 房源要上线 查余额判断 foreach ($houseInfoObjs as $houseInfoObj) { $params['pro_id'] = $houseInfoObj->id; $data = Bll_JpPropBll::build_prop_log($params, 5, "房源推广", $params['broker_id']); Model_Log_HouseLogNew::create($data, date('Ymd'))->save(); $all_return[] = "房源" . $params['pro_id'] . "上线日志写入"; } } //写计划日志 $data = self::build_plan_log($params, 4, "手动开始计划", $params['broker_id']); Model_House_UpDown_PlanLog::create($data, date('m'))->save(); $all_return[] = "手动开始计划日志写入"; return Bll_JpPropBll::build_return(1, $all_return); }
/** * 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); }