Browse Source

user balance youhua

zz 6 years ago
parent
commit
929bd9668e

+ 17 - 10
app/Modules/Subscribe/Models/BookOrder.php

@@ -95,40 +95,47 @@ class BookOrder extends Model
     public static function addOrderRecodeAndDecrUserBalance($data, $uid)
     {
         DB::beginTransaction();
-        $res = $result1 = $result2 = null;
+        $res = $result1 = $result2 = $result = null;
         try {
             $user = UserService::getById($uid);
             if ($user->charge_balance >= $data['fee']) {
                 $data['charge_balance'] = $data['fee'];
                 $data['reward_balance'] = 0;
                 $res = BookOrder::create($data);
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('charge_balance', $data['fee']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('charge_balance', $data['fee']);
+                $user->balance -=   $data['fee'];
+                $user->charge_balance -=   $data['fee'];
             } elseif ($user->charge_balance > 0) {
 
                 $data['charge_balance'] = $user->charge_balance;
                 $data['reward_balance'] = $data['fee'] - $user->charge_balance;
                 $res = BookOrder::create($data);
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('charge_balance', $user->charge_balance);
-                $result3 = $user->decrement('reward_balance', $data['reward_balance']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('charge_balance', $user->charge_balance);
+                //$result3 = $user->decrement('reward_balance', $data['reward_balance']);
+                $user->balance -=   $data['fee'];
+                $user->charge_balance =   0;
+                $user->reward_balance -=   $data['reward_balance'];
             } else {
                 $data['charge_balance'] = 0;
                 $data['reward_balance'] = $data['fee'];
                 $res = BookOrder::create($data);
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('reward_balance', $data['fee']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('reward_balance', $data['fee']);
+                $user->balance -=   $data['fee'];
+                $user->reward_balance -=   $data['fee'];
             }
             if ($user->is_new == 1) {
                 $user->is_new = 0;
-                $user->save();
             }
+            $result = $user->save();
 
         } catch (\Exception $e) {
             \Log::info($e);
         }
 
-        if ($res && $result2 && $result1) {
+        if ($res && $result) {
             DB::commit();
             return true;
         }

+ 18 - 11
app/Modules/Subscribe/Services/ChapterOrderService.php

@@ -135,39 +135,46 @@ class ChapterOrderService
         $chapterOrder->distribution_channel_id = $data['distribution_channel_id'];
         $user = UserService::getById($uid);
         DB::beginTransaction();
-        $res = $result1 = $result2 = null;
+        $res = $result1 = $result2 = $result = null;
         try {
             if ($user->charge_balance >= $data['fee']) {
                 $chapterOrder->charge_balance = $data['fee'];
                 $chapterOrder->reward_balance = 0;
                 $res = $chapterOrder->save();
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('charge_balance', $data['fee']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('charge_balance', $data['fee']);
+                $user->balance -= $data['fee'];
+                $user->charge_balance -= $data['fee'];
             } elseif ($user->charge_balance > 0) {
                 $chapterOrder->charge_balance = $user->charge_balance;
                 $chapterOrder->reward_balance = $data['fee'] - $user->charge_balance;
                 $reward = $data['fee'] - $user->charge_balance;
                 $res = $chapterOrder->save();
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('charge_balance', $user->charge_balance);
-                $result3 = $user->decrement('reward_balance', $reward);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('charge_balance', $user->charge_balance);
+                //$result3 = $user->decrement('reward_balance', $reward);
+
+                $user->balance -= $data['fee'];
+                $user->charge_balance = 0;
+                $user->reward_balance -= $reward;
             } else {
                 $chapterOrder->charge_balance = 0;
                 $chapterOrder->reward_balance = $data['fee'];
                 $res = $chapterOrder->save();
-                $result1 = $user->decrement('balance', $data['fee']);
-                $result2 = $user->decrement('reward_balance', $data['fee']);
+                //$result1 = $user->decrement('balance', $data['fee']);
+                //$result2 = $user->decrement('reward_balance', $data['fee']);
+                $user->balance -= $data['fee'];
+                $user->reward_balance -=  $data['fee'];
             }
             if ($user->is_new == 1) {
                 $user->is_new = 0;
-                $user->save();
             }
-
+            $result = $user->save();
         } catch (\Exception $e) {
             //\Log::info($e);
         }
 
-        if ($res && $result1 && $result2) {
+        if ($res && $result) {
             DB::commit();
             return true;
         }

+ 8 - 2
app/Modules/User/Models/User.php

@@ -118,10 +118,16 @@ class User extends Model
      */
     static function addBalance($uid, $fee, $charge, $given)
     {
-        $res1 = User::where('id', $uid)->increment('balance', $fee);
+        /*$res1 = User::where('id', $uid)->increment('balance', $fee);
         $res2 = User::where('id', $uid)->increment('charge_balance', $charge);
         if ($given) User::where('id', $uid)->increment('reward_balance', $given);
-        return $res1 && $res2;
+        return $res1 && $res2;*/
+        return User::where('id', $uid)->update([
+            'balance'=>DB::raw('balance+'.$fee),
+            'charge_balance'=>DB::raw('charge_balance+'.$charge),
+            'reward_balance'=>DB::raw('reward_balance+'.$given)
+            ]
+        );
     }
 
     //获取推广用户总数