Exemplo n.º 1
0
 public function complete()
 {
     $this->beforeComplete();
     $transaction = Yii::$app->db->beginTransaction();
     try {
         $this->status = self::STATUS_COMPLETED;
         $this->clearCancelledMsg();
         if (!$this->save(false)) {
             throw new \Exception('订单错误!');
         }
         $orderVolume = new OrderVolume();
         $orderVolume->volume = $this->real_fee;
         $orderVolume->cost = $this->cost;
         $orderVolume->profit = bcsub($this->real_fee, $this->cost, 4);
         $orderVolume->order_id = $this->id;
         $orderVolume->payment = $this->payment;
         $orderVolume->user_id = $this->user_id;
         $orderVolume->store_id = $this->store_id;
         if (!$orderVolume->save(false)) {
             throw new \Exception('记录交易错误!');
         }
         $transaction->commit();
         $this->afterComplete();
         return true;
     } catch (\Exception $e) {
         $transaction->rollBack();
         return false;
     }
 }