8 changed files with 320 additions and 0 deletions
-
1app/AdminAgent/Controllers/WalletController.php
-
140app/AdminSupplier/Controllers/WalletController.php
-
64app/AdminSupplier/Controllers/WithdrawalAlipayController.php
-
64app/AdminSupplier/Controllers/WithdrawalBankController.php
-
16app/AdminSupplier/Repositories/Withdrawal.php
-
16app/AdminSupplier/Repositories/WithdrawalAlipay.php
-
16app/AdminSupplier/Repositories/WithdrawalBank.php
-
3app/AdminSupplier/routes.php
@ -0,0 +1,140 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\AdminSupplier\Controllers; |
||||
|
|
||||
|
use App\AdminSupplier\Repositories\Withdrawal; |
||||
|
use App\Traits\DemandTraits; |
||||
|
use App\Traits\WithdrawalTraits; |
||||
|
use Dcat\Admin\Admin; |
||||
|
use Dcat\Admin\Form; |
||||
|
use Dcat\Admin\Grid; |
||||
|
use Dcat\Admin\Layout\Column; |
||||
|
use Dcat\Admin\Layout\Content; |
||||
|
use Dcat\Admin\Layout\Row; |
||||
|
use Dcat\Admin\Http\Controllers\AdminController; |
||||
|
use Dcat\Admin\Widgets\Card; |
||||
|
|
||||
|
class WalletController extends AdminController |
||||
|
{ |
||||
|
public function index(Content $content) |
||||
|
{ |
||||
|
return $content |
||||
|
->body( |
||||
|
<<<HTML |
||||
|
<div class="content-header"> |
||||
|
<section class="content-header breadcrumbs-top"> |
||||
|
<h1 class=" float-left"> |
||||
|
<span class="text-capitalize">我的钱包</span> |
||||
|
|
||||
|
</h1> |
||||
|
<div class="clearfix"></div> |
||||
|
|
||||
|
</section> |
||||
|
</div> |
||||
|
HTML |
||||
|
|
||||
|
) |
||||
|
->body($this->build()) |
||||
|
->body(function (Row $row) { |
||||
|
|
||||
|
$row->column(4, function (Column $column){ |
||||
|
$column->row(Card::make('当前余额', function () { |
||||
|
$balance = Admin::user()->balance ?? 0; |
||||
|
return <<<HTML |
||||
|
<div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px"> |
||||
|
<h2 class="ml-1 font-large-1 text-primary">$balance</h2> |
||||
|
</div> |
||||
|
HTML; |
||||
|
})); |
||||
|
}); |
||||
|
|
||||
|
$row->column(4, function (Column $column){ |
||||
|
$column->row(Card::make('已提现', function () { |
||||
|
$price = \App\Models\Withdrawal::query() |
||||
|
->where([ |
||||
|
'user_id' => Admin::user()->id, |
||||
|
'user_type' => DemandTraits::$col[1], |
||||
|
'status' => WithdrawalTraits::$state[3] |
||||
|
]) |
||||
|
->sum('price'); |
||||
|
return <<<HTML |
||||
|
<div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px"> |
||||
|
<h2 class="ml-1 font-large-1 text-primary">$price</h2> |
||||
|
</div> |
||||
|
HTML; |
||||
|
})); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
$row->column(4, function (Column $column) { |
||||
|
$column->row(Card::make('提现中', function () { |
||||
|
$price = \App\Models\Withdrawal::query() |
||||
|
->where([ |
||||
|
'user_id' => Admin::user()->id, |
||||
|
'user_type' => DemandTraits::$col[1], |
||||
|
'status' => WithdrawalTraits::$state[0] |
||||
|
]) |
||||
|
->sum('price'); |
||||
|
return <<<HTML |
||||
|
<div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px"> |
||||
|
<h2 class="ml-1 font-large-1 text-primary">$price</h2> |
||||
|
</div> |
||||
|
HTML; |
||||
|
})); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}) |
||||
|
->body( |
||||
|
Grid::make(new Withdrawal(), function (Grid $grid) { |
||||
|
$grid->model()->where(['user_id' => Admin::user()->id,'user_type' => DemandTraits::$col[1]]); |
||||
|
$grid->disableActions(); |
||||
|
//$grid->disable();
|
||||
|
$grid->column('id')->sortable(); |
||||
|
$grid->column('price','提现金额'); |
||||
|
$grid->column('pay_type','提现方式')->using(WithdrawalTraits::$userTypeText); |
||||
|
//$grid->column('pay_id');
|
||||
|
$grid->column('status','状态')->using(WithdrawalTraits::$stateText)->dot([ |
||||
|
|
||||
|
1 => Admin::color()->yellow(), |
||||
|
2 => 'danger', |
||||
|
3 => 'success', |
||||
|
4 => Admin::color()->info(), |
||||
|
|
||||
|
]); |
||||
|
$grid->column('created_at'); |
||||
|
$grid->column('updated_at')->sortable(); |
||||
|
$grid->disableCreateButton(); |
||||
|
$grid->disableRowSelector(); |
||||
|
$grid->filter(function (Grid\Filter $filter) { |
||||
|
$filter->equal('id')->width(3); |
||||
|
$filter->equal('status','状态')->select(WithdrawalTraits::$stateTextSelect)->width(2); |
||||
|
}); |
||||
|
}) |
||||
|
|
||||
|
); |
||||
|
} |
||||
|
|
||||
|
protected function build() |
||||
|
{ |
||||
|
Form::dialog('支付宝提现') |
||||
|
->click('.alipay-create-form') // 绑定点击按钮
|
||||
|
->url('/withdrawak_alipay/create') // 表单页面链接,此参数会被按钮中的 “data-url” 属性替换。。
|
||||
|
->width('700px') // 指定弹窗宽度,可填写百分比,默认 720px
|
||||
|
->height('650px') // 指定弹窗高度,可填写百分比,默认 690px
|
||||
|
->success('Dcat.reload()'); // 新增成功后刷新页面
|
||||
|
|
||||
|
Form::dialog('银行卡提现') |
||||
|
->click('.bank-create-form') // 绑定点击按钮
|
||||
|
->url('/withdrawak_bank/create') // 表单页面链接,此参数会被按钮中的 “data-url” 属性替换。。
|
||||
|
->width('700px') // 指定弹窗宽度,可填写百分比,默认 720px
|
||||
|
->height('650px') // 指定弹窗高度,可填写百分比,默认 690px
|
||||
|
->success('Dcat.reload()'); // 新增成功后刷新页面
|
||||
|
|
||||
|
return "
|
||||
|
<div style='padding:30px 0'> |
||||
|
<span class='btn btn-success alipay-create-form'> 支付宝提现 </span> |
||||
|
<span class='btn btn-success bank-create-form'> 银行卡提现 </span> |
||||
|
</div>";
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,64 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\AdminSupplier\Controllers; |
||||
|
|
||||
|
use App\AdminAgent\Repositories\WithdrawalAlipay; |
||||
|
use App\Models\Agent; |
||||
|
use App\Models\Withdrawal; |
||||
|
use App\Traits\DemandTraits; |
||||
|
use App\Traits\WithdrawalTraits; |
||||
|
use Dcat\Admin\Admin; |
||||
|
use Dcat\Admin\Form; |
||||
|
use Dcat\Admin\Grid; |
||||
|
use Dcat\Admin\Show; |
||||
|
use Dcat\Admin\Http\Controllers\AdminController; |
||||
|
use Illuminate\Database\Eloquent\Model; |
||||
|
use Illuminate\Support\Facades\DB; |
||||
|
|
||||
|
class WithdrawalAlipayController extends AdminController |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* Make a form builder. |
||||
|
* |
||||
|
* @return Form |
||||
|
*/ |
||||
|
protected function form() |
||||
|
{ |
||||
|
return Form::make(new WithdrawalAlipay(), function (Form $form) { |
||||
|
$form->display('id'); |
||||
|
$form->decimal('price','提现金额')->required(); |
||||
|
$form->text('account')->required(); |
||||
|
$form->text('name')->required(); |
||||
|
$form->image('qrcode')->required(); |
||||
|
$form->hidden('withdrawal_id'); |
||||
|
|
||||
|
$form->saving(function (Form $form) { |
||||
|
$user = Agent::query()->where('id', Admin::user()->id)->lockForUpdate()->first(); |
||||
|
if ($form->price > $user->balance) { |
||||
|
return $form->response()->error('余额不足,当前可用余额为'.$user->balance); |
||||
|
} |
||||
|
|
||||
|
$user->balance = bcsub($user->balance,$form->price,6); |
||||
|
$user->save(); |
||||
|
|
||||
|
$withdrawal = new Withdrawal(); |
||||
|
$withdrawal->user_id = Admin::user()->id; |
||||
|
$withdrawal->user_type = DemandTraits::$col[1]; |
||||
|
$withdrawal->price = request('price',0); |
||||
|
//$withdrawal->pay_id = $form->getKey();
|
||||
|
$withdrawal->pay_type = WithdrawalTraits::$userType[0]; |
||||
|
$withdrawal->save(); |
||||
|
|
||||
|
$form->withdrawal_id = $withdrawal->id; |
||||
|
$form->deleteInput('price'); |
||||
|
}); |
||||
|
|
||||
|
$form->saved(function (Form $form) { |
||||
|
$withdrawal = Withdrawal::find($form->withdrawal_id); |
||||
|
$withdrawal->pay_id = $form->getKey(); |
||||
|
$withdrawal->save(); |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,64 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\AdminSupplier\Controllers; |
||||
|
|
||||
|
use App\AdminSupplier\Repositories\WithdrawalBank; |
||||
|
use App\Models\Agent; |
||||
|
use App\Models\Withdrawal; |
||||
|
use App\Traits\DemandTraits; |
||||
|
use App\Traits\WithdrawalTraits; |
||||
|
use Dcat\Admin\Admin; |
||||
|
use Dcat\Admin\Form; |
||||
|
use Dcat\Admin\Grid; |
||||
|
use Dcat\Admin\Show; |
||||
|
use Dcat\Admin\Http\Controllers\AdminController; |
||||
|
use Illuminate\Database\Eloquent\Model; |
||||
|
|
||||
|
class WithdrawalBankController extends AdminController |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* Make a form builder. |
||||
|
* |
||||
|
* @return Form |
||||
|
*/ |
||||
|
protected function form() |
||||
|
{ |
||||
|
return Form::make(new WithdrawalBank(), function (Form $form) { |
||||
|
$form->display('id'); |
||||
|
$form->decimal('price','提现金额')->required(); |
||||
|
$form->text('name')->required(); |
||||
|
$form->text('card_number')->required(); |
||||
|
$form->text('account_name')->required(); |
||||
|
$form->text('branch')->required(); |
||||
|
$form->hidden('withdrawal_id'); |
||||
|
|
||||
|
$form->saving(function (Form $form) { |
||||
|
$user = Agent::query()->where('id', Admin::user()->id)->lockForUpdate()->first(); |
||||
|
if ($form->price > $user->balance) { |
||||
|
return $form->response()->error('余额不足,当前可用余额为'.$user->balance); |
||||
|
} |
||||
|
|
||||
|
$user->balance = bcsub($user->balance,$form->price,6); |
||||
|
$user->save(); |
||||
|
|
||||
|
$withdrawal = new Withdrawal(); |
||||
|
$withdrawal->user_id = Admin::user()->id; |
||||
|
$withdrawal->user_type = DemandTraits::$col[1]; |
||||
|
$withdrawal->price = request('price',0); |
||||
|
//$withdrawal->pay_id = $form->getKey();
|
||||
|
$withdrawal->pay_type = WithdrawalTraits::$userType[1]; |
||||
|
$withdrawal->save(); |
||||
|
|
||||
|
$form->withdrawal_id = $withdrawal->id; |
||||
|
$form->deleteInput('price'); |
||||
|
}); |
||||
|
|
||||
|
$form->saved(function (Form $form) { |
||||
|
$withdrawal = Withdrawal::find($form->withdrawal_id); |
||||
|
$withdrawal->pay_id = $form->getKey(); |
||||
|
$withdrawal->save(); |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,16 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\AdminSupplier\Repositories; |
||||
|
|
||||
|
use App\Models\Withdrawal as Model; |
||||
|
use Dcat\Admin\Repositories\EloquentRepository; |
||||
|
|
||||
|
class Withdrawal extends EloquentRepository |
||||
|
{ |
||||
|
/** |
||||
|
* Model. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $eloquentClass = Model::class; |
||||
|
} |
||||
@ -0,0 +1,16 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\AdminSupplier\Repositories; |
||||
|
|
||||
|
use App\Models\WithdrawalAlipay as Model; |
||||
|
use Dcat\Admin\Repositories\EloquentRepository; |
||||
|
|
||||
|
class WithdrawalAlipay extends EloquentRepository |
||||
|
{ |
||||
|
/** |
||||
|
* Model. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $eloquentClass = Model::class; |
||||
|
} |
||||
@ -0,0 +1,16 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\AdminSupplier\Repositories; |
||||
|
|
||||
|
use App\Models\WithdrawalBank as Model; |
||||
|
use Dcat\Admin\Repositories\EloquentRepository; |
||||
|
|
||||
|
class WithdrawalBank extends EloquentRepository |
||||
|
{ |
||||
|
/** |
||||
|
* Model. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $eloquentClass = Model::class; |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue