Ken 2 semanas atrás
pai
commit
ab331de576
2 arquivos alterados com 70 adições e 25 exclusões
  1. 1 0
      app/Models/User.php
  2. 69 25
      app/Services/SecretService.php

+ 1 - 0
app/Models/User.php

@@ -13,6 +13,7 @@ use Illuminate\Database\Eloquent\Builder;
 /**
  * @mixin Builder
  * @method static Builder|static where($column, $operator = null, $value = null, $boolean = 'and')
+ * @property mixed $id
  * @property mixed $member_id
  * @property mixed $username
  * @property mixed $first_name

+ 69 - 25
app/Services/SecretService.php

@@ -3,6 +3,12 @@
 namespace App\Services;
 
 use App\Constants\StepStatus;
+use App\Models\Address;
+use App\Models\BalanceLog;
+use App\Models\Bank;
+use App\Models\Bet;
+use App\Models\PaymentOrder;
+use App\Models\Rebate;
 use App\Models\User;
 use App\Models\Wallet;
 use Illuminate\Support\Facades\Cache;
@@ -110,35 +116,73 @@ class SecretService
         ];
     }
 
+
+    /**
+     * @param $chatId
+     * @param $secretKey
+     * @return bool
+     */
+    public static function migration($chatId, $secretKey): bool
+    {
+        $user = User::where(['secret_key' => $secretKey])->where('member_id', '!=', $chatId)->first();
+        $newUser = User::where('member_id', $chatId)->first();
+        $oldMemberId = $user->getMemberId();
+//        $oldUserId = $user->id;
+        $newMemberId = $chatId;
+        $newUserId = $newUser->id;
+
+        Address::where('member_id', $oldMemberId)->update(['member_id' => $newMemberId]);
+        Bank::where('member_id', $oldMemberId)->update(['member_id' => $newMemberId]);
+        Bet::where('member_id', $oldMemberId)->update(['member_id' => $newMemberId, 'user_id' => $newUserId]);
+        PaymentOrder::where('member_id', $oldMemberId)->update(['member_id' => $newMemberId]);
+        $wallet = Wallet::where('member_id', $user->getMemberId())->first();
+       $res = WalletService::updateBalance($user->getMemberId(), $wallet->available_balance * -1);
+        BalanceLogService::addLog(
+            $chatId,
+            $wallet->available_balance,
+            $res['before_balance'],
+            $res['after_balance'],
+            "资产转移",
+            '',
+            "新账号:{$newUser->getMemberId()}"
+        );
+
+        $res = WalletService::updateBalance($chatId, $wallet->available_balance);
+        BalanceLogService::addLog(
+            $chatId,
+            $wallet->available_balance,
+            $res['before_balance'],
+            $res['after_balance'],
+            "资产转移",
+            '',
+            "原账号:{$user->getMemberId()}"
+        );
+
+        return true;
+    }
+
     private static function confirm($chatId, $messageId): array
     {
         $secret = Cache::get("{$chatId}_OLD_SECRET");
-        $user = User::where(['secret_key' => $secret])->where('member_id', '!=', $chatId)->first();
-        $wallet = Wallet::where('member_id', $user->getMemberId())->first();
+//        $user = User::where(['secret_key' => $secret])->where('member_id', '!=', $chatId)->first();
+//        $wallet = Wallet::where('member_id', $user->getMemberId())->first();
+
+        $res = static::migration($chatId, $secret);
+        if ($res) {
+            return [
+                'chat_id' => $chatId,
+                'text' => '已完成迁移',
+                'message_id' => $messageId,
+            ];
+        } else {
+            return [
+                'chat_id' => $chatId,
+                'text' => '迁移失败',
+                'message_id' => $messageId,
+            ];
+        }
 
 
-//        $res = WalletService::updateBalance($user->getMemberId(), $wallet->available_balance * -1);
-//        BalanceLogService::addLog(
-//            $chatId,
-//            $wallet->available_balance * -1,
-//            $res['before_balance'],
-//            $res['after_balance'],
-//            "账号找回",
-//            '',
-//            "新账号:{$chatId}"
-//        );
-//
-//        $res = WalletService::updateBalance($chatId, $wallet->available_balance);
-//        BalanceLogService::addLog(
-//            $chatId,
-//            $wallet->available_balance,
-//            $res['before_balance'],
-//            $res['after_balance'],
-//            "账号找回",
-//            '',
-//            "原账号:{$user->getMemberId()}"
-//        );
-        return [];
     }
 
 
@@ -179,7 +223,7 @@ class SecretService
         $available_balance = bcadd($available_balance, $wallet->available_balance, 2);
         $text .= "-------------------------------\n";
         $text .= "合并后余额:{$available_balance} RMB\n\n";
-        
+
         $text .= "注意:请确认原账号信息,点击确认后,原账号将注销,原账号的余额以及其他信息将合并到新账号中!\n此操作不可撤销。请取消或确认。";
 
         Cache::put("{$chatId}_OLD_SECRET", $secret);