6
0
Fork 0
release
李静 2022-01-05 15:19:07 +08:00
parent e24d907fa5
commit 683b3a5e7e
2 changed files with 21 additions and 18 deletions

View File

@ -27,7 +27,6 @@ use App\Services\WalletService;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use Illuminate\Validation\Rule;
use Throwable;
class WalletController extends Controller
@ -109,8 +108,10 @@ class WalletController extends Controller
{
$validated = $request->validate([
'pay_sn' => ['bail', 'required'],
'pay_way' => ['bail', 'required', Rule::in([PayLog::PAY_WAY_WALLET, PayLog::PAY_WAY_BALANCE])],
'pay_password' => ['bail', 'required'],
], [], [
'pay_sn' => '支付流水号',
'pay_password' => '支付密码',
]);
$user = $request->user();
@ -119,31 +120,30 @@ class WalletController extends Controller
throw new PayPasswordIncorrectException();
}
switch ($validated['pay_way']) {
case PayLog::PAY_WAY_WALLET:
if ($user->wallet->is_frozen) {
throw new WalletFrozenException();
}
break;
case PayLog::PAY_WAY_BALANCE:
if ($user->balance->is_frozen) {
throw new BalanceFrozenException();
}
break;
}
try {
DB::transaction(function () use ($user, $validated) {
$payLog = PayLog::where('pay_sn', $validated['pay_sn'])
->where('pay_way', $validated['pay_way'])
->lockForUpdate()
->first();
if ($payLog === null) {
if ($payLog === null || !in_array($payLog->pay_way, [PayLog::PAY_WAY_WALLET, PayLog::PAY_WAY_BALANCE])) {
throw new InvalidPaySerialNumberException();
}
switch ($payLog->pay_way) {
case PayLog::PAY_WAY_WALLET:
if ($user->wallet->is_frozen) {
throw new WalletFrozenException();
}
break;
case PayLog::PAY_WAY_BALANCE:
if ($user->balance->is_frozen) {
throw new BalanceFrozenException();
}
break;
}
$payable = $payLog->payable;
if ($payable instanceof Order) {

View File

@ -19,6 +19,9 @@ class WalletPasswordController extends Controller
$input = $request->validate([
'old_password' => ['bail', 'filled', 'string', 'size:6'],
'new_password' => ['bail', 'required', 'string', 'size:6'],
], [], [
'old_password' => '旧密码',
'new_password' => '新密码',
]);
$wallet = $request->user()->wallet;