From 3b7a214ba44ad3280de7f9776b801dc1a6a0b3a1 Mon Sep 17 00:00:00 2001 From: liapples Date: Wed, 22 Sep 2021 18:38:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B8=E9=94=80=E7=A0=81=E6=94=B9=E7=94=B1?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E5=95=86=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/IndustryOrderController.php | 43 +++++++++++++++++++ app/AdminAgent/routes.php | 1 + .../Controllers/IndustryOrderController.php | 43 ------------------- app/AdminSupplier/routes.php | 1 - 4 files changed, 44 insertions(+), 44 deletions(-) diff --git a/app/AdminAgent/Controllers/IndustryOrderController.php b/app/AdminAgent/Controllers/IndustryOrderController.php index 72b5f5c..83927ac 100644 --- a/app/AdminAgent/Controllers/IndustryOrderController.php +++ b/app/AdminAgent/Controllers/IndustryOrderController.php @@ -6,6 +6,7 @@ use App\AdminAgent\Repositories\IndustryOrder; use App\Common\OrderStatus; use App\Common\PayType; use App\Common\ProductStatus; +use App\Models\AdminSetting; use App\Models\IndustryProduct; use App\Models\SystemSetting; use Dcat\Admin\Admin; @@ -13,6 +14,9 @@ use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Http\Controllers\AdminController; +use EasyWeChat\Factory; +use EasyWeChat\Kernel\Http\StreamResponse; +use Illuminate\Support\Facades\Storage; class IndustryOrderController extends AdminController { @@ -40,6 +44,15 @@ class IndustryOrderController extends AdminController $grid->column('picture')->image('', 80, 80); $grid->column('status')->using(OrderStatus::array()); $grid->column('paid_at', '订单确认时间'); + $grid->column('verify_qrcode', '核销二维码') + ->if(fn() => $this->verify_code) + ->then(function ($column) { + $verify_code = $this->id . '-' . $this->verify_code; + $column->append(admin_url('industry_order/qrcode', $verify_code))->image('', 60, 60); + $column->append('
' . $verify_code); + }) + ->else() + ->display(''); $grid->column('created_at'); $grid->filter(function (Grid\Filter $filter) { @@ -49,6 +62,36 @@ class IndustryOrderController extends AdminController }); } + //生成核销二维码,行业产品订单使用支付小程序核销 + public function qrcode() + { + $verify_code = request()->route('verify_code'); + + $qrcode = storage_path("app/public/industry_verify_code/$verify_code.jpg"); + if (file_exists($qrcode)) { + return redirect(Storage::disk('public')->url("industry_verify_code/$verify_code.jpg")); + } + + $setting = AdminSetting::val(['payee_appid', 'payee_appsecret']); + $config = [ + 'app_id' => $setting['payee_appid'], + 'secret' => $setting['payee_appsecret'], + ]; + $app = Factory::miniProgram($config); + + //由于参数最多只能32个字符,故通过下面这种方式传参 + //pt表示使用普通订单,使用api/verification/verify接口核销; + //hy表示行业产品订单,使用api/verification/industry_verify接口核销 + $response = $app->app_code->getUnlimit('hy' . $verify_code, ['page' => 'pages/verification/index']); + + if ($response instanceof StreamResponse) { + $filename = $response->saveAs(storage_path('app/public/industry_verify_code'), $verify_code); //保存二维码 + // $qrcode = Storage::disk('public')->url('industry_verify_code/' . $filename); //获取前端路径 + header("Content-Type: " . $response->getHeaderLine('Content-Type')); + exit($response); //输出图片 + } + } + /** * Make a show builder. * diff --git a/app/AdminAgent/routes.php b/app/AdminAgent/routes.php index 4684d58..76f104c 100644 --- a/app/AdminAgent/routes.php +++ b/app/AdminAgent/routes.php @@ -25,6 +25,7 @@ Route::group([ $router->resource('industry_product/list', 'IndustryProductController'); $router->resource('industry_order/list', 'IndustryOrderController'); + $router->get('industry_order/qrcode/{verify_code}', 'IndustryOrderController@qrcode'); $router->resource('demand', 'DemandController'); $router->resource('demand_bidding', 'DemandBiddingController'); diff --git a/app/AdminSupplier/Controllers/IndustryOrderController.php b/app/AdminSupplier/Controllers/IndustryOrderController.php index 6db573d..4513f18 100644 --- a/app/AdminSupplier/Controllers/IndustryOrderController.php +++ b/app/AdminSupplier/Controllers/IndustryOrderController.php @@ -5,15 +5,11 @@ namespace App\AdminSupplier\Controllers; use App\AdminSupplier\Extensions\Grid\IndustryOrderStatus; use App\AdminSupplier\Repositories\IndustryOrder; use App\Common\OrderStatus; -use App\Models\AdminSetting; use Dcat\Admin\Admin; use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Http\Controllers\AdminController; -use EasyWeChat\Factory; -use EasyWeChat\Kernel\Http\StreamResponse; -use Illuminate\Support\Facades\Storage; class IndustryOrderController extends AdminController { @@ -46,15 +42,6 @@ class IndustryOrderController extends AdminController ->if(fn() => $this->status == OrderStatus::OFFLINE_UNPAID) ->action(new IndustryOrderStatus); $grid->column('paid_at'); - $grid->column('verify_qrcode', '核销二维码') - ->if(fn() => $this->verify_code) - ->then(function ($column) { - $verify_code = $this->id . '-' . $this->verify_code; - $column->append(admin_url('industry_order/qrcode', $verify_code))->image('', 60, 60); - $column->append('
' . $verify_code); - }) - ->else() - ->display(''); // $grid->column('timeout'); $grid->column('created_at'); @@ -65,36 +52,6 @@ class IndustryOrderController extends AdminController }); } - //生成核销二维码,行业产品订单使用支付小程序核销 - public function qrcode() - { - $verify_code = request()->route('verify_code'); - - $qrcode = storage_path("app/public/industry_verify_code/$verify_code.jpg"); - if (file_exists($qrcode)) { - return redirect(Storage::disk('public')->url("industry_verify_code/$verify_code.jpg")); - } - - $setting = AdminSetting::val(['payee_appid', 'payee_appsecret']); - $config = [ - 'app_id' => $setting['payee_appid'], - 'secret' => $setting['payee_appsecret'], - ]; - $app = Factory::miniProgram($config); - - //由于参数最多只能32个字符,故通过下面这种方式传参 - //pt表示使用普通订单,使用api/verification/verify接口核销; - //hy表示行业产品订单,使用api/verification/industry_verify接口核销 - $response = $app->app_code->getUnlimit('hy' . $verify_code, ['page' => 'pages/verification/index']); - - if ($response instanceof StreamResponse) { - $filename = $response->saveAs(storage_path('app/public/industry_verify_code'), $verify_code); //保存二维码 - // $qrcode = Storage::disk('public')->url('industry_verify_code/' . $filename); //获取前端路径 - header("Content-Type: " . $response->getHeaderLine('Content-Type')); - exit($response); //输出图片 - } - } - /** * Make a show builder. * diff --git a/app/AdminSupplier/routes.php b/app/AdminSupplier/routes.php index be885ea..6f57c17 100644 --- a/app/AdminSupplier/routes.php +++ b/app/AdminSupplier/routes.php @@ -18,7 +18,6 @@ Route::group([ $router->resource('product/list', 'ProductController'); $router->resource('industry_product/list', 'IndustryProductController'); $router->resource('industry_order/list', 'IndustryOrderController'); - $router->get('industry_order/qrcode/{verify_code}', 'IndustryOrderController@qrcode'); $router->resource('order/list', 'OrderController'); $router->resource('agent/list', 'AgentController');