public function DownHouse($brokerId = 0, $promitionHouseNum = 0) { $brokerId = intval($brokerId); $promitionHouseNum = intval($promitionHouseNum); if ($brokerId == 0 || $promitionHouseNum == 0) { return false; } //将二手房经纪人ID转成商业地产ID $jpBrokerInfoObj = Model_Broker_JpBroker::getJpBrokerInfoByAjkBrokerId($brokerId); if (!$jpBrokerInfoObj || $jpBrokerInfoObj->id == 0) { return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}没有找到"); } //获取这个经纪人的有效计划 $OnlinePlan = Model_Plan_Jp::getOnlinePlanByMemberId($jpBrokerInfoObj->id); if (!$OnlinePlan) { return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}没有有效计划"); } $onlineplan = array(); foreach ($OnlinePlan as $plan) { $onlineplan[] = $plan->id; $isBidVersion[$plan->id]['bidVersion'] = $plan->bidVersion; } //获取这些有效计划下的房子 $houseIdx = Model_House_JpHouseIdx::getHouseInfoByFixPlanId($onlineplan); if (!$houseIdx) { return Util_GlobalFunc::buildReturn(0, "该经纪人:{$brokerId}有效计划下的房子"); } $housecount = count($houseIdx); echo '正在处理商业地产' . $brokerId . ',总推广房源数' . $housecount . ',api中允许推广数量' . $promitionHouseNum; $allReturn = array(); //和套餐的推广房源做比较,如果当前在线推广的房子大于套餐推广房子,则下房源将较早推广的房子下架 if ($housecount > $promitionHouseNum) { $offNum = $housecount - $promitionHouseNum; for ($i = $offNum; $i >= 1; $i--) { if (empty($houseIdx[$i])) { continue; } if ($houseIdx[$i]->bidSpreadId) { $resultBid = Bll_House_JpHouseInfo::removeBidHouseFromSpread($houseIdx[$i], $jpBrokerInfoObj->id, 1, false); if (!$resultBid['success']) { $allReturn[] = $resultBid['data']; } } $resultFix = Bll_House_JpHouseInfo::removeFixHouseFromSpread($houseIdx[$i], $jpBrokerInfoObj->id); if (!$resultFix['success']) { $allReturn[] = $resultFix['data']; } } } return Util_GlobalFunc::buildReturn(1, $allReturn); }
public static function broker_balance_less($params) { $all_return[] = "队列(" . $params['id'] . ")开始处理"; $all_return[] = '金铺账户余额不足'; $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::getOnlinePlanByMemberId($params['broker_id']); if ($fixInfoObjs) { 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, 7, "余额不足计划停止", 0); if (!Model_House_UpDown_PlanLog::create($plan_log, date('m'))->save()) { $all_return[] = "计划" . $plan_log['planId'] . "计划停止推广日志写入失败"; } else { $all_return[] = "计划" . $plan_log['planId'] . "计划停止推广日志写入成功"; } if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) { //更新计划 $fixInfoObj->status = 4; $fixInfoObj->stopReason = 2; 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, 6, "账户余额不足房源下线", 0); //写房源日志 if (!Model_Log_HouseLogNew::create($prop_log, date('Ymd'))->save()) { $all_return[] = "房源" . $houseInfoObj->id . "房源停止推广日志写入失败"; } else { $all_return[] = "房源" . $houseInfoObj->id . "房源停止推广日志写入成功"; } if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) { //获取房源分表信息 $houseClass = Model_House_JpHouseIdx::getHouseTypeModelClass($houseInfoObj->houseType); $houseObj = $houseClass::getPropInfoByPk($houseInfoObj->id); //更新删除房源时间 $houseObj->isList = 0; if ($houseObj->save()) { $all_return[] = "houseType=" . $houseInfoObj->houseType . ",更新分表isList=0成功"; } else { $all_return[] = "houseType=" . $houseInfoObj->houseType . ",更新分表isList=0失败"; } } } } } } return Bll_JpPropBll::build_return(1, $all_return); }