lip 1 هفته پیش
والد
کامیت
7dcd6c4de5
4فایلهای تغییر یافته به همراه89 افزوده شده و 1 حذف شده
  1. 80 0
      app/Http/Controllers/api/Wallet.php
  2. 5 0
      app/Models/User.php
  3. 1 1
      app/Services/UserService.php
  4. 3 0
      routes/api.php

+ 80 - 0
app/Http/Controllers/api/Wallet.php

@@ -9,6 +9,7 @@ use App\Models\Recharge;
 use App\Models\Wallet as WalletModel;
 use App\Models\Withdraw;
 use App\Models\User;
+use App\Models\Bank;
 use App\Services\BalanceLogService;
 use App\Services\Payment\SanJinService;
 use App\Services\PaymentOrderService;
@@ -286,4 +287,83 @@ class Wallet extends BaseController
         }
     }
 
+    public function addBank()
+    {
+        try {
+            $params = request()->validate([
+                'id' => 'nullable|integer',
+                'channel' => 'required',
+                'account' => 'required',
+                'card_no' => 'required',
+                'bank_name' => 'required',
+                'alias' => 'nullable',
+            ]);
+            $member_id = request()->user->member_id;
+            if (!empty($params['id'])) {
+                $info = Bank::where('id', $params['id'])->where('member_id', $member_id)->first();
+                if (empty($info)) throw new Exception(lang('找不到此记录'));
+                $info->channel = $params['channel'];
+                $info->account = $params['account'];
+                $info->card_no = $params['card_no'];
+                $info->bank_name = $params['bank_name'];
+                $info->alias = $params['alias'] ?? '';
+                $info->save();
+            } else {
+                $count = Bank::where('member_id', $member_id)->where('channel', $params['channel'])->count();
+                if ($count >= 5) throw new Exception(lang('已达添加上限'));
+                Bank::create([
+                    'member_id' => $member_id,
+                    'channel' => $params['channel'],
+                    'account' => $params['account'],
+                    'card_no' => $params['card_no'],
+                    'bank_name' => $params['bank_name'],
+                    'alias' => $params['alias'] ?? '',
+                ]);
+            }
+
+            return $this->success([],'提交成功');
+        } catch (ValidationException $e) {
+            return $this->error($e->validator->errors()->first());
+        } catch (\Exception $e) {
+            return $this->error($e->getMessage());
+        }
+    }
+
+    public function delBank()
+    {
+        try {
+            $params = request()->validate([
+                'id' => 'required|integer',
+            ]);
+            $member_id = request()->user->member_id;
+            $info = Bank::where('id', $params['id'])->where('member_id', $member_id)->first();
+            if (empty($info)) throw new Exception(lang('找不到此记录'));
+               
+            $info->delete();
+            return $this->success([],'删除成功');
+        } catch (ValidationException $e) {
+            return $this->error($e->validator->errors()->first());
+        } catch (\Exception $e) {
+            return $this->error($e->getMessage());
+        }
+    }
+
+    public function bankList()
+    {
+        try {
+            $params = request()->validate([
+                'channel' => 'nullable',
+            ]);
+            $member_id = request()->user->member_id;
+            $where = !empty($params['channel']) ? ['channel' => $params['channel']] : [];
+            $list = Bank::where('member_id', $member_id)->where($where)->get()->toArray();
+
+            return $this->success([
+                'list' => $list,
+            ]);
+        } catch (\Exception $e) {
+            return $this->error($e->getMessage());
+        }
+    }
+
 }

+ 5 - 0
app/Models/User.php

@@ -68,6 +68,11 @@ class User extends BaseModel
         return $this->belongsTo(Level::class, 'level', 'level')->select('id', 'level', 'level_name','img','recharge');
     }
 
+    public function agent()
+    {
+        return $this->belongsTo(User::class, 'agent_user_code', 'user_code')->select('id', 'user_code', 'account','first_name','member_id');
+    }
+
     public function setLanguage($language): void
     {
         $this->language = $language;

+ 1 - 1
app/Services/UserService.php

@@ -105,7 +105,7 @@ class UserService extends BaseService
     public static function paginate(array $search = [], $order = 'desc', $by = 'created_at')
     {
         $limit = isset($search['limit']) ? $search['limit'] : 15;
-        $query = static::$MODEL::with(['wallet','level'])
+        $query = static::$MODEL::with(['wallet','level','agent'])
             ->join('wallets', 'users.member_id', '=', 'wallets.member_id')
             ->where(self::getWhere($search));
         if ($by == 'available_balance') $by = "wallets.{$by}";

+ 3 - 0
routes/api.php

@@ -89,6 +89,9 @@ Route::middleware('check.token')->group(function () {
         Route::post("/autoPayout", [Wallet::class, 'autoPayout']);
         Route::post("/payout", [Wallet::class, 'payout']);
         Route::post("/withdraw", [Wallet::class, 'withdraw']);
+        Route::post("/addBank", [Wallet::class, 'addBank']);
+        Route::get("/delBank", [Wallet::class, 'delBank']);
+        Route::get("/bankList", [Wallet::class, 'bankList']);
     });
 });