|
|
@@ -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,76 @@ 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();
|
|
|
+ if ($wallet->available_balance > 0) {
|
|
|
+ $res = WalletService::updateBalance($user->getMemberId(), $wallet->available_balance * -1);
|
|
|
+ BalanceLogService::addLog(
|
|
|
+ $oldMemberId,
|
|
|
+ $wallet->available_balance * -1,
|
|
|
+ $res['before_balance'],
|
|
|
+ $res['after_balance'],
|
|
|
+ "资产转移",
|
|
|
+ null,
|
|
|
+ "转移至 {$newUser->getMemberId()}"
|
|
|
+ );
|
|
|
+
|
|
|
+ $res = WalletService::updateBalance($chatId, $wallet->available_balance);
|
|
|
+ BalanceLogService::addLog(
|
|
|
+ $chatId,
|
|
|
+ $wallet->available_balance,
|
|
|
+ $res['before_balance'],
|
|
|
+ $res['after_balance'],
|
|
|
+ "资产转移",
|
|
|
+ null,
|
|
|
+ "由 {$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 +226,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);
|