Browse Source

Is the commission only paid at the first time

Tokumeikoi 5 years ago
parent
commit
c81cb8acca

+ 2 - 1
app/Http/Controllers/Admin/ConfigController.php

@@ -18,7 +18,8 @@ class ConfigController extends Controller
                     'invite_force' => (int)config('v2board.invite_force', 0),
                     'invite_commission' => config('v2board.invite_commission', 10),
                     'invite_gen_limit' => config('v2board.invite_gen_limit', 5),
-                    'invite_never_expire' => config('v2board.invite_never_expire', 0)
+                    'invite_never_expire' => config('v2board.invite_never_expire', 0),
+                    'commission_first_time_enable' => config('v2board.commission_first_time_enable', 1)
                 ],
                 'site' => [
                     'safe_mode_enable' => (int)config('v2board.safe_mode_enable', 0),

+ 8 - 6
app/Http/Controllers/User/OrderController.php

@@ -206,12 +206,14 @@ class OrderController extends Controller
         }
         // invite process
         if ($user->invite_user_id && $order->total_amount > 0) {
-            $order->invite_user_id = $user->invite_user_id;
-            $inviter = User::find($user->invite_user_id);
-            if ($inviter && $inviter->commission_rate) {
-                $order->commission_balance = $order->total_amount * ($inviter->commission_rate / 100);
-            } else {
-                $order->commission_balance = $order->total_amount * (config('v2board.invite_commission', 10) / 100);
+            if (!((int)config('v2board.commission_first_time', 1) && Order::where('user_id', $user->id)->first())) {
+                $order->invite_user_id = $user->invite_user_id;
+                $inviter = User::find($user->invite_user_id);
+                if ($inviter && $inviter->commission_rate) {
+                    $order->commission_balance = $order->total_amount * ($inviter->commission_rate / 100);
+                } else {
+                    $order->commission_balance = $order->total_amount * (config('v2board.invite_commission', 10) / 100);
+                }
             }
         }
         if (!$order->save()) {

+ 3 - 0
app/Http/Requests/Admin/ConfigSave.php

@@ -7,11 +7,14 @@ use Illuminate\Foundation\Http\FormRequest;
 class ConfigSave extends FormRequest
 {
     CONST RULES = [
+        // invite & commission
         'safe_mode_enable' => 'in:0,1',
         'invite_force' => 'in:0,1',
         'invite_commission' => 'integer',
         'invite_gen_limit' => 'integer',
         'invite_never_expire' => 'in:0,1',
+        'commission_first_time_enable' => 'in:0,1',
+        // site
         'stop_register' => 'in:0,1',
         'email_verify' => 'in:0,1',
         'app_name' => '',