Переглянути джерело

fix(controller): 优化支付

xiansin 4 роки тому
батько
коміт
978dcf316d

+ 33 - 8
app/Admin/Controllers/UserShareController.php → app/Admin/Controllers/IncomeRecordController.php

xqd xqd xqd
@@ -3,12 +3,13 @@
 namespace App\Admin\Controllers;
 
 use App\Admin\Repositories\UserShare;
+use App\Models\UserWithdraw;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
 use Dcat\Admin\Http\Controllers\AdminController;
 
-class UserShareController extends AdminController
+class IncomeRecordController extends AdminController
 {
     /**
      * Make a grid builder.
@@ -18,16 +19,40 @@ class UserShareController extends AdminController
     protected function grid()
     {
         return Grid::make(new UserShare(), function (Grid $grid) {
+            $grid->with(['user','child','user.parent']);
             $grid->column('id')->sortable();
-            $grid->column('user_id');
-            $grid->column('child_id');
-            $grid->column('income');
+            $grid->column('user_id','名称')->display(function () {
+                return $this->user->nickname;
+            });
+            $grid->column('phone_num','手机号')->display(function () {
+                return $this->user->phone_num;
+            });
+            $grid->column('total_income','累计佣金')->display(function () {
+                return $this->user->income;
+            });
+            $grid->column('total_withdraw','已提现佣金')->display(function () {
+                return UserWithdraw::where('user_id',$this->user_id)->where('status',1)->sum('price');
+            });
+            $grid->column('recommend','推荐人')->display(function () {
+                return $this->user->parent ? $this->user->parent->nickname : '无';
+            });
+            $grid->column('child_id','下线用户')->display(function () {
+                return $this->child->nickname;
+            });
+
+            $grid->column('income','收益');
             $grid->column('created_at');
-            $grid->column('updated_at')->sortable();
-        
+
+
+            $grid->disableDeleteButton();
+            $grid->disableCreateButton();
+            $grid->disableBatchActions();
+            $grid->disableRowSelector();
+            $grid->disableActions();
+
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->equal('id');
-        
+
             });
         });
     }
@@ -63,7 +88,7 @@ class UserShareController extends AdminController
             $form->text('user_id');
             $form->text('child_id');
             $form->text('income');
-        
+
             $form->display('created_at');
             $form->display('updated_at');
         });

+ 2 - 2
app/Admin/Controllers/MemberController.php

xqd xqd
@@ -19,13 +19,14 @@ class MemberController extends AdminController
     protected function grid()
     {
         return Grid::make(new UserVip(), function (Grid $grid) {
+            $grid->model()->where('status',1);
             $grid->with(['user']);
             $grid->column('id')->sortable();
             $grid->column('user_id','用户')->display(function () {
                 return $this->user->nickname;
             });
             $grid->column('order_fee','购买价格');
-            $grid->column('created_at','购买时间');
+            $grid->column('pay_at','购买时间');
 
             $grid->disableDeleteButton();
             $grid->disableCreateButton();
@@ -35,7 +36,6 @@ class MemberController extends AdminController
 
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->equal('user.nickname','用户姓名');
-
             });
         });
     }

+ 68 - 38
app/Admin/Controllers/SettingController.php

xqd xqd
@@ -2,56 +2,77 @@
 
 namespace App\Admin\Controllers;
 
-use App\Admin\Repositories\Setting;
+use App\Models\Setting;
+use App\Models\ShareConfig;
+use Dcat\Admin\Admin;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
+use Dcat\Admin\Http\Repositories\Administrator;
+use Dcat\Admin\Layout\Column;
+use Dcat\Admin\Layout\Content;
+use Dcat\Admin\Layout\Row;
 use Dcat\Admin\Show;
 use Dcat\Admin\Http\Controllers\AdminController;
+use Dcat\Admin\Widgets\Box;
+use Dcat\Admin\Widgets\Form as WidgetForm;
 
 class SettingController extends AdminController
 {
-    /**
-     * Make a grid builder.
-     *
-     * @return Grid
-     */
-    protected function grid()
+
+    public function index(Content $content)
     {
-        return Grid::make(new Setting(), function (Grid $grid) {
-            $grid->column('service_wechat');
-            $grid->column('service_qrcode');
 
-            $grid->disableDeleteButton();
-            $grid->disableCreateButton();
-            $grid->disableBatchActions();
-            $grid->disableRowSelector();
-            $grid->disableActions();
+        $form =  new Form(new Setting(), function (Form $form) {
+            $form->action(admin_url('setting'));
+            $form->tools(
+                function (Form\Tools $tools) {
+                    $tools->disableList();
+                }
+            );
+            $form->disableCreatingCheck();
+            $form->disableEditingCheck();
+            $form->disableViewCheck();
 
-            $grid->filter(function (Grid\Filter $filter) {
-                $filter->equal('id');
 
+            $form->display('id', 'ID');
+            $form->text('name', '会员价格')->required();
+            $form->text('origin_member_price', '会员原价')->required();
+            $form->text('service_wechat', '客服微信号')->required();
+            $form->image('service_qrcode', '客服二维码')->autoUpload();
+
+
+
+            $form->saved(function (Form $form) {
+                return $form
+                    ->response()
+                    ->success(trans('admin.update_succeeded'))
+                    ->redirect('/setting');
             });
         });
+        return $content
+            ->title(trans('admin.user_setting'))
+            ->body($form->edit(Setting::orderBy('id','asc')->first()->getKey()));
     }
 
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     *
-     * @return Show
-     */
-    protected function detail($id)
+    public function save()
     {
-        return Show::make($id, new Setting(), function (Show $show) {
-            $show->field('id');
-            $show->field('service_wechat');
-            $show->field('service_qrcode');
-            $show->field('created_at');
-            $show->field('updated_at');
-        });
+        $req = request()->post();
+        $setting = Setting::orderBy('id','asc')->first();
+        if(isset($req['_column']) == 'service_qrcode'){
+            $setting->service_qrcode = '';
+        }else if(isset($req['upload_column'])){
+            $setting->member_price = $req['member_price'];
+            $setting->origin_member_price = $req['origin_member_price'];
+            $setting->service_wechat = $req['service_wechat'];
+            $setting->service_qrcode = $req['service_qrcode'];
+        }
+        $setting->save();
+        $form = new Form();
+        $response = $form->response();
+        return $response->success(__('admin.save_succeeded'));
     }
 
+
     /**
      * Make a form builder.
      *
@@ -59,13 +80,22 @@ class SettingController extends AdminController
      */
     protected function form()
     {
-        return Form::make(new Setting(), function (Form $form) {
-            $form->display('id');
-            $form->text('service_wechat');
-            $form->text('service_qrcode');
+        return Form::make(new ShareConfig(), function (Form $form) {
+            $id = $form->getKey();
+            $form->text('id', 'ID');
+            $form->text('member_price','会员价格');
+            $form->text('origin_member_price','会员原价');
+            $form->text('service_wechat','客服微信号');
+            $form->text('service_qrcode','客服二维码');
+
+        })->saved(function (Form $form, $result) {
+            $response = $form->updates()->response();
+
+            if ($result) {
+                return $response->success(__('admin.save_succeeded'));
+            }
 
-            $form->display('created_at');
-            $form->display('updated_at');
+            return $response->info(__('admin.nothing_updated'));
         });
     }
 }

+ 53 - 47
app/Admin/Controllers/ShareConfigController.php

xqd xqd
@@ -2,57 +2,55 @@
 
 namespace App\Admin\Controllers;
 
-use App\Admin\Repositories\ShareConfig;
+use App\Models\ShareConfig;
 use Dcat\Admin\Form;
-use Dcat\Admin\Grid;
-use Dcat\Admin\Show;
+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\Box;
+use Dcat\Admin\Widgets\Form as WidgetForm;
 
 class ShareConfigController extends AdminController
 {
-    /**
-     * Make a grid builder.
-     *
-     * @return Grid
-     */
-    protected function grid()
+
+    public function index(Content $content)
     {
-        return Grid::make(new ShareConfig(), function (Grid $grid) {
-            $grid->column('id')->sortable();
-            $grid->column('price');
-            $grid->column('withdraw_discount');
-            $grid->column('withdraw_desc');
-            $grid->column('is_open');
-            $grid->column('created_at');
-            $grid->column('updated_at')->sortable();
-        
-            $grid->filter(function (Grid\Filter $filter) {
-                $filter->equal('id');
-        
+
+        return $content
+            ->body(function (Row $row) {
+                $row->column(8, function (Column $column) {
+                    $form = new WidgetForm();
+                    $shareConfig = ShareConfig::orderBy('id','asc')->first()->toArray();
+                    $form->width(9, 2);
+                    $form->text('id','ID')->value($shareConfig['id'])->readOnly();
+                    $form->text('price','推荐奖励')->value($shareConfig['price']);
+                    $form->text('share_desc','分销说明')->value($shareConfig['share_desc']);
+                    $form->text('withdraw_discount','提现手续费,百分比')->value($shareConfig['withdraw_discount']);
+                    $form->text('withdraw_desc','提现说明')->value($shareConfig['withdraw_desc']);
+                    $form->switch('is_open', '是否开启?')->default($shareConfig['is_open']);
+                    $form->action('shareSetting/save');
+                    $column->append(Box::make(trans('admin.edit'), $form));
+                });
             });
-        });
     }
 
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     *
-     * @return Show
-     */
-    protected function detail($id)
+    public function save()
     {
-        return Show::make($id, new ShareConfig(), function (Show $show) {
-            $show->field('id');
-            $show->field('price');
-            $show->field('withdraw_discount');
-            $show->field('withdraw_desc');
-            $show->field('is_open');
-            $show->field('created_at');
-            $show->field('updated_at');
-        });
+        $req = request()->post();
+        $shareConfig = ShareConfig::orderBy('id','asc')->first();
+        $shareConfig->price = $req['price'];
+        $shareConfig->share_desc = $req['share_desc'];
+        $shareConfig->withdraw_discount = $req['withdraw_discount'];
+        $shareConfig->withdraw_desc = $req['withdraw_desc'];
+        $shareConfig->is_open = $req['is_open'];
+        $shareConfig->save();
+        $form = new Form();
+        $response = $form->response();
+        return $response->success(__('admin.save_succeeded'));
     }
 
+
     /**
      * Make a form builder.
      *
@@ -61,14 +59,22 @@ class ShareConfigController extends AdminController
     protected function form()
     {
         return Form::make(new ShareConfig(), function (Form $form) {
-            $form->display('id');
-            $form->text('price');
-            $form->text('withdraw_discount');
-            $form->text('withdraw_desc');
-            $form->text('is_open');
-        
-            $form->display('created_at');
-            $form->display('updated_at');
+            $id = $form->getKey();
+            $form->text('id', 'ID');
+            $form->text('price','推荐奖励');
+            $form->text('share_desc','分销说明');
+            $form->text('withdraw_discount','提现手续费,百分比');
+            $form->text('withdraw_desc','提现说明');
+            $form->switch('is_open', '是否开启?')->default(1);
+
+        })->saved(function (Form $form, $result) {
+            $response = $form->updates()->response();
+
+            if ($result) {
+                return $response->success(__('admin.save_succeeded'));
+            }
+
+            return $response->info(__('admin.nothing_updated'));
         });
     }
 }

+ 33 - 20
app/Admin/Controllers/UserWithdrawController.php

xqd xqd
@@ -18,20 +18,36 @@ class UserWithdrawController extends AdminController
     protected function grid()
     {
         return Grid::make(new UserWithdraw(), function (Grid $grid) {
+            $grid->with(['user']);
             $grid->column('id')->sortable();
-            $grid->column('user_id');
-            $grid->column('name');
-            $grid->column('type');
-            $grid->column('account');
-            $grid->column('price');
-            $grid->column('desc');
-            $grid->column('status');
-            $grid->column('created_at');
-            $grid->column('updated_at')->sortable();
-        
+            $grid->column('user_id','名称')->display(function () {
+                return $this->user->nickname;
+            });
+            $grid->column('phone_num','手机号')->display(function () {
+                return $this->user->phone_num;
+            });
+            $grid->column('price','提现金额');
+            $grid->column('account','提现账号');
+            $grid->column('created_at','申请时间')->sortable();
+            $grid->column('desc','备注');
+            $grid->column('status','状态')
+                ->using([0=> '待审核',1 => '已通过', 2 => '已拒绝'])
+                ->dot(
+                    [
+                        1 => 'success',
+                        2 => 'danger',
+                    ],
+                    'primary' // 第二个参数为默认值
+                );
+
+            $grid->disableDeleteButton();
+            $grid->disableCreateButton();
+            $grid->disableBatchActions();
+            $grid->disableRowSelector();
+
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->equal('id');
-        
+
             });
         });
     }
@@ -67,15 +83,12 @@ class UserWithdrawController extends AdminController
     protected function form()
     {
         return Form::make(new UserWithdraw(), function (Form $form) {
-            $form->display('id');
-            $form->text('user_id');
-            $form->text('name');
-            $form->text('type');
-            $form->text('account');
-            $form->text('price');
-            $form->text('desc');
-            $form->text('status');
-        
+            $form->display('name');
+            $form->display('account');
+            $form->display('price');
+            $form->display('desc');
+            $form->switch('status', '通过?')->default(1);
+
             $form->display('created_at');
             $form->display('updated_at');
         });

+ 2 - 0
app/Admin/Repositories/UserShare.php

xqd xqd
@@ -2,6 +2,7 @@
 
 namespace App\Admin\Repositories;
 
+use App\Models\User;
 use App\Models\UserShare as Model;
 use Dcat\Admin\Repositories\EloquentRepository;
 
@@ -13,4 +14,5 @@ class UserShare extends EloquentRepository
      * @var string
      */
     protected $eloquentClass = Model::class;
+
 }

+ 7 - 0
app/Admin/routes.php

xqd
@@ -15,5 +15,12 @@ Route::group([
     $router->resource('users', 'UserController');
     $router->resource('member', 'MemberController');
     $router->resource('setting', 'SettingController');
+    $router->resource('incomeRecord', 'IncomeRecordController');
+    $router->resource('withdraw', 'UserWithdrawController');
+    $router->resource('shareSetting', 'ShareConfigController');
+    $router->post('shareSetting/save', 'ShareConfigController@save');
+
+    $router->resource('setting', 'SettingController');
+    //$router->post('setting/save', 'SettingController@save');
 
 });

+ 5 - 1
app/Models/Setting.php

xqd
@@ -23,12 +23,16 @@ use Illuminate\Database\Eloquent\Model;
  * @method static \Illuminate\Database\Eloquent\Builder|Setting whereServiceWechat($value)
  * @method static \Illuminate\Database\Eloquent\Builder|Setting whereUpdatedAt($value)
  * @mixin \Eloquent
+ * @property string $origin_member_price 会员原价
+ * @property string $member_price 会员金额
+ * @method static \Illuminate\Database\Eloquent\Builder|Setting whereMemberPrice($value)
+ * @method static \Illuminate\Database\Eloquent\Builder|Setting whereOriginMemberPrice($value)
  */
 class Setting extends Model
 {
 	use HasDateTimeFormatter;
 
     protected $hidden = [
-        'id','created_at','updated_at'
+        'created_at','updated_at'
     ];
 }

+ 1 - 0
app/Models/User.php

xqd
@@ -51,6 +51,7 @@ use Tymon\JWTAuth\Contracts\JWTSubject;
  * @method static \Illuminate\Database\Eloquent\Builder|User whereShareQrcode($value)
  * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value)
  * @mixin \Eloquent
+ * @property-read User $parent
  */
 class User extends Authenticatable implements JWTSubject
 {

+ 2 - 0
app/Models/UserShare.php

xqd
@@ -25,6 +25,8 @@ use Illuminate\Database\Eloquent\Model;
  * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereUpdatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereUserId($value)
  * @mixin \Eloquent
+ * @property-read \App\Models\User $child
+ * @property-read \App\Models\User $user
  */
 class UserShare extends Model
 {

+ 2 - 0
app/Models/UserVip.php

xqd
@@ -32,6 +32,8 @@ use Illuminate\Database\Eloquent\Model;
  * @method static \Illuminate\Database\Eloquent\Builder|UserVip whereUpdatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder|UserVip whereUserId($value)
  * @mixin \Eloquent
+ * @property string|null $pay_at
+ * @method static \Illuminate\Database\Eloquent\Builder|UserVip wherePayAt($value)
  */
 class UserVip extends Model
 {

+ 7 - 0
app/Models/UserWithdraw.php

xqd xqd
@@ -33,6 +33,8 @@ use Illuminate\Database\Eloquent\Model;
  * @method static \Illuminate\Database\Eloquent\Builder|UserWithdraw whereUpdatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder|UserWithdraw whereUserId($value)
  * @mixin \Eloquent
+ * @property string|null $check_at
+ * @method static \Illuminate\Database\Eloquent\Builder|UserWithdraw whereCheckAt($value)
  */
 class UserWithdraw extends Model
 {
@@ -49,4 +51,9 @@ class UserWithdraw extends Model
         'check_at'
     ];
 
+    public function user()
+    {
+        return $this->belongsTo(User::class);
+    }
+
 }