Exemplo n.º 1
0
 public function fail()
 {
     return Model_Payment_ABidUnfreeze::updateRelation(array('id' => $this->_orderId), array('status' => 2), date('Y'));
 }
 public function dealTask($task)
 {
     // 处理解冻
     $charge_sn = false;
     $failNum = 0;
     $note = urlencode('推广房源' . $task['proId']);
     for ($i = 0; $i < $this->tryNum; $i++) {
         $charge_sn = Bll_PayAccount::cancel_frozen($task['userId'], $task['amount'], $task['proId'], $task['appName'], $task['serialNumber'], $note, true, $task['requestId']);
         printf('队列id %s, 房源id %s 尝试第%d次解冻, 结果是: %s' . PHP_EOL, $task['id'], $task['proId'], $i + 1, $charge_sn ? '成功' : '失败');
         if ($charge_sn) {
             break;
         }
         $failNum++;
     }
     if ($failNum > 0) {
         Model_Payment_ABidUnfreeze::updateRelation(array('id' => $task['id']), array('failNum' => $task['failNum'] + $failNum));
     }
     // 尝试多次还是失败
     if (!$charge_sn) {
         $this->failInfos[] = sprintf('[%s] 队列id: %d 房子id: %d 尝试解冻%d次后还是失败!' . PHP_EOL, date('Y-m-d H:i:s'), $task['id'], $task['proId'], $failNum);
     } else {
         // 更新队列处理成功
         Model_Payment_ABidUnfreeze::updateRelation(array('id' => $task['id']), array('status' => 1));
         $this->repairSpreadPlanState($task);
     }
     return true;
 }