fix(reliability): resolve F-12 — wrap AdminController write operations in DB::transaction()

This commit is contained in:
root
2026-05-28 16:36:07 +08:00
parent f9061ade2f
commit f7f2736245

View File

@@ -71,20 +71,21 @@ class AdminController extends Controller
$waterlevel = $request->has('waterlevel') ? 1 : 0; $waterlevel = $request->has('waterlevel') ? 1 : 0;
$siren = $request->has('siren') ? 1 : 0; $siren = $request->has('siren') ? 1 : 0;
DB::table('station')->insert([ DB::transaction(function () use ($validated, $rainfall, $waterlevel, $siren) {
'stationid' => $validated['stationid'], DB::table('station')->insert([
'name' => $validated['stationname'], 'stationid' => $validated['stationid'],
'district' => $validated['district'], 'name' => $validated['stationname'],
'lng' => $validated['longitude'], 'district' => $validated['district'],
'lat' => $validated['latitude'], 'lng' => $validated['longitude'],
'mainriverbasin' => $validated['mainriverbasin'], 'lat' => $validated['latitude'],
'subriverbasin' => $validated['subriverbasin'], 'mainriverbasin' => $validated['mainriverbasin'],
'rainfall' => $rainfall, 'subriverbasin' => $validated['subriverbasin'],
'waterlevel' => $waterlevel, 'rainfall' => $rainfall,
'siren' => $siren, 'waterlevel' => $waterlevel,
'cctv_link' => $validated['cctv_link'], 'siren' => $siren,
'cctv_link' => $validated['cctv_link'],
]); ]);
});
return redirect()->back()->with('success',__('toast.stationsuccess')); return redirect()->back()->with('success',__('toast.stationsuccess'));
@@ -101,16 +102,18 @@ class AdminController extends Controller
'access_level' => 'required|integer', 'access_level' => 'required|integer',
]); ]);
DB::table('users')->insert([ DB::transaction(function () use ($validated) {
'name' => $validated['name'], DB::table('users')->insert([
'email' => $validated['email'] ?? null, 'name' => $validated['name'],
'password' => bcrypt($validated['password']), 'email' => $validated['email'] ?? null,
'access_level' => $validated['access_level'], 'password' => bcrypt($validated['password']),
'login_attempts' => 0, 'access_level' => $validated['access_level'],
'is_blocked' => 0, 'login_attempts' => 0,
'created_at' => now(), 'is_blocked' => 0,
'updated_at' => now(), 'created_at' => now(),
]); 'updated_at' => now(),
]);
});
return redirect()->back()->with('success', __('toast.usersuccess')); return redirect()->back()->with('success', __('toast.usersuccess'));
@@ -175,34 +178,32 @@ class AdminController extends Controller
]); ]);
if ($request->has('is_blocked')) DB::transaction(function () use ($request, $validated, $userid) {
{ if ($request->has('is_blocked'))
{
DB::table('users')->where('id',$userid)
->update([
'is_blocked' => 0,
'login_attempts' => 0,
'updated_at' => now(),
]);
}else{
DB::table('users')->where('id',$userid)
->update([
'is_blocked' => 1,
'updated_at' => now(),
]);
}
DB::table('users')->where('id',$userid) DB::table('users')->where('id',$userid)
->update([ ->update([
'is_blocked' => 0, 'name' => $validated['name'],
'login_attempts' => 0, 'email' => $validated['email'],
'updated_at' => now(), 'access_level' => $validated['access_level'],
'updated_at' => now(),
]); ]);
});
}else{
DB::table('users')->where('id',$userid)
->update([
'is_blocked' => 1,
'updated_at' => now(),
]);
}
DB::table('users')->where('id',$userid)
->update([
'name' => $validated['name'],
'email' => $validated['email'],
'access_level' => $validated['access_level'],
'updated_at' => now(),
]);
return redirect()->back()->with('success',__('toast.userupdated')); return redirect()->back()->with('success',__('toast.userupdated'));
} }