Files
water-back/modules/Withdraw/Http/Controllers/Api/AccountController.php
2023-01-12 14:47:38 +08:00

144 lines
3.7 KiB
PHP

<?php
namespace Modules\Withdraw\Http\Controllers\Api;
use App\Api\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Jason\Api\Api;
use Modules\Withdraw\Http\Requests\UserBankAccountRequest;
use Modules\Withdraw\Http\Requests\UserEditBankAccountRequest;
use Modules\Withdraw\Http\Resources\Account\UserBankAccountCollection;
use Modules\Withdraw\Http\Resources\Account\UserBankAccountResource;
use Modules\Withdraw\Http\Resources\Bank\BankResource;
use Modules\Withdraw\Models\Account;
use Modules\Withdraw\Models\Bank;
class AccountController extends Controller
{
/**
* Notes: 我的银行账户
*
* @Author: 玄尘
* @Date : 2021/9/26 13:57
* @return JsonResponse
*/
public function index(): JsonResponse
{
$user = Api::user();
$lists = Account::query()->where('user_id', $user->id)->paginate();
return $this->success(new UserBankAccountCollection($lists));
}
/**
* Notes: description
*
* @Author: 玄尘
* @Date : 2021/9/26 14:09
* @return JsonResponse
*/
public function create(): JsonResponse
{
$banks = Bank::where('status', Bank::STATUS_OPEN)->get();
$data = [
'banks' => BankResource::collection($banks),
];
return $this->success($data);
}
/***
* Notes: 提交
*
* @Author: 玄尘
* @Date : 2021/9/26 14:11
* @param UserBankAccountRequest $request
* @return JsonResponse|mixed
*/
public function store(UserBankAccountRequest $request)
{
$user = Api::user();
try {
$user->bankAccounts()->create([
'name' => $request->name,
'mobile' => $request->mobile,
'no' => $request->no,
'branch_name' => $request->branch_name ?? '',
'bank_id' => $request->bank_id,
]);
return $this->success('添加成功');
} catch (\Exception $exception) {
return $this->failed($exception->getMessage());
}
}
/**
* Notes: description
*
* @Author: 玄尘
* @Date : 2021/9/26 14:23
* @param Account $account
*/
public function edit(Account $account): JsonResponse
{
$banks = Bank::where('status', Bank::STATUS_OPEN)->get();
$data = [
'banks' => BankResource::collection($banks),
'info' => new UserBankAccountResource($account),
];
return $this->success($data);
}
/**
* Notes: description
*
* @Author: 玄尘
* @Date : 2021/9/26 14:26
* @param UserEditBankAccountRequest $request
* @param Account $account
* @return JsonResponse|mixed
*/
public function update(UserEditBankAccountRequest $request, Account $account)
{
try {
$account->update([
'name' => $request->name,
'mobile' => $request->mobile,
'no' => $request->no,
'branch_name' => $request->branch_name,
'bank_id' => $request->bank_id,
]);
return $this->success('编辑成功');
} catch (\Exception $exception) {
return $this->failed($exception->getMessage());
}
}
/**
* Notes: 删除
*
* @Author: 玄尘
* @Date : 2021/9/26 15:02
* @param Account $account
* @return JsonResponse
*/
public function destroy(Account $account): JsonResponse
{
$user = Api::user();
if ($account->user->isNot($user)) {
return $this->failed('您没有权限删除');
}
$account->delete();
return $this->success('删除成功');
}
}