6
0
Fork 0
jiqu-library-server/app/Endpoint/Api/Http/Controllers/UserBankController.php

58 lines
1.5 KiB
PHP

<?php
namespace App\Endpoint\Api\Http\Controllers;
use App\Endpoint\Api\Http\Resources\UserBankResource;
use App\Enums\Bank;
use App\Models\UserBank;
use Illuminate\Http\Request;
class UserBankController extends Controller
{
public function options(Request $request)
{
return response()->json([
'banks' => array_values(Bank::banks()),
]);
}
/**
* 用户银行卡信息
*
* @param \Illuminate\Http\Request $request
* @return void
*/
public function show(Request $request)
{
$bank = $request->user()->bank;
return $bank ? UserBankResource::make($bank) : response()->json([]);
}
public function update(Request $request)
{
$input = $request->validate([
'real_name' => ['bail', 'required', 'string', 'max:50'],
'bank_number' => ['bail', 'required', 'string', 'max:30'],
'bank_name' => ['bail', 'required', 'string', 'max:100'],
'bank_description' => ['bail', 'required', 'string', 'max:200'],
]);
$bank = $request->user()->bank;
if ($bank && $bank->real_name != $input['real_name']) {
$input['is_edited'] = 1;
$input['old_real_name'] = $bank->real_name;
}
if ($bank?->is_edited) {
unset($input['real_name']);
}
$bank = UserBank::updateOrCreate([
'user_id' => $request->user()->id,
], $input);
return UserBankResource::make($bank);
}
}