From dddef607d320bd238820a331f422a75440cd3667 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Tue, 31 Oct 2023 12:40:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98=E8=B4=AD=E4=B9=B0=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/VipController.php | 44 +++++++++++++++++++++++-- app/Admin/routes.php | 1 + 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/app/Admin/Controllers/VipController.php b/app/Admin/Controllers/VipController.php index 4988989d..386f2c89 100644 --- a/app/Admin/Controllers/VipController.php +++ b/app/Admin/Controllers/VipController.php @@ -9,14 +9,45 @@ use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Show; +use EasyWeChat\Factory; +use EasyWeChat\Kernel\Http\StreamResponse; +use Illuminate\Support\Facades\Storage; class VipController extends AdminController { /** - * Make a grid builder. - * - * @return Grid + * 维信小程序码 */ + public function mpQrcode() + { + $disk = Storage::disk('public'); + + $directory = ''; + $filename = 'buy_vip_qrcode.png'; + $filepath = ($directory ? "{$directory}/" : '').$filename; + + if (! $disk->exists($filepath)) { + $scene = http_build_query(['vip' => 1]); + + $app = Factory::miniProgram(config('wechat.mini_program.default')); + + $response = $app->app_code->getUnlimit($scene, [ + 'page' => 'pages/welcome/index', + 'check_path' => false, + 'env_version' => app()->isProduction() ? 'release' : 'trial', + 'width' => 200, + ]); + + if (! $response instanceof StreamResponse) { + throw new BizException('小程序码获取失败'); + } + + $response->saveAs($disk->path($directory), $filename); + } + + return $disk->download($filepath); + } + protected function grid() { return Grid::make(new Vip(), function (Grid $grid) { @@ -30,6 +61,13 @@ class VipController extends AdminController $grid->column('sort')->editable(); $grid->column('status')->switch(); + $grid->tools(function (Grid\Tools $tools) { + // x + if (Admin::user()->can('dcat.admin.vip.mp_qrcode')) { + $tools->append(' 下载小程序码'); + } + }); + $grid->disableViewButton(false); //新增 $grid->showCreateButton(Admin::user()->can('dcat.admin.vip.create')); diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 97b9b5e8..3c479055 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -206,6 +206,7 @@ Route::group([ $router->resource('user-vip', 'UserVipController')->only(['index', 'show'])->names('user_vip'); $router->resource('vip', 'VipController')->names('vip'); + $router->get('vip-mp-qrcode', 'VipController@mpQrcode')->name('vip.mp_qrcode'); // wang-editor update });