In meinem Code wird nur eine Tabelle aktualisiert, aber nicht die anderePhp

PHP-Programmierer chatten hier
Anonymous
 In meinem Code wird nur eine Tabelle aktualisiert, aber nicht die andere

Post by Anonymous »

Ich habe zwei Tabellen - Benutzer Tabelle, die die Saldospalte des Benutzers enthält (Spalte des Benutzers (

Code: Select all

casino_bakiye
) und xpgtransactions , in dem ich Transaktionen aus der API speichere. In der Anfrage gibt es unter den gesendeten Daten Betrag und Benutzername. /> Abnahme dieses Gleichgewichts < /p>
< /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();
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post