Code: Select all
casino_bakiye
< /li>
Gibt eine Antwort mit dem aktuellen Gleichgewicht des Benutzers zurück. Der Guthaben des Benutzers beträgt 1000, und die Anfrage gibt einen Betrag von 100 zurück. Dies bedeutet, dass 1000 - 100 = 900 also 900 zurückkehren muss. Nachdem ich das Gleichgewicht dieses Benutzers um 100 verringert habe. Dann speichern Sie die Transaktionsmenge auf XPGTransactions Tabelle. Es speichert nur die Transaktion in der Tabelle XPGTransactions . Ich frage mich also, wie es überspringt, was den Betrag verringert und die Daten in XPGtransactions Tabelle speichert. Ich habe Laravel -Transaktionen ausprobiert, aber das Problem bleibt weiterhin bestehen. Aber ich kann keine Quelle finden, die sie genau und mehr erklärt, wie ich sie in meinem Fall anwenden kann. Könnte es jemand genau erklären? < /P>
Mein Code: < /p>
Code: Select all
public function Debit() {
$data = json_decode(file_get_contents('php://input'), true);
$username = $data['Login'];
$user = User::where('username', $username)->first();
if(!$user) {
$rivalaoResponse = ["d"=>["ErrorCode"=>-10,
"HasErrors"=>true,
"Message"=>"InvalidPlayer"]];
return response()->json($rivalaoResponse);
}
$type="debit";
$userId = $user->id;
$amount = $data['Amount'];
$gameId = $data['GameId'];
$roundId = $data['RoundId'];
$sequence = $data['Sequence'];
$game = XpgTransaction::where('gameId', $gameId)
->where('roundId', $roundId)
->where('sequence', $sequence)
->first();
DB::beginTransaction();
try {
if (!$game) {
$trxn = new XpgTransaction;
$trxn->user_id = $userId;
$trxn ->request=json_encode($data);
$trxn->type =$type;
$trxn->save();
if ($user->decrement('casino_bakiye', $amount)) {
$trxn->casino_balance = $user->refresh()->casino_bakiye;
$trxn->save();
DB::commit();
$currentBalance = $user->refresh()->casino_bakiye;
$rivalaoResponse = ["d"=>["Data"=>[(float)$currentBalance],
"ErrorCode"=>0,
"HasErrors"=>false,
"Message"=>""]];
return response()->json($rivalaoResponse);
} else {
$currentBalance = $user->refresh()->casino_bakiye;
$rivalaoResponse = ["d"=>["Data"=>
[(float)$currentBalance],
"ErrorCode"=>-1,
"HasErrors"=>true,
"Message"=>"Unknown error"]
];
return response()->json($rivalaoResponse);
DB::rollBack();
}
} else {
$rivalaoResponse = ["d"=>["ErrorCode"=>-21,
"HasErrors"=>true,
"Message"=>"Duplicate transaction"]
];
return response()->json($rivalaoResponse);
}
} catch (\Exception $e) {
$currentBalance = $user->refresh()->casino_bakiye;
$rivalaoResponse = ["d"=>["Data"=>[(float)$currentBalance],
"ErrorCode"=>-1,
"HasErrors"=>true,
"Message"=>"Unknown error"]
];
return response()->json($rivalaoResponse);
DB::rollBack();
}
}