From a8ddfa9ec9592eb13c4740cf31bb43c4e076cbdc Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Thu, 30 Dec 2021 13:38:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=85=E5=80=BC=E6=89=A3?= =?UTF-8?q?=E5=87=8F=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/BalanceLogController.php | 9 ++- app/Admin/Controllers/PointsLogController.php | 81 +++++++++++++++++++ app/Admin/Controllers/WalletLogController.php | 9 ++- app/Admin/Repositories/PointsLog.php | 16 ++++ app/Admin/routes.php | 4 + app/Models/PointsLog.php | 9 ++- database/seeders/AdminPermissionSeeder.php | 24 ++++++ resources/lang/zh_CN/points-log.php | 20 +++++ 8 files changed, 167 insertions(+), 5 deletions(-) create mode 100644 app/Admin/Controllers/PointsLogController.php create mode 100644 app/Admin/Repositories/PointsLog.php create mode 100644 resources/lang/zh_CN/points-log.php diff --git a/app/Admin/Controllers/BalanceLogController.php b/app/Admin/Controllers/BalanceLogController.php index 852af92b..726f424b 100644 --- a/app/Admin/Controllers/BalanceLogController.php +++ b/app/Admin/Controllers/BalanceLogController.php @@ -5,6 +5,7 @@ namespace App\Admin\Controllers; use App\Admin\Extensions\Grid\Tools\Balance\Deduction; use App\Admin\Extensions\Grid\Tools\Balance\Recharge; use App\Admin\Repositories\BalanceLog; +use Dcat\Admin\Admin; use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Http\Controllers\AdminController; @@ -22,8 +23,12 @@ class BalanceLogController extends AdminController $builder = BalanceLog::with('user'); return Grid::make($builder, function (Grid $grid) { $grid->tools(function (Grid\Tools $tools) { - $tools->append(new Recharge()); - $tools->append(new Deduction()); + if (Admin::user()->can('dcat.admin.balance_logs.recharge')) { + $tools->append(new Recharge()); + } + if (Admin::user()->can('dcat.admin.balance_logs.deduction')) { + $tools->append(new Deduction()); + } }); // $grid->column('id')->sortable(); $grid->column('user.phone')->copyable(); diff --git a/app/Admin/Controllers/PointsLogController.php b/app/Admin/Controllers/PointsLogController.php new file mode 100644 index 00000000..dbc31e2d --- /dev/null +++ b/app/Admin/Controllers/PointsLogController.php @@ -0,0 +1,81 @@ +column('id')->sortable(); + $grid->column('user.phone'); + $grid->column('desc'); + // $grid->column('type'); + $grid->column('points'); + $grid->column('old_points'); + + $grid->column('created_at')->sortable(); + $grid->model()->orderBy('created_at', 'desc'); + // $grid->column('updated_at')->sortable(); + + $grid->disableActions(); + $grid->filter(function (Grid\Filter $filter) { + $filter->panel(false); + $filter->equal('user.phone')->width(3); + }); + }); + } + + /** + * Make a show builder. + * + * @param mixed $id + * + * @return Show + */ + protected function detail($id) + { + return Show::make($id, new PointsLog(), function (Show $show) { + $show->field('id'); + $show->field('user_id'); + $show->field('type'); + $show->field('points'); + $show->field('old_points'); + $show->field('desc'); + $show->field('created_at'); + $show->field('updated_at'); + }); + } + + /** + * Make a form builder. + * + * @return Form + */ + protected function form() + { + return Form::make(new PointsLog(), function (Form $form) { + $form->display('id'); + $form->text('user_id'); + $form->text('type'); + $form->text('points'); + $form->text('old_points'); + $form->text('desc'); + + $form->display('created_at'); + $form->display('updated_at'); + }); + } +} diff --git a/app/Admin/Controllers/WalletLogController.php b/app/Admin/Controllers/WalletLogController.php index 182d00e5..68d50f1a 100644 --- a/app/Admin/Controllers/WalletLogController.php +++ b/app/Admin/Controllers/WalletLogController.php @@ -5,6 +5,7 @@ namespace App\Admin\Controllers; use App\Admin\Extensions\Grid\Tools\Wallet\Deduction; use App\Admin\Extensions\Grid\Tools\Wallet\Recharge; use App\Admin\Repositories\WalletLog; +use Dcat\Admin\Admin; use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Http\Controllers\AdminController; @@ -22,8 +23,12 @@ class WalletLogController extends AdminController $builder = WalletLog::with('user'); return Grid::make($builder, function (Grid $grid) { $grid->tools(function (Grid\Tools $tools) { - $tools->append(new Recharge()); - $tools->append(new Deduction()); + if (Admin::user()->can('dcat.admin.wallet_logs.recharge')) { + $tools->append(new Recharge()); + } + if (Admin::user()->can('dcat.admin.wallet_logs.deduction')) { + $tools->append(new Deduction()); + } }); // $grid->column('id')->sortable(); $grid->column('user.phone')->copyable(); diff --git a/app/Admin/Repositories/PointsLog.php b/app/Admin/Repositories/PointsLog.php new file mode 100644 index 00000000..679fbe57 --- /dev/null +++ b/app/Admin/Repositories/PointsLog.php @@ -0,0 +1,16 @@ +names('balance_logs'); + $router->resource('points-logs', 'PointsLogController')->only([ + 'index', + ])->names('points_logs'); + /** api接口 **/ $router->get('api/product-categories', 'ProductCategoryController@categories')->name('api.product_categories'); $router->get('api/product-group-details', 'ProductGroupController@details')->name('api.product_group_details'); diff --git a/app/Models/PointsLog.php b/app/Models/PointsLog.php index 2cf8ec4f..96cb9e1e 100644 --- a/app/Models/PointsLog.php +++ b/app/Models/PointsLog.php @@ -2,17 +2,24 @@ namespace App\Models; +use Dcat\Admin\Traits\HasDateTimeFormatter; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class PointsLog extends Model { use HasFactory; + use HasDateTimeFormatter; public const TYPE_CLICK = 1;//签到 public const TYPE_READ = 2;//阅读文章 protected $fillable = [ - 'type', 'user_id', 'old_points', 'desc', + 'type', 'user_id', 'points', 'old_points', 'desc', ]; + + public function user() + { + return $this->belongsTo(User::class); + } } diff --git a/database/seeders/AdminPermissionSeeder.php b/database/seeders/AdminPermissionSeeder.php index 1d86e676..bc8c7e5a 100644 --- a/database/seeders/AdminPermissionSeeder.php +++ b/database/seeders/AdminPermissionSeeder.php @@ -236,6 +236,30 @@ class AdminPermissionSeeder extends Seeder 'verify'=>['name' =>'审核'], ], ], + 'distribution_pre_incomes'=>[ + 'name' =>'预收益', + 'curd' => ['index'], + ], + 'wallet_logs'=>[ + 'name' =>'可提账户', + 'curd' =>['index'], + 'children' => [ + 'recharge'=>['name' =>'充值'], + 'deduction'=>['name' =>'扣减'], + ], + ], + 'balance_logs'=>[ + 'name' =>'余额账户', + 'curd' =>['index'], + 'children' => [ + 'recharge'=>['name' =>'充值'], + 'deduction'=>['name' =>'扣减'], + ], + ], + 'points_logs'=>[ + 'name' =>'预收益', + 'curd' => ['index'], + ], ]; try { DB::begintransaction(); diff --git a/resources/lang/zh_CN/points-log.php b/resources/lang/zh_CN/points-log.php new file mode 100644 index 00000000..d134c0e5 --- /dev/null +++ b/resources/lang/zh_CN/points-log.php @@ -0,0 +1,20 @@ + [ + 'PointsLog' => '积分账户', + 'points-logs' => '积分账户', + ], + 'fields' => [ + 'user_id' => '用户ID', + 'user'=>[ + 'phone' => '手机号', + ], + 'type' => '类别', + 'points' => '变动积分', + 'old_points' => '变动前', + 'desc' => '备注', + ], + 'options' => [ + ], +];