public function get_plan($planId) { $da = Model_Plan_HzPlanBasic::data_access(); $da->filter('id', $planId); $da->filter('flag', 1); $data = $da->find(); return $data; }
/** * 获取经纪人精选推广的房源Id * * @param int $brokerId * @return array */ private function getHouseSpreadStateResultHz($brokerId) { $result = array('spread_house' => array(), 'not_spread_house' => array()); /** 获取状态发生变更的计划Id */ try { $dataAccess = Model_Plan_HzPlanBasic::data_access(''); $dataAccess->filter('ajkBrokerId', $brokerId); $dataAccess->filter('status', Const_HzPlan::SPREAD); $dataAccess->filter('plan_type', 2); $dataAccess->filter('flag', 1); $dataAccess->load_field(array('id', 'status', 'ajkBrokerId')); $houseSpreadPlanList = $dataAccess->get_all(); } catch (Exception $e) { return $result; } if (empty($houseSpreadPlanList)) { return $result; } $spreadPlanIds = array(); foreach ($houseSpreadPlanList as $houseSpreadPlan) { if ($houseSpreadPlan['status'] == 1) { $spreadPlanIds[] = $houseSpreadPlan['id']; } } /** 获取房源Id */ try { $dataAccess = Model_Plan_HzPlanning::data_access(''); $dataAccess->filter('plan_id', $spreadPlanIds); $dataAccess->filter('plan_type', Model_Plan_HzPlanning::BID_OR_CHOICE_PLAN); $dataAccess->load_field(array('plan_id', 'proid')); $promotionPropPlanningList = $dataAccess->get_all(); } catch (Exception $e) { return $result; } if (empty($promotionPropPlanningList)) { return $result; } foreach ($promotionPropPlanningList as $promotionPropPlanning) { if (in_array($promotionPropPlanning['plan_id'], $spreadPlanIds)) { $result['spread_house'][] = $promotionPropPlanning['proid']; } } return $result; }
public function handle_request() { $brokers = array(); $dao = Model_Plan_HzPlanBasic::data_access(); if ($this->brokerid) { $insql = 'a.user_id=? and '; $params = array($this->brokerid, $this->cityid); } else { $insql = ''; $params = array($this->cityid); } $datas = $dao->native_sql('SELECT DISTINCT(a.user_id) AS user_id FROM rent_db.promotion_planning_basic AS a LEFT JOIN rent_db.promotion_prop_planning AS b ON a.id=b.plan_id WHERE ' . $insql . ' b.`city_id`=? AND a.plan_type=2 AND a.`status`=1 AND b.is_valid=1;', $params); foreach ($datas as $data) { $brokerid = $data['user_id']; if (isset($brokers[$brokerid])) { continue; } $result = Uri_Curl::get($this->url . 'zufang/api/broker/transformmoney', array('userid' => $brokerid, 'status' => 5)); printf('[%s]开始处理租房: brokerId为 %s,处理结果:%s' . PHP_EOL, date('Y-m-d H:i:s'), $brokerid, $result); $brokers[$brokerid] = 1; } }
/** * Job执行逻辑 */ public function handle_request() { printf('[%s] lastLogId: %s' . PHP_EOL, date('Y-m-d H:i:s'), $this->lastLogId); // 获取任务 $tasks = Model_Plan_HzPlanBasic::data_access()->filter('plan_type', Const_HzPlan::BID_TYPE)->filter('status', 1)->filter('flag', 1)->filter('bid_version', Const_HzPlan::BID_VERSION_CHOICE)->filter_by_op('id', '>', $this->lastLogId)->limit($this->limit)->get_all(); if ($tasks === false) { printf('[%s] remark: %s' . PHP_EOL, date('Y-m-d H:i:s'), '获取数据失败'); exit; } if (empty($tasks)) { // 任务完成 printf('[%s] remark: %s' . PHP_EOL, date('Y-m-d H:i:s'), '任务执行完成'); $this->setStop(); $this->setShStopFlag(); exit; } // 循环处理任务 foreach ($tasks as $task) { $this->dealTask($task); $this->lastLogId = $task['id']; } //记录游标 $this->setFlag(array('lastLogId' => $this->lastLogId)); }
/** * 根据经纪人ID和PlanId获取精选计划 * * @param $ajkBrokerId * @param $planId * @return array|mixed|null */ public static function getChoiceByBrokerIdAndPlanIdEx($ajkBrokerId, $planId) { try { $oPlanBasic = Model_Plan_HzPlanBasic::data_access()->filter('plan_id', $planId)->filter('ajkBrokerId', $ajkBrokerId)->filter('bid_version', Const_HzPlan::BID_VERSION_CHOICE)->find_only(); return $oPlanBasic; } catch (Exception $e) { return array(); } }
/** * 获取所有排队中的精选计划 * * @param int $startTime * @return array */ public static function getAllChoiceWaitPlan($startTime) { try { return Model_Plan_HzPlanBasic::data_access()->filter('status', Const_HzPlan::WAITING)->filter('flag', 1)->filter('bid_version', Const_HzPlan::BID_VERSION_CHOICE)->filter('plan_type', Const_HzPlan::BID_TYPE)->filter_by_op('created', '>=', $startTime)->filter_by_op('created', '<', max(time() - 60, $startTime))->get_all(); } catch (Exception $e) { return array(); } }
/** * 获取租房房源的推广状态 * * @param int|array $houseId * @return array */ private function getHouseSpreadStateHz($houseId) { $result = array('spread_house' => array(), 'not_spread_house' => array()); try { $dataAccess = Model_Plan_HzPlanning::data_access(''); $dataAccess->filter('proid', $houseId); $dataAccess->filter('is_valid', 1); $dataAccess->filter('plan_type', Model_Plan_HzPlanning::BID_OR_CHOICE_PLAN); $housePlanRelationList = $dataAccess->get_all(); } catch (Exception $e) { return $result; } if (empty($housePlanRelationList)) { $result['not_spread_house'] = is_array($houseId) ? $houseId : array($houseId); return $result; } $planHouseMapping = array(); foreach ($housePlanRelationList as $housePlanRelation) { $planHouseMapping[$housePlanRelation['plan_id']] = $housePlanRelation['proid']; } try { $dataAccess = Model_Plan_HzPlanBasic::data_access(''); $dataAccess->filter('id', array_keys($planHouseMapping)); $dataAccess->filter('flag', 1); $dataAccess->filter('plan_type', Model_Plan_HzPlanning::BID_OR_CHOICE_PLAN); $dataAccess->filter('bid_version', 2); $dataAccess->filter('status', 1); $planList = $dataAccess->get_all(); } catch (Exception $e) { $result['not_spread_house'] = is_array($houseId) ? $houseId : array($houseId); return $result; } if (empty($planList)) { $result['not_spread_house'] = is_array($houseId) ? $houseId : array($houseId); return $result; } foreach ($planList as $planInfo) { $result['spread_house'][] = $planHouseMapping[$planInfo['id']]; } if (!is_array($houseId)) { $houseId = array($houseId); } $result['not_spread_house'] = array_diff($houseId, $result['spread_house']); return $result; }
/** * 获取租房 精选状态发生变更的房源 * * @param int $startTime * @param int $endTime * @param int $startId * @return array */ private function getHouseSpreadStateChangeResultHz($startTime, $endTime, $startId) { $result = array('spread_house' => array(), 'not_spread_house' => array(), 'last_id' => 0); /** 获取状态发生变更的计划Id */ try { $dataAccess = Model_Plan_HzPlanBasic::data_access(''); $dataAccess->filter_by_op('last_update', '>=', date('Y-m-d H:i:s', $startTime)); $dataAccess->filter_by_op('last_update', '<=', date('Y-m-d H:i:s', $endTime)); if ($startId > 0) { $dataAccess->filter_by_op('id', '>', $startId); } $dataAccess->load_field(array('id', 'status', 'ajkBrokerId')); $dataAccess->sort('id', 'asc'); $dataAccess->limit(1000); $stateChangePlanList = $dataAccess->get_all(); } catch (Exception $e) { return $result; } if (empty($stateChangePlanList)) { return $result; } $spreadPlanIds = array(); $notSpreadPlanIds = array(); foreach ($stateChangePlanList as $stateChangePlan) { $result['last_id'] = $stateChangePlan['id']; if ($stateChangePlan['status'] == 1) { $spreadPlanIds[] = $stateChangePlan['id']; } else { $notSpreadPlanIds[] = $stateChangePlan['id']; } } /** 获取房源Id */ try { $dataAccess = Model_Plan_HzPlanning::data_access(''); $dataAccess->filter('plan_id', array_merge($spreadPlanIds, $notSpreadPlanIds)); $dataAccess->filter('plan_type', Model_Plan_HzPlanning::BID_OR_CHOICE_PLAN); $dataAccess->load_field(array('plan_id', 'proid')); $promotionPropPlanningList = $dataAccess->get_all(); } catch (Exception $e) { return $result; } if (empty($promotionPropPlanningList)) { return $result; } foreach ($promotionPropPlanningList as $promotionPropPlanning) { if (in_array($promotionPropPlanning['plan_id'], $spreadPlanIds)) { $result['spread_house'][] = $promotionPropPlanning['proid']; } elseif (in_array($promotionPropPlanning['plan_id'], $notSpreadPlanIds)) { $result['not_spread_house'][] = $promotionPropPlanning['proid']; } } return $result; }
public static function update_history_bids($plan_ids) { if (empty($plan_ids)) { return false; } $plan_ids = is_array($plan_ids) ? $plan_ids : array($plan_ids); $lists = Model_Plan_HzPlanBasic::data_access()->set_field('flag', 0)->set_field('last_update', time())->set_field('order_update', time())->filter_by_op('id', 'in', $plan_ids)->update(); return $lists; }