From 55be6ee289e9c0ef7929b70239e0217e86ecb577 Mon Sep 17 00:00:00 2001 From: liapples Date: Sun, 26 Dec 2021 19:29:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E4=BB=A3=E7=90=86=E5=95=86?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AgentProductController.php | 49 +++++++++++-------- app/AdminAgent/routes.php | 1 + 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/app/AdminAgent/Controllers/AgentProductController.php b/app/AdminAgent/Controllers/AgentProductController.php index 646f6e5..0f692ff 100644 --- a/app/AdminAgent/Controllers/AgentProductController.php +++ b/app/AdminAgent/Controllers/AgentProductController.php @@ -17,12 +17,15 @@ use App\Models\Guide; use App\Models\Product; use App\Models\ProductSpec; use App\Models\Supplier; +use App\Service\OpenPlatform; use Dcat\Admin\Admin; use Dcat\Admin\Form; use Dcat\Admin\Form\NestedForm; use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Http\Controllers\AdminController; +use EasyWeChat\Kernel\Http\StreamResponse; +use Illuminate\Support\Facades\Storage; class AgentProductController extends AdminController { @@ -67,27 +70,8 @@ class AgentProductController extends AdminController }); $grid->column('sale'); $grid->column('stock'); - $grid->column('category.name', '分类'); - /*$grid->column('product_ids', '产品详情') - ->display('查看') - ->modal(function ($modal) { - $titles = ['供应商', '产品标题', '产品图片', '市场价', '现价', '销量', '库存']; - $pic = isset($this->product->picture) - ? "product->picture}\" style=\"max-width:80px;max-height:200px;cursor:pointer\" class=\"img img-thumbnail\">" - : ''; - $data = [[ - $this->product->supplier->company_name ?? '', - $this->product->title ?? '', - $pic, - $this->product->original_price ?? '', - $this->product->price ?? '', - $this->product->sale ?? '', - $this->product->stock ?? '', - ]]; - return Table::make($titles, $data); - });*/ -// $grid->column('single_deposit'); + $grid->column('status')->help('切换开关可改变上下架状态') ->if(fn() => in_array($this->status, [ProductStatus::SOLD_OUT, ProductStatus::ON_SALE])) ->using([ProductStatus::SOLD_OUT => 0, ProductStatus::ON_SALE => 1]) @@ -103,7 +87,12 @@ class AgentProductController extends AdminController if (Admin::user()->type != AgentType::OPERATOR) { $grid->column('is_rec')->switch()->help('推荐后将在“我的”页面下方显示'); } - $grid->column('updated_at'); + $grid->column('小程序码') + ->display('查看') + ->modal(function ($modal) { + return ''; + }); + $grid->column('updated_at')->width(100); $grid->filter(function (Grid\Filter $filter) { $filter->panel(); @@ -125,6 +114,24 @@ class AgentProductController extends AdminController }); } + # 小程序码 + public function mpQrcode(int $agent_product_id) + { + $save_path = 'agent/qrcode/' . Admin::user()->id; + $filename = $save_path . '/' . $agent_product_id . '.jpg'; + if (Storage::exists($filename)) { + return redirect(Storage::disk('public')->url($filename)); + } + + $mp = (new OpenPlatform)->miniProgram(Admin::user()->appid); + $response = $mp->app_code->getQrCode('/pages/goodsDetail/index?goods_id=' . $agent_product_id); + if ($response instanceof StreamResponse) { + $response->saveAs(Storage::disk('public')->path($save_path), $filename); //保存二维码 + header("Content-Type: " . $response->getHeaderLine('Content-Type')); + return $response; //输出图片 + } + } + /** * Make a show builder. * diff --git a/app/AdminAgent/routes.php b/app/AdminAgent/routes.php index f666e97..1a57479 100644 --- a/app/AdminAgent/routes.php +++ b/app/AdminAgent/routes.php @@ -60,4 +60,5 @@ Route::group([ $router->any('workorder_item', 'WorkorderController@index'); $router->any('workorder_notice', 'WorkorderController@checkUnread'); + $router->get('product/qrcode/{id}', 'AgentProductController@mpQrcode'); });