Update
parent
e24d907fa5
commit
683b3a5e7e
|
|
@ -27,7 +27,6 @@ use App\Services\WalletService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Arr;
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Validation\Rule;
|
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
class WalletController extends Controller
|
class WalletController extends Controller
|
||||||
|
|
@ -109,8 +108,10 @@ class WalletController extends Controller
|
||||||
{
|
{
|
||||||
$validated = $request->validate([
|
$validated = $request->validate([
|
||||||
'pay_sn' => ['bail', 'required'],
|
'pay_sn' => ['bail', 'required'],
|
||||||
'pay_way' => ['bail', 'required', Rule::in([PayLog::PAY_WAY_WALLET, PayLog::PAY_WAY_BALANCE])],
|
|
||||||
'pay_password' => ['bail', 'required'],
|
'pay_password' => ['bail', 'required'],
|
||||||
|
], [], [
|
||||||
|
'pay_sn' => '支付流水号',
|
||||||
|
'pay_password' => '支付密码',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$user = $request->user();
|
$user = $request->user();
|
||||||
|
|
@ -119,31 +120,30 @@ class WalletController extends Controller
|
||||||
throw new PayPasswordIncorrectException();
|
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 {
|
try {
|
||||||
DB::transaction(function () use ($user, $validated) {
|
DB::transaction(function () use ($user, $validated) {
|
||||||
$payLog = PayLog::where('pay_sn', $validated['pay_sn'])
|
$payLog = PayLog::where('pay_sn', $validated['pay_sn'])
|
||||||
->where('pay_way', $validated['pay_way'])
|
|
||||||
->lockForUpdate()
|
->lockForUpdate()
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
if ($payLog === null) {
|
if ($payLog === null || !in_array($payLog->pay_way, [PayLog::PAY_WAY_WALLET, PayLog::PAY_WAY_BALANCE])) {
|
||||||
throw new InvalidPaySerialNumberException();
|
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;
|
$payable = $payLog->payable;
|
||||||
|
|
||||||
if ($payable instanceof Order) {
|
if ($payable instanceof Order) {
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,9 @@ class WalletPasswordController extends Controller
|
||||||
$input = $request->validate([
|
$input = $request->validate([
|
||||||
'old_password' => ['bail', 'filled', 'string', 'size:6'],
|
'old_password' => ['bail', 'filled', 'string', 'size:6'],
|
||||||
'new_password' => ['bail', 'required', 'string', 'size:6'],
|
'new_password' => ['bail', 'required', 'string', 'size:6'],
|
||||||
|
], [], [
|
||||||
|
'old_password' => '旧密码',
|
||||||
|
'new_password' => '新密码',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$wallet = $request->user()->wallet;
|
$wallet = $request->user()->wallet;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue