Example #1
0
 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;
 }
Example #3
0
 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));
 }
Example #5
0
 /**
  * 根据经纪人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();
     }
 }
Example #6
0
 /**
  * 获取所有排队中的精选计划
  *
  * @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();
     }
 }
Example #7
0
 /**
  * 获取租房房源的推广状态
  *
  * @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;
 }
Example #9
0
 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;
 }