2 Commits 6ae459d03e ... 23a56d44cf

Tác giả SHA1 Thông báo Ngày
  phperli 23a56d44cf 后台禁用某些不必要的操作,会员审核积分奖励等 3 năm trước cách đây
  phperli 1d11f7ae5a 如果积分某个奖励后台禁用了,不赠送积分 3 năm trước cách đây

+ 0 - 48
app/Admin/Actions/Games/GameScores.php

xqd xqd
@@ -12,18 +12,15 @@ use Dcat\Admin\Widgets\Table;
 class GameScores extends RowAction
 {
     protected $title;
-
     protected $type;
 
     public function href(): string
     {
-//        parent::href(); // TODO: Change the autogenerated stub
         if($this->type=='game'){
             return "/admin/game_user_scores?game_id=".$this->getKey();
         }else{
             return "/admin/game_user_scores?user_id=".$this->getKey();
         }
-
     }
 
     public function __construct(string $type = 'game')
@@ -32,49 +29,4 @@ class GameScores extends RowAction
         $this->title = '<i class="feather icon-aperture"></i> '.trans('games.fields.game_record');
     }
 
-    /**
-     * 设置确认弹窗信息,如果返回空值,则不会弹出弹窗
-     *
-     * 允许返回字符串或数组类型
-     *
-     * @return array|string|void
-     */
-    public function confirm()
-    {
-
-    }
-
-    /**
-     * 处理请求
-     *
-     * @param Request $request
-     *
-     * @return \Dcat\Admin\Actions\Response
-     */
-    public function handle()
-    {
-//        return $this->response()
-//            ->success('Processed successfully: '.$this->getKey())
-//            ->redirect('/');
-    }
-
-    /**
-     * 设置要POST到接口的数据
-     *
-     * @return array
-     */
-    public function parameters()
-    {
-        return [];
-    }
-
-//    public function render()
-//    {
-//        $form = UsersInfoForm::make()->payload(['user_id'=>$this->getKey()]);
-//        return Modal::make()
-//            ->lg()
-//            ->title($this->title)
-//            ->body($form)
-//            ->button('<i class="feather icon-settings"></i> '.$this->title);
-//    }
 }

+ 0 - 4
app/Admin/Actions/Users/FansList.php

xqd
@@ -19,10 +19,6 @@ class FansList extends LazyRenderable
 
         $grid->disableRowSelector();
         $grid->disableActions();
-//        $grid->actions(function (Grid\Displayers\Actions $actionss) {
-//            $actionss->disableView();
-//            $actionss->disableEdit();
-//        });
 
         return $grid;
     }

+ 25 - 0
app/Admin/Actions/Users/IntegralList.php

xqd
@@ -0,0 +1,25 @@
+<?php
+namespace App\Admin\Actions\Users;
+
+use App\Models\UserIntegral;
+use Dcat\Admin\Grid;
+use Dcat\Admin\Grid\LazyRenderable;
+
+class IntegralList extends LazyRenderable
+{
+    public function grid(): Grid
+    {
+        $grid = new Grid(new UserIntegral());
+        $grid->model()->where('user_id',$this->payload['id'])->orderByDesc('id');
+        $grid->column('type',trans('user.fields.integral_type'));
+        $grid->column('amount',trans('user.fields.amount'));
+        $grid->column('after_integral', trans('user.fields.after_integral'));
+        $grid->quickSearch(['type']);
+        $grid->paginate(20);
+
+        $grid->disableRowSelector();
+        $grid->disableActions();
+
+        return $grid;
+    }
+}

+ 63 - 52
app/Admin/Controllers/CourseUserController.php

xqd xqd xqd
@@ -3,7 +3,10 @@
 namespace App\Admin\Controllers;
 
 use App\Admin\Actions\Users\UserCourse;
+use App\Models\Course;
 use App\Models\CourseUser;
+use App\Models\User;
+use App\Services\Api\UserService;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Http\Controllers\AdminController;
@@ -19,35 +22,44 @@ class CourseUserController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new CourseUser());
-        $grid->model()->with(['user:id,name,avatar','course:id,name'])->orderByDesc('id');
-
+        $grid->model()->with(['user:id,name,avatar', 'course:id,name'])->orderByDesc('id');
         $grid->column('id')->sortable();
-        $grid->column('course.name',trans('course-user.fields.course_id'));
-        $grid->column('user_id')->display(function (){
-            if($this->user){
+        $grid->column('user_id')->display(function () {
+            if ($this->user) {
                 $str = "";
-                $str.="<div style='margin-right:10px;display: flex;align-items: center'>";
-                $str.='<img data-action="preview-img" src="'.$this->user->avatar.'" style="max-width:50px;max-height:50px;cursor:pointer;margin-right:5px;" class="img img-thumbnail">';
-                $str.='<div>';
-                $str.='<p style="margin-bottom: 2px">ID:'.$this->user->id.'</p>';
-                $str.='<p>'.trans('user.fields.name').':'.$this->user->name.'</p>';
-                $str.="</div>";
-                $str.="</div>";
+                $str .= "<div style='margin-right:10px;display: flex;align-items: center'>";
+                $str .= '<img data-action="preview-img" src="' . $this->user->avatar . '" style="max-width:50px;max-height:50px;cursor:pointer;margin-right:5px;" class="img img-thumbnail">';
+                $str .= '<div>';
+                $str .= '<p style="margin-bottom: 2px">ID:' . $this->user->id . '</p>';
+                $str .= '<p>' . trans('user.fields.name') . ':' . $this->user->name . '</p>';
+                $str .= "</div>";
+                $str .= "</div>";
                 return $str;
-            }else{
+            } else {
                 return '';
             }
-
         });
-        $grid->column('type')->using([1=>trans('course-user.fields.home'),2=>trans('course-user.fields.vice')])->label(['','green','blue']);
+        $grid->column('course.name', trans('course-user.fields.course_id'));
         $grid->column('member_name');
         $grid->column('member_no');
         $grid->column('whs');
-        $grid->column('status')->using([0=>trans('course-user.fields.check_pending'),1=>trans('course-user.fields.pass'),2=>trans('course-user.fields.refuse')])->label(['yellow','green','danger']);
+
+
+        $grid->column('type')->using([
+            1 => trans('course-user.fields.home'),
+            2 => trans('course-user.fields.vice')])->label(['', 'green', 'blue']);
+
+        $grid->column('status')->using([
+            0 => trans('course-user.fields.check_pending'),
+            1 => trans('course-user.fields.pass'),
+            2 => trans('course-user.fields.refuse')])->label(['yellow', 'green', 'danger']);
+
         $grid->column('created_at');
         $grid->filter(function (Grid\Filter $filter) {
-            $filter->equal('id');
-
+            $filter->panel();
+            $filter->equal('id')->width(3);
+            $filter->like('user.name')->width(3);
+            $filter->like('course.name')->width(3);
         });
 
         //操作管理
@@ -61,48 +73,47 @@ class CourseUserController extends AdminController
         return $grid;
     }
 
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     *
-     * @return Show
-     */
-    protected function detail($id)
-    {
-        return Show::make($id, new CourseUser(), function (Show $show) {
-            $show->field('id');
-            $show->field('course_id');
-            $show->field('user_id');
-            $show->field('type');
-            $show->field('member_name');
-            $show->field('member_no');
-            $show->field('whs');
-            $show->field('status');
-            $show->field('created_at');
-            $show->field('updated_at');
-        });
-    }
-
     /**
      * Make a form builder.
-     *
      * @return Form
      */
     protected function form()
     {
         return Form::make(new CourseUser(), function (Form $form) {
             $form->display('id');
-            $form->text('course_id');
-            $form->text('user_id');
-            $form->text('type');
-            $form->text('member_name');
-            $form->text('member_no');
-            $form->text('whs');
-            $form->text('status');
-
-            $form->display('created_at');
-            $form->display('updated_at');
+
+            $form->select('course_id')->options(function () {
+                return Course::query()->whereNull('deleted_at')->orderBy('id')->pluck('name', 'id');
+            })->width(6)->required();
+
+            $form->select('user_id')->options(function () {
+                return User::query()->whereNull('deleted_at')->orderBy('id')->pluck('name', 'id');
+            })->width(6)->required();
+
+            $form->radio('type')->options([
+                1 => trans('course-user.fields.home'),
+                2 => trans('course-user.fields.vice')])->default(2)->width(6)->required();
+
+            $form->text('member_name')->width(6)->required();
+            $form->text('member_no')->width(6)->required();
+            $form->text('whs')->width(6)->required();
+
+            $form->hidden('action_from')->value(2); //后台添加
+            $form->hidden('status')->value(1); //后台添加的直接通过
+
+            $form->saving(function (Form $form) {
+                if ($form->type == 1) {
+                    CourseUser::where('user_id', $form->user_id)->update(['type' => 2]);
+                }
+            });
+
+            $form->saved(function (Form $form) {
+                if ($form->isCreating()) {
+                    info($form->user_id);
+                    UserService::changeIntegral($form->user_id, 4); //赠送积分
+                }
+            });
+
             $form->footer(function ($footer) {
                 // 去掉`查看`checkbox
                 $footer->disableViewCheck();

+ 2 - 16
app/Admin/Controllers/FeedsController.php

xqd xqd xqd xqd
@@ -28,7 +28,6 @@ class FeedsController extends AdminController
         $grid = new Grid(new Feed());
         $grid->model()->with(['user:id,name,avatar'])->orderByDesc('id');
         $grid->column('id')->sortable();
-//        $grid->column('user.avatar','头像')->image("",50);;
         $grid->column('user_id')->display(function (){
             if($this->user){
                 $str = "";
@@ -43,7 +42,6 @@ class FeedsController extends AdminController
             }else{
                 return '';
             }
-
         });
         $grid->column('team_id')->display(function ($res){
             if($res>0){
@@ -56,7 +54,6 @@ class FeedsController extends AdminController
                 }else{
                     return "";
                 }
-
             }else{
                 return '<span class="label" style="background:#21b978">'.trans('feeds.fields.personal').'</span>';
             }
@@ -70,19 +67,8 @@ class FeedsController extends AdminController
         });
         $grid->column('content')->limit(30);
         $grid->column('file_url')->display(function ($v){
-            if(isset($v)&&!empty($v)){
-                $v = json_decode($v,true);
-                $str = '';
-                if(!empty($v)&&count($v)>0){
-                    foreach ($v as $item){
-                        $str.='<img data-action="preview-img" src="'.$item.'" style="max-width:50px;max-height:200px;cursor:pointer" class="img img-thumbnail">';
-                    }
-                }
-                return $str;
-            }else{
-                return "";
-            }
-        });
+            return json_decode($v,true);
+        })->image('', 60,60);
         $grid->column('status')->switch();
         $grid->column('like_num');
         $grid->column('forward_num');

+ 2 - 22
app/Admin/Controllers/GameTypeController.php

xqd
@@ -22,28 +22,8 @@ class GameTypeController extends AdminController
             $grid->column('name');
             $grid->column('rule');
             $grid->column('scale');
-        
-            $grid->filter(function (Grid\Filter $filter) {
-                $filter->equal('id');
-        
-            });
-        });
-    }
-
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     *
-     * @return Show
-     */
-    protected function detail($id)
-    {
-        return Show::make($id, new GameType(), function (Show $show) {
-            $show->field('id');
-            $show->field('name');
-            $show->field('rule');
-            $show->field('scale');
+            $grid->disableFilter();
+            $grid->disableBatchActions();
         });
     }
 

+ 15 - 16
app/Admin/Controllers/GamesController.php

xqd
@@ -78,27 +78,26 @@ class GamesController extends AdminController
         $grid->column('created_at')->display(function ($res) {
             return date('Y-m-d H:i', strtotime($res));
         });
-        $grid->filter(function (Grid\Filter $filter) {
-            $filter->equal('id');
-            $filter->like('name');
-            $game_type = GameType::query()->get();
-            $game_type_arr = array();
-            foreach ($game_type as $v) {
-                $game_type_arr[$v['id']] = $v['name'];
-            }
-            $filter->equal('game_type_id')->select($game_type_arr);
-            $course = Course::query()->get();
-            $course_arr = array();
-            foreach ($course as $v) {
-                $course_arr[$v['id']] = $v['name'];
-            }
-            $filter->equal('course_id')->select($course_arr);
-        });
 
         $grid->actions(function (Grid\Displayers\Actions $actions) {
             $actions->append(new GameScores('game'));
         });
 
+        $grid->disableActions();
+        $grid->disableCreateButton();
+        $grid->disableRowSelector();
+
+        $grid->filter(function (Grid\Filter $filter) {
+            $filter->panel();
+            $filter->equal('id')->width(3);
+            $filter->like('name')->width(3);
+            $types = GameType::query()->pluck('name','id');
+            $filter->equal('game_type_id')->select($types)->width(3);
+            $courses = Course::query()->whereNull('deleted_at')->pluck('name','id');
+            $filter->equal('course_id')->select($courses)->width(3);
+        });
+
+
         return $grid;
     }
 

+ 6 - 9
app/Admin/Controllers/TeamController.php

xqd xqd xqd
@@ -31,7 +31,6 @@ class TeamController extends AdminController
         $grid->column('id')->sortable();
         $grid->column('img')->image('', 50);
         $grid->column('name');
-//        $grid->column('creator');
         $grid->column('creator_s.name', trans('team.fields.creator'));
         $grid->column('address');
         $grid->column('member_counts')->display(function ($res) {
@@ -45,16 +44,8 @@ class TeamController extends AdminController
         });
         $grid->column('slogan');
         $grid->column('desc');
-
         $grid->column('allow_join')->switch('success', true);
         $grid->column('set_date');
-//        $grid->column('created_at');
-//        $grid->column('updated_at')->sortable();
-
-        $grid->filter(function (Grid\Filter $filter) {
-            $filter->equal('id');
-            $filter->like('name');
-        });
 
         $grid->actions(function (Grid\Displayers\Actions $actions) {
             $actions->append(new TeamFeeds(User::class));
@@ -62,6 +53,12 @@ class TeamController extends AdminController
             $actions->disableView();
         });
 
+        $grid->filter(function (Grid\Filter $filter) {
+            $filter->panel();
+            $filter->equal('id')->width(3);
+            $filter->like('name')->width(3);
+        });
+
         return $grid;
     }
 

+ 3 - 3
app/Admin/Controllers/TeamPhotoController.php

xqd
@@ -33,9 +33,9 @@ class TeamPhotoController extends AdminController
         $grid->column('created_at');
         $grid->filter(function (Grid\Filter $filter) {
             $filter->panel();
-            $filter->equal('id')->width(4);
-            $filter->like('user.name',trans('user.fields.name'))->width(4);
-            $filter->equal('team_id',trans('team.labels.team'))->width(4);
+            $filter->equal('id')->width(3);
+            $filter->like('user.name',trans('user.fields.name'))->width(3);
+            $filter->equal('team_id',trans('team.labels.team'))->width(3);
         });
 
         $grid->actions(function (Grid\Displayers\Actions $actions) {

+ 73 - 63
app/Admin/Controllers/UserController.php

xqd xqd xqd xqd xqd xqd
@@ -5,6 +5,7 @@ namespace App\Admin\Controllers;
 use App\Admin\Actions\Games\GameScores;
 use App\Admin\Actions\Users\FansList;
 use App\Admin\Actions\Users\FollowList;
+use App\Admin\Actions\Users\IntegralList;
 use App\Admin\Actions\Users\SetUserInfo;
 use App\Admin\Actions\Users\UserAction;
 use App\Admin\Actions\Users\UserAuth;
@@ -30,15 +31,34 @@ class UserController extends AdminController
     {
         $grid = new Grid(new User());
         $grid->model()->with('user_extra')->orderBy('id', 'desc');
-
         $grid->column('id')->sortable();
-        $grid->column('name');
-        $grid->column('avatar')->image("", 50);
-        $grid->column('email');
-        $grid->column('mobile');
-        $grid->column('sex')->using([0 => trans('user.fields.unknown'), 1 => trans('user.fields.man'), 2 => trans('user.fields.woman')])->label(['gray', 'primary', 'danger']);
-        $grid->column('is_auth')->using([0 => trans('user.fields.unauthorized'), 1 => trans('user.fields.organization'), 2 => trans('user.fields.public_figure')])->label(['gray', 'success', 'red']);;
-        $grid->column('online', trans('user.fields.online_status'))->using([0 => trans('user.fields.offline'), 1 => trans('user.fields.online')])->label(['gray', 'success']);
+        $grid->column('avatar')->display(function () {
+            $str = "";
+            $str .= "<div style='margin-right:10px;display: flex;align-items: center'>";
+            $str .= '<img data-action="preview-img" src="' . $this->avatar . '" style="height:60px;width:60px;cursor:pointer;margin-right:10px;" class="img img-thumbnail">';
+            $str .= '<div>';
+            $str .= '<p style="margin-bottom: 5px">姓名:' . $this->name . '</p>';
+            $str .= '<p style="margin-bottom: 0px">电话:' . $this->mobile . '</p>';
+            $str .= '<p style="margin-bottom: 0px">邮箱:' . $this->email . '</p>';
+            $str .= "</div>";
+            $str .= "</div>";
+            return $str;
+        });
+
+        $grid->column('sex')->using([
+            0 => trans('user.fields.unknown'),
+            1 => trans('user.fields.man'),
+            2 => trans('user.fields.woman')])->label(['gray', 'primary', 'danger']);
+
+        $grid->column('user_extra.integral', trans('user.fields.integral'))->display(function ($res) {
+            $form = IntegralList::make()->payload(['id' => $this->id]);
+            return Modal::make()
+                ->lg()
+                ->title(trans('user.fields.integral'))
+                ->body($form)
+                ->button('<i class="feather icon-align-right"></i> ' . $res);
+        });
+
         $grid->column('user_extra.fans_count', trans('user.fields.fansNum'))->display(function ($res) {
             $form = FansList::make()->payload(['id' => $this->id]);
             return Modal::make()
@@ -47,6 +67,7 @@ class UserController extends AdminController
                 ->body($form)
                 ->button('<i class="feather icon-align-right"></i> ' . $res);
         });
+
         $grid->column('user_extra.follow_count', trans('user.fields.followNum'))->display(function ($res) {
             $form = FollowList::make()->payload(['id' => $this->id]);
             return Modal::make()
@@ -55,21 +76,39 @@ class UserController extends AdminController
                 ->body($form)
                 ->button('<i class="feather icon-align-right"></i> ' . $res);
         });
+
+        $grid->column('is_auth')->using([
+            0 => trans('user.fields.unauthorized'),
+            1 => trans('user.fields.organization'),
+            2 => trans('user.fields.public_figure')])->label(['gray', 'success', 'red']);
+
+        $grid->column('online', trans('user.fields.online_status'))->using([
+            0 => trans('user.fields.offline'),
+            1 => trans('user.fields.online')])->label(['gray', 'success']);
+
         $grid->column('status')->switch('success', true);
         $grid->column('created_at');
 
-        // 禁用
-        $grid->disableRowSelector();
         $grid->filter(function (Grid\Filter $filter) {
-            $filter->equal('id');
-            $filter->like('mobile');
-            $filter->like('email');
-            $filter->like('name');
-            $filter->equal('sex')->select(['1' => trans('user.fields.man'), '2' => trans('user.fields.woman')]);
-            $filter->equal('is_auth')->select(['0' => trans('user.fields.unauthorized'), '1' => trans('user.fields.organization'), '2' => trans('user.fields.public_figure')]);
-            $filter->equal('status')->select(['1' => trans('user.fields.normal'), '0' => trans('user.fields.frozen')]);
+            $filter->panel();
+            $filter->equal('id')->width(3);
+            $filter->like('mobile')->width(3);
+            $filter->like('email')->width(3);
+            $filter->like('name')->width(3);
+            $filter->equal('sex')->select([
+                1 => trans('user.fields.man'),
+                2 => trans('user.fields.woman')
+            ])->width(3);
+            $filter->equal('is_auth')->select([
+                0 => trans('user.fields.unauthorized'),
+                1 => trans('user.fields.organization'),
+                2 => trans('user.fields.public_figure')
+            ])->width(3);
+            $filter->equal('status')->select([
+                0 => trans('user.fields.frozen'),
+                1 => trans('user.fields.normal'),
+            ])->width(3);
         });
-
         //操作管理
         $grid->actions(function (Grid\Displayers\Actions $actions) {
             $actions->disableView();
@@ -77,44 +116,14 @@ class UserController extends AdminController
             $actions->append(new UserAuth(User::class));
             $actions->append(new GameScores('user'));
         });
-
-        //批量操作
-        $grid->batchActions(function (Grid\Tools\BatchActions $batch) {
-            $batch->disableDelete();
-        });
-
+        // 禁用
+        $grid->disableRowSelector();
+        $grid->disableCreateButton();
+        $grid->disableBatchActions();
 
         return $grid;
     }
 
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     *
-     * @return Show
-     */
-    protected function detail($id)
-    {
-        return Show::make($id, new User(), function (Show $show) {
-            $show->field('id');
-            $show->field('name');
-            $show->field('avatar');
-            $show->field('email');
-            $show->field('mobile');
-            $show->field('bio');
-            $show->field('sex');
-            $show->field('location');
-            $show->field('bg');
-            $show->field('tencent_im_user_id');
-            $show->field('register_ip');
-            $show->field('last_login_ip');
-            $show->field('is_auth');
-            $show->field('online');
-            $show->field('created_at');
-            $show->field('updated_at');
-        });
-    }
 
     /**
      * Make a form builder.
@@ -124,17 +133,18 @@ class UserController extends AdminController
     protected function form()
     {
         return Form::make(new User(), function (Form $form) {
-            $form->display('id');
-            $form->text('name');
-            $form->image('avatar');
-            $form->text('email');
-            $form->text('mobile');
-            $form->text('bio');
-            $form->image('bg');
-            $form->text('tencent_im_user_id')->readOnly();
-            $form->switch('status')->default(1);
-            $form->display('created_at');
-            $form->display('updated_at');
+            $form->display('id')->width(6);
+            $form->text('name')->width(6);
+            $form->image('avatar')->width(6);
+            $form->text('email')->width(6);
+            $form->text('mobile')->width(6);
+            $form->textarea('bio');
+            $form->image('bg')->width(6);
+            $form->text('tencent_im_user_id')->readOnly()->width(6);
+            $form->switch('status')->default(1)->width(6);
+            $form->display('created_at')->width(6);
+            $form->display('updated_at')->width(6);
+
             $form->footer(function ($footer) {
                 // 去掉`查看`checkbox
                 $footer->disableViewCheck();

+ 28 - 40
app/Admin/Controllers/UserIdentifyController.php

xqd xqd xqd
@@ -27,23 +27,39 @@ class UserIdentifyController extends AdminController
             $grid->column('name');
             $grid->column('email');
             $grid->column('mobile');
-            $grid->column('sex')->using([0=>trans('user.fields.unknown'),1=>trans('user.fields.man'),2=>trans('user.fields.woman')])->label(['gray','primary','danger']);
+
+            $grid->column('sex')->using([
+                0=>trans('user.fields.unknown'),
+                1=>trans('user.fields.man'),
+                2=>trans('user.fields.woman')])->label(['gray','primary','danger']);
+
             $grid->column('bio');
             $grid->column('birthday');
-            $grid->column('action_type')->using([0=>trans('user.fields.unknown'),1=>trans('user-identify.fields.background_add'),2=>trans('user-identify.fields.user_apply')])->label(['gray','primary','blue']);
-            $grid->column('type')->using([0=>trans('user.fields.unknown'),1=>trans('user.fields.organization'),2=>trans('user.fields.public_figure')])->label(['gray','primary','blue']);
-            $grid->column('status')->using([0=>trans('user.fields.unauthorized'),1=>trans('user.fields.authorized')])->label(['gray','success']);
+
+            $grid->column('action_type')->using([
+                0=>trans('user.fields.unknown'),
+                1=>trans('user-identify.fields.background_add'),
+                2=>trans('user-identify.fields.user_apply')])->label(['gray','primary','blue']);
+
+            $grid->column('type')->using([
+                0=>trans('user.fields.unknown'),
+                1=>trans('user.fields.organization'),
+                2=>trans('user.fields.public_figure')])->label(['gray','primary','blue']);
+
+            $grid->column('status')->using([
+                0=>trans('user.fields.unauthorized'),
+                1=>trans('user.fields.authorized')])->label(['gray','success']);
+
             $grid->column('created_at');
-//            $grid->column('updated_at')->sortable();
 
             $grid->filter(function (Grid\Filter $filter) {
-                $filter->equal('id');
-                $filter->equal('user_id');
-                $filter->like('mobile');
-                $filter->like('email');
-                $filter->like('name');
-                $filter->equal('status')->select(['0'=>trans('user.fields.unauthorized'),'1'=>trans('user.fields.authorized')]);
-
+                $filter->panel();
+                $filter->equal('id')->width(3);
+                $filter->equal('user_id')->width(3);
+                $filter->like('mobile')->width(3);
+                $filter->like('email')->width(3);
+                $filter->like('name')->width(3);
+                $filter->equal('status')->select(['0'=>trans('user.fields.unauthorized'),'1'=>trans('user.fields.authorized')])->width(3);
             });
             //操作管理
             $grid->actions(function (Grid\Displayers\Actions $actions) {
@@ -56,33 +72,6 @@ class UserIdentifyController extends AdminController
         });
     }
 
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     *
-     * @return Show
-     */
-    protected function detail($id)
-    {
-        return Show::make($id, new UserIdentify(), function (Show $show) {
-            $show->field('id');
-            $show->field('user_id');
-            $show->field('name');
-            $show->field('email');
-            $show->field('mobile');
-            $show->field('bio');
-            $show->field('sex');
-            $show->field('birthday');
-            $show->field('avatar');
-            $show->field('action_type');
-            $show->field('type');
-            $show->field('status');
-            $show->field('created_at');
-            $show->field('updated_at');
-        });
-    }
-
     /**
      * Make a form builder.
      *
@@ -103,7 +92,6 @@ class UserIdentifyController extends AdminController
             $form->text('action_type');
             $form->text('type');
             $form->text('status');
-
             $form->display('created_at');
             $form->display('updated_at');
             $form->footer(function ($footer) {

+ 1 - 0
app/Http/Controllers/V1/CourseController.php

xqd
@@ -42,6 +42,7 @@ class CourseController extends Controller
                 $courseUser->member_name = $request->member_name;
                 $courseUser->member_no = $request->member_no;
                 $courseUser->whs = $request->whs;
+                $courseUser->action_from = 1; //用户提交
                 $courseUser->status = 0; //待审核
                 if (!$courseUser->save()) {
                     throw new Exception(trans('api.DATA_SAVE_FALSE'));

+ 17 - 15
app/Services/Api/UserService.php

xqd
@@ -541,22 +541,24 @@ class UserService
     {
         DB::beginTransaction();
         try {
-            $amount = IntegralSetting::find($type)->amount;
-            if ($add == '+') {
-                UserExtra::query()->where('user_id', $userId)->increment('integral', $amount);
-            } else {
-                UserExtra::query()->where('user_id', $userId)->decrement('integral', $amount);
-                $amount = 0 - $amount; //变为 负数
+            $integralSetting = IntegralSetting::query()->where('id', $type)->where('status', 1)->first();
+            if (!empty($integralSetting)) {
+                $amount = $integralSetting->amount;
+                if ($add == '+') {
+                    UserExtra::query()->where('user_id', $userId)->increment('integral', $amount);
+                } else {
+                    UserExtra::query()->where('user_id', $userId)->decrement('integral', $amount);
+                    $amount = 0 - $amount; //变为 负数
+                }
+                $nowIntegral = UserIntegral::query()->where('user_id', $userId)->orderByDesc('id')->value('after_integral') ?: 0;
+                $userIntegral = new UserIntegral(); //这里不能用单例,否则会出现数记录据漏写
+                $userIntegral->user_id = $userId;
+                $userIntegral->type = $type;
+                $userIntegral->before_integral = $nowIntegral;
+                $userIntegral->amount = $amount;
+                $userIntegral->after_integral = $nowIntegral + $amount;
+                $userIntegral->save();
             }
-            $nowIntegral  = UserIntegral::query()->where('user_id', $userId)->orderByDesc('id')->value('after_integral') ?: 0;
-            $userIntegral = new UserIntegral(); //这里不能用单例,否则会出现数记录据漏写
-            $userIntegral->user_id = $userId;
-            $userIntegral->type = $type;
-            $userIntegral->before_integral = $nowIntegral;
-            $userIntegral->amount = $amount;
-            $userIntegral->after_integral = $nowIntegral + $amount;
-            $userIntegral->save();
-
             DB::commit();
         } catch (Exception $exception) {
             ErrorMsgServive::write($exception, request()->url());

+ 4 - 0
resources/lang/en/menu.php

xqd
@@ -35,5 +35,9 @@ return [
     'chats'=>'chat',
     'chat_team'=>'chat team',
     'Setting'=>'Setting',
+    'Goods'=>'Goods',
+    'Goods_list'=>'Goods List',
+    'Order'=>'Order',
     'Site_settings'=>'Site settings',
+    'Integral_setting' => 'Integral Setting',
 ];

+ 1 - 0
resources/lang/zh/menu.php

xqd
@@ -39,6 +39,7 @@ return [
     'chats'=>'单聊列表',
     'chat_team'=>'群聊列表',
     'Setting'=>'系统配置',
+
     'Goods'=>'积分商品',
     'Goods_list'=>'商品列表',
     'Order'=>'兑换订单',

+ 4 - 0
resources/lang/zh/user.php

xqd xqd
@@ -30,6 +30,7 @@ return [
         'public_figure' => '公众人物',
         'fansNum' => '粉丝数',
         'followNum' => '关注数',
+        'integral' => '积分',
         'status' => '状态',
         'fansList' => '粉丝列表',
         'followList' => '关注列表',
@@ -37,6 +38,9 @@ return [
         'frozen' => '冻结',
         'modify_account' => '修改账户',
         'user_authentication' => '用户认证',
+        'integral_type' => '积分类型',
+        'amount' => '积分变化值',
+        'after_integral' => '最新积分',
     ],
     'help'=>[
         'mobile_help'=>'手机号,不修改则不变',