阶段更新
This commit is contained in:
155
modules/Withdraw/Http/Controllers/Api/IndexController.php
Normal file
155
modules/Withdraw/Http/Controllers/Api/IndexController.php
Normal file
@@ -0,0 +1,155 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Withdraw\Http\Controllers\Api;
|
||||
|
||||
use App\Api\Controllers\Controller;
|
||||
use App\Models\DayDataChain;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Jason\Api\Api;
|
||||
use Modules\Withdraw\Http\Requests\WithdrawRequest;
|
||||
use Modules\Withdraw\Http\Resources\Account\UserAlipayAccountResource;
|
||||
use Modules\Withdraw\Http\Resources\Account\UserBankAccountResource;
|
||||
use Modules\Withdraw\Http\Resources\Withdraw\WithdrawCollection;
|
||||
use Modules\Withdraw\Models\Config;
|
||||
use Modules\Withdraw\Models\Withdraw;
|
||||
|
||||
class IndexController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Notes: 我的提现记录
|
||||
*
|
||||
* @Author: 玄尘
|
||||
* @Date : 2021/9/26 14:57
|
||||
*/
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$user = Api::user();
|
||||
|
||||
$type = $request->type ?? 'day';
|
||||
$date = $request->date ?? Carbon::now()->format('Y-m-d');
|
||||
|
||||
$time = Carbon::parse($date);
|
||||
|
||||
switch ($type) {
|
||||
case 'month':
|
||||
$timeBetween = [
|
||||
$time->startOfMonth()->toDateTimeString(),
|
||||
$time->endOfMonth()->toDateTimeString(),
|
||||
];
|
||||
break;
|
||||
case 'year':
|
||||
$timeBetween = [
|
||||
$time->startOfYear()->toDateTimeString(),
|
||||
$time->endOfYear()->toDateTimeString(),
|
||||
];
|
||||
break;
|
||||
case 'day':
|
||||
default:
|
||||
$timeBetween = [
|
||||
$time->startOfDay()->toDateTimeString(),
|
||||
$time->endOfDay()->toDateTimeString(),
|
||||
];
|
||||
break;
|
||||
}
|
||||
|
||||
$lists = $user->withdraws()
|
||||
->whereBetween('created_at', $timeBetween)
|
||||
->latest()
|
||||
->paginate();
|
||||
|
||||
$is_chain = config('withdraw.is_chain', false);
|
||||
|
||||
if ($is_chain) {
|
||||
$all = floatval($user->getStoneFormatBalance());
|
||||
} else {
|
||||
$account = config('withdraw.account', 'coins');
|
||||
$all = $user->account->{$account};
|
||||
}
|
||||
$data = [
|
||||
'all' => $all,
|
||||
'lists' => new WithdrawCollection($lists),
|
||||
];
|
||||
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes: 提现前置
|
||||
*
|
||||
* @Author: 玄尘
|
||||
* @Date : 2021/1/21 14:21
|
||||
*/
|
||||
public function create(Request $request): JsonResponse
|
||||
{
|
||||
$user = Api::user();
|
||||
$is_chain = config('withdraw.is_chain', false);
|
||||
$bank_account_id = $request->bank_account_id;
|
||||
$alipay_account_id = $request->alipay_account_id;
|
||||
if ($bank_account_id) {
|
||||
$bank_account = $user->bankAccounts()->where('id', $bank_account_id)->first();
|
||||
} else {
|
||||
$bank_account = $user->bankAccounts()->first();
|
||||
}
|
||||
if ($alipay_account_id) {
|
||||
$alipay_account = $user->alipayAccounts()->where('id', $alipay_account_id)->first();
|
||||
} else {
|
||||
$alipay_account = $user->alipayAccounts()->first();
|
||||
}
|
||||
|
||||
$data = [
|
||||
'tax' => Config::getValue('tax', 0),
|
||||
'bank_account' => $bank_account ? new UserBankAccountResource($bank_account) : '',
|
||||
'alipay_account' => $alipay_account ? new UserAlipayAccountResource($alipay_account) : '',
|
||||
'bank_accounts' => UserBankAccountResource::collection($user->bankAccounts),
|
||||
'alipay_accounts' => UserAlipayAccountResource::collection($user->alipayAccounts),
|
||||
'is_chain' => config('withdraw.is_chain'),
|
||||
'certification' => (bool) $user->certification,
|
||||
'types' => Withdraw::TYPES,
|
||||
];
|
||||
|
||||
if ($is_chain) {
|
||||
$data = array_merge($data, [
|
||||
'balance' => floatval($user->getStoneFormatBalance()),//账户余额
|
||||
'cost' => (new DayDataChain())->getStoneValue(),//现金价值
|
||||
]);
|
||||
} else {
|
||||
$account = config('withdraw.account');
|
||||
$data = array_merge($data, [
|
||||
'balance' => $user->account->{$account},//账户余额
|
||||
'cost' => 1,
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->success($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes: 提现
|
||||
*
|
||||
* @Author: 玄尘
|
||||
* @Date : 2021/1/21 14:27
|
||||
* @param WithdrawRequest $request
|
||||
* @return JsonResponse|mixed
|
||||
*/
|
||||
public function store(WithdrawRequest $request)
|
||||
{
|
||||
$user = Api::user();
|
||||
|
||||
try {
|
||||
// if (! $user->certification) {
|
||||
// throw new \Exception('未进行个人认证不可提现');
|
||||
// }
|
||||
|
||||
Withdraw::createInfo($user, $request);
|
||||
|
||||
return $this->success('申请提现成功,等待管理员审核');
|
||||
} catch (\Exception $e) {
|
||||
return $this->failed($e->getmessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user