public function dealTask($task)
 {
     $planId = $task['id'];
     // 查询对应关系
     $planning = Model_Plan_HzPlanning::getPlanByPlanId($planId);
     if (count($planning) > 0) {
         return true;
     }
     // 不需要处理
     // 获取当时的房子
     Model_Choice_ActionQueue::data_access(date('m', $task['created']))->filter('siteType', 2)->filter('status', self::ENUM_FAIL)->get_row();
     // 解冻
     // 更新计划删除
     // 记录有问题精选计划id
     file_put_contents('/data1/logs/Zufang_FixExistOnLineChoicePlanNoPlanning_ErrorPlanIds', $planId . PHP_EOL, FILE_APPEND);
     return true;
 }
 public function handle_request()
 {
     $sqlSelectErrorQueue = 'SELECT * from q_new_bid_deal_06 WHERE `actionId`=2 AND `siteType`=2 AND `status`=2 AND `id` >7330;';
     $errorQueueList = Model_Choice_ActionQueue::data_access(date('m'))->native_sql($sqlSelectErrorQueue, array());
     foreach ($errorQueueList as $errorQueue) {
         $this->log("开始修复: ID={$errorQueue['id']}\tBrokerId={$errorQueue['brokerId']}\tPlanId={$errorQueue['planId']}");
         $ajkBrokerExtend = Model_Broker_AjkBrokerExtend::getDataByBrokerId($errorQueue['brokerId']);
         /** TODO 添加获取二手房经纪人信息为空日志 */
         if (empty($ajkBrokerExtend)) {
             $this->log(sprintf('获取经纪人(%d)的UserId失败(%d)。', $errorQueue['brokerId'], $errorQueue['id']));
             continue;
         }
         $planExtend = Dao_Broker_HzPlan::get_bid_sn($errorQueue['planId']);
         /** TODO 添加获取SN 失败日志 */
         if (empty($planExtend)) {
             $this->log(sprintf('获取计划(%d)的SN失败(%d)。', $errorQueue['planId'], $errorQueue['id']));
             continue;
         }
         $planInfo = Dao_Broker_HzPlan::get_plan($errorQueue['planId']);
         /** TODO 添加获取计划信息失败日志*/
         if (empty($planInfo)) {
             $this->log(sprintf('获取计划(%d)的信息失败(%d)。', $errorQueue['planId'], $errorQueue['id']));
             continue;
         }
         //精选结算
         $amount = $planInfo['total_consume'];
         $note = urlencode(sprintf('精选推广(%d)扣费失败修复', $errorQueue['planId']));
         $this->log("传递的参数:UserId={$ajkBrokerExtend['userId']}\tamount={$amount}\tplanId={$errorQueue['planId']}\tSN={$planExtend['sn']}");
         $charge_sn = Bll_PayAccount::cancel_frozen($ajkBrokerExtend['userId'], $amount, $errorQueue['planId'], Const_PaymentApp::HZ_CHOICE, $planExtend['sn'], $note, true);
         if ($charge_sn['data']['status'] === 'ok') {
             $this->log('修复成功。');
         } else {
             $this->log('修复失败。');
         }
         $this->log(print_r($charge_sn, true));
     }
     return 'success';
 }
Example #3
0
 /**
  * 获取精选计划解冻失败的记录
  *
  * @param int $startId
  * @param int $siteType
  * @param int $splitSuffix
  * @return array
  */
 public static function getFailedAbandonFee($startId, $siteType = self::ENUM_HAOZU, $splitSuffix = 0)
 {
     if (empty($splitSuffix)) {
         $splitSuffix = date('m');
     }
     try {
         return Model_Choice_ActionQueue::data_access($splitSuffix)->filter('siteType', $siteType)->filter('status', self::ENUM_FAIL)->filter('actionId', self::ENUM_STOP_BY_HAND)->filter('updateRemark', '扣费失败')->filter_by_op('id', '>', $startId)->get_row();
     } catch (Exception $e) {
         return array();
     }
 }