4
0
Fork 0
dcat-admin-user/src/Http/Api/WithdrawController.php

75 lines
1.9 KiB
PHP

<?php
namespace Peidikeji\User\Http\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Peidikeji\User\Http\Resources\WithdrawResource;
use Peidikeji\User\WithdrawService;
class WithdrawController extends Controller
{
public function index(Request $request)
{
$user = auth('api')->user();
$query = $user->withdraws()->filter($request->all());
$list = $query->paginate($request->input('per_page'));
return $this->json(WithdrawResource::collection($list));
}
public function show($id)
{
$user = auth('api')->user();
$info = $user->withdraws()->findOrFail($id);
return $this->json(WithdrawResource::make($info));
}
public function store(Request $request)
{
$user = auth('api')->user();
$request->validate([
'amount' => 'numeric|gt:0|lte:' . floatval($user->balance)
], [
'amount.gt' => '提现数量必须大于 0',
'amount.lte' => '余额不足'
]);
$amount = $request->input('amount');
try {
DB::beginTransaction();
$info = WithdrawService::make()->apply($user, $amount);
DB::commit();
return $this->success('申请成功', WithdrawResource::make($info));
} catch (\Exception $e) {
DB::rollBack();
return $this->error($e->getMessage());
}
}
public function cancel($id)
{
$user = auth('api')->user();
$info = $user->withdraws()->findOrFail($id);
try {
DB::beginTransaction();
WithdrawService::make()->cancel($info);
DB::commit();
return $this->success('取消成功');
} catch (\Exception $e) {
DB::rollBack();
return $this->error($e->getMessage());
}
}
}