Ken 5 дней назад
Родитель
Сommit
fb057f5302
3 измененных файлов с 23 добавлено и 34 удалено
  1. 1 27
      app/Http/Controllers/admin/Rebate.php
  2. 12 1
      app/Models/Rebate.php
  3. 10 6
      app/Services/RebateService.php

+ 1 - 27
app/Http/Controllers/admin/Rebate.php

@@ -51,33 +51,7 @@ class Rebate extends Controller
             if (strtotime($rebate->date) >= strtotime($date)) {
                 throw new Exception('未到发放时间', HttpStatus::CUSTOM_ERROR);
             }
-
-//            $rebate_ratio = Config::where('field', 'rebate')->first()->val;
-//            $rebate->rebate_ratio = $rebate_ratio;
-
-
-            $huishuiAmount = 0;
-            //限额
-            $huishui_restriction = Config::where('field', 'huishui_restriction')->first()->val;
-            //比例
-            $huishui_percentage = Config::where('field', 'huishui_percentage')->first()->val;
-            $lose = $rebate->profit * -1;
-            if ($lose >= $huishui_restriction) {
-                $huishuiAmount = bcmul($lose, $huishui_percentage, 2); // 返利金额
-            }
-            $rebate->huishui_restriction = $huishui_restriction;
-            $rebate->huishui_percentage = $huishui_percentage;
-            $rebate->huishui_amount = $huishuiAmount;
-            $rebate->status = RebateModel::STATUS_FAN_YONG;
-            $rebate->audited_by = request()->user->username;
-            $rebate->save();
-
-            if ($huishuiAmount > 0) {
-                $res = WalletService::updateBalance($rebate->member_id, $huishuiAmount);
-                BalanceLogService::addLog($rebate->member_id, $huishuiAmount, $res['before_balance'], $res['after_balance'], "回水", $rebate->id, "输{$lose}; 回水{$huishuiAmount}");
-            }
-
-
+            RebateService::BibiReturn($rebate, $rebate->effective_betting_amount);
             DB::commit();
         } catch (ValidationException $e) {
             DB::rollBack();

+ 12 - 1
app/Models/Rebate.php

@@ -5,6 +5,17 @@ namespace App\Models;
 use Carbon\Carbon;
 use Illuminate\Support\Facades\Log;
 
+/**
+ * @property double $effective_betting_amount
+ * @property string $date
+ * @property double $rebate_ratio
+ *
+ *
+ * @property $member_id
+ * @property $status
+ * @property $amount
+ * @property $audited_by
+ */
 class Rebate extends BaseModel
 {
 
@@ -26,7 +37,7 @@ class Rebate extends BaseModel
         Log::error(json_encode($data));
         $rebate = static::where('date', $data['date'])
             ->where('member_id', $data['member_id'])->first();
-        if($rebate){
+        if ($rebate) {
             $profit = bcadd($rebate->profit, $data['profit'], 2);
             $rebate->profit = $profit;
             $rebate->save();

+ 10 - 6
app/Services/RebateService.php

@@ -4,6 +4,7 @@ namespace App\Services;
 
 use App\Models\Config;
 use App\Models\Rebate;
+use App\Models\Rebate as RebateModel;
 use Carbon\Carbon;
 
 class RebateService extends BaseService
@@ -54,7 +55,7 @@ class RebateService extends BaseService
      */
     public static function findOne(array $search): ?Rebate
     {
-        return self::model()::where(static::getWhere($search))->first();
+        return self::$MODEL::where(static::getWhere($search))->first();
     }
 
     /**
@@ -94,7 +95,7 @@ class RebateService extends BaseService
     }
 
     //比比返水
-    public static function BibiReturn($rebate, $amount)
+    public static function BibiReturn(Rebate $rebate, $amount): bool
     {
         //比比返   返水比例
         $rebate_ratio = Config::where('field', 'rebate')->first()->val;
@@ -105,11 +106,14 @@ class RebateService extends BaseService
         $rebateAmount = floatval($rebateAmount);
         if ($rebateAmount > 0) {
             $res = WalletService::updateBalance($rebate->member_id, $rebateAmount);
-            BalanceLogService::addLog($rebate->member_id, $rebateAmount, $res['before_balance'], $res['after_balance'], "笔笔返", $rebate->id, "投注{$amount};比例:{$percentage}%");
+            BalanceLogService::addLog($rebate->member_id, $rebateAmount, $res['before_balance'], $res['after_balance'], "笔笔返", $rebate->id, "日期:{$rebate->date};有效投注:{$amount};比例:{$percentage}%");
         }
-        $rebate->increment('effective_betting_amount', $amount);
-        $rebate->increment("amount", $rebateAmount);
-        return true;
+        $rebate->rebate_ratio = $rebate_ratio;
+        $rebate->status = RebateModel::STATUS_FAN_YONG;
+        $rebate->amount = $rebateAmount;
+        $rebate->audited_by = request()->user->username;
+        if (false !== $rebate->save()) return true;
+        return false;
     }
 
 }