海南旅游SAAS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
4.5 KiB

4 years ago
  1. <?php
  2. namespace App\AdminGuide\Controllers;
  3. use App\AdminGuide\Repositories\Withdrawal;
  4. use App\Traits\DemandTraits;
  5. use App\Traits\WithdrawalTraits;
  6. use Dcat\Admin\Admin;
  7. use Dcat\Admin\Form;
  8. use Dcat\Admin\Grid;
  9. use Dcat\Admin\Layout\Column;
  10. use Dcat\Admin\Layout\Content;
  11. use Dcat\Admin\Layout\Row;
  12. use Dcat\Admin\Http\Controllers\AdminController;
  13. use Dcat\Admin\Widgets\Card;
  14. class WalletController extends AdminController
  15. {
  16. public function index(Content $content)
  17. {
  18. return $content
  19. ->body(
  20. <<<HTML
  21. <div class="content-header">
  22. <section class="content-header breadcrumbs-top">
  23. <h1 class=" float-left">
  24. <span class="text-capitalize">我的钱包</span>
  25. </h1>
  26. <div class="clearfix"></div>
  27. </section>
  28. </div>
  29. HTML
  30. )
  31. ->body($this->build())
  32. ->body(function (Row $row) {
  33. $row->column(4, function (Column $column){
  34. $column->row(Card::make('当前余额', function () {
  35. $balance = Admin::user()->balance ?? 0;
  36. return <<<HTML
  37. <div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
  38. <h2 class="ml-1 font-large-1 text-primary">$balance</h2>
  39. </div>
  40. HTML;
  41. }));
  42. });
  43. $row->column(4, function (Column $column){
  44. $column->row(Card::make('已提现', function () {
  45. $price = \App\Models\Withdrawal::query()
  46. ->where([
  47. 'user_id' => Admin::user()->id,
  48. 'user_type' => DemandTraits::$col[2],
  49. 'status' => WithdrawalTraits::$state[3]
  50. ])
  51. ->sum('price');
  52. return <<<HTML
  53. <div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
  54. <h2 class="ml-1 font-large-1 text-primary">$price</h2>
  55. </div>
  56. HTML;
  57. }));
  58. });
  59. $row->column(4, function (Column $column) {
  60. $column->row(Card::make('提现中', function () {
  61. $price = \App\Models\Withdrawal::query()
  62. ->where([
  63. 'user_id' => Admin::user()->id,
  64. 'user_type' => DemandTraits::$col[2],
  65. 'status' => WithdrawalTraits::$state[0]
  66. ])
  67. ->sum('price');
  68. return <<<HTML
  69. <div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
  70. <h2 class="ml-1 font-large-1 text-primary">$price</h2>
  71. </div>
  72. HTML;
  73. }));
  74. });
  75. })
  76. ->body(
  77. Grid::make(new Withdrawal(), function (Grid $grid) {
  78. $grid->model()->where(['user_id' => Admin::user()->id,'user_type' => DemandTraits::$col[2]]);
  79. $grid->disableActions();
  80. //$grid->disable();
  81. $grid->column('id')->sortable();
  82. $grid->column('price','提现金额');
  83. $grid->column('pay_type','提现方式')->using(WithdrawalTraits::$userTypeText);
  84. //$grid->column('pay_id');
  85. $grid->column('status','状态')->using(WithdrawalTraits::$stateText)->dot([
  86. 1 => Admin::color()->yellow(),
  87. 2 => 'danger',
  88. 3 => 'success',
  89. 4 => Admin::color()->info(),
  90. ]);
  91. $grid->column('created_at');
  92. $grid->column('updated_at')->sortable();
  93. $grid->disableCreateButton();
  94. $grid->disableRowSelector();
  95. $grid->filter(function (Grid\Filter $filter) {
  96. $filter->equal('id')->width(3);
  97. $filter->equal('status','状态')->select(WithdrawalTraits::$stateTextSelect)->width(2);
  98. });
  99. })
  100. );
  101. }
  102. protected function build()
  103. {
  104. Form::dialog('支付宝提现')
  105. ->click('.alipay-create-form') // 绑定点击按钮
  106. ->url('/withdrawak_alipay/create') // 表单页面链接,此参数会被按钮中的 “data-url” 属性替换。。
  107. ->width('700px') // 指定弹窗宽度,可填写百分比,默认 720px
  108. ->height('650px') // 指定弹窗高度,可填写百分比,默认 690px
  109. ->success('Dcat.reload()'); // 新增成功后刷新页面
  110. Form::dialog('银行卡提现')
  111. ->click('.bank-create-form') // 绑定点击按钮
  112. ->url('/withdrawak_bank/create') // 表单页面链接,此参数会被按钮中的 “data-url” 属性替换。。
  113. ->width('700px') // 指定弹窗宽度,可填写百分比,默认 720px
  114. ->height('650px') // 指定弹窗高度,可填写百分比,默认 690px
  115. ->success('Dcat.reload()'); // 新增成功后刷新页面
  116. return "
  117. <div style='padding:30px 0'>
  118. <span class='btn btn-success alipay-create-form'> 支付宝提现 </span> &nbsp;&nbsp;
  119. <span class='btn btn-success bank-create-form'> 银行卡提现 </span> &nbsp;&nbsp;
  120. </div>";
  121. }
  122. }