Ejemplo n.º 1
0
 public function createPay($Pay)
 {
     $oOrder = new Lm_Order();
     $oUser = new Lm_User();
     $this->db->begin();
     $Pay['PayId'] = date("YmdHis", $Pay['PayedTime']) . sprintf("%04d", rand(1, 9999));
     $Date = date("Ym", $Pay['PayedTime']);
     $table_date = $this->createUserPayTableDate($Date);
     $table_user = $this->createUserPayTableUser($Pay['AcceptUserId']);
     $table_first = Base_Widget::getDbTable($this->table_first);
     $Date = $this->db->insert($table_date, $Pay);
     $User = $this->db->insert($table_user, $Pay);
     $first = $this->db->insert($table_first, $Pay);
     $OrderUpdateArr = array('PayId' => $Pay['PayId'], 'OrderStatus' => 1);
     $OrderUpdate = $oOrder->updateOrder($Pay['OrderId'], $Pay['AcceptUserId'], $OrderUpdateArr);
     //给收款方加余额
     $UserCoinUpdate = $oUser->updateUserCoin($Pay['AcceptUserId'], $Pay['Coin']);
     //给支付方加积分,如无支付方帐号,则不加
     $UserCreditUpdate = $Pay['PayUserId'] ? $oUser->updateUserCredit($Pay['PayUserId'], $Pay['Coin']) : 1;
     if ($Date && $User && $OrderUpdate && $UserCoinUpdate && $UserCreditUpdate) {
         $this->db->commit();
         return $Pay['OrderId'];
     } else {
         $this->db->rollBack();
         return false;
     }
 }
Ejemplo n.º 2
0
 public function ExchangeFail($ExchangeId)
 {
     $ExchangeInfo = $this->getQueuedExchange($ExchangeId);
     if ($ExchangeInfo['ExchangeId']) {
         $this->db->begin();
         //移除到兑换失败队列
         unset($ExchangeInfo['ToSendTime']);
         $addErrorExchangeQueue = $this->addErrorExchange($ExchangeInfo);
         $delExchangeQueue = $this->deleteExchangeQueue($ExchangeInfo['ExchangeId']);
         $updateOrderStatus = false;
         //更新订单状态
         if ($ExchangeInfo['OrderId']) {
             $oOrder = new Lm_Order();
             $updateOrderStatus = $oOrder->updateOrder($ExchangeInfo['OrderId'], $ExchangeInfo['UserId'], array('OrderStatus' => '3'));
         } else {
             $updateOrderStatus = true;
         }
         //退款
         $oUser = new Lm_User();
         $coinUpdate = $oUser->updateUserCoin($ExchangeInfo['UserId'], $ExchangeInfo['Coin']);
         if ($addErrorExchangeQueue && $delExchangeQueue && $updateOrderStatus && $coinUpdate) {
             $this->db->commit();
             return true;
         } else {
             $this->db->rollback();
             return false;
         }
     } else {
         return false;
     }
 }