From fddb7048773f5cb2cac102030422056d7df6aece Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Wed, 15 Feb 2023 11:53:38 +0800 Subject: [PATCH] store excel --- app/Admin/Controllers/HomeController.php | 17 ++-- app/Admin/Imports/StoreProduct.php | 106 ++++++++++----------- database/seeders/AdminPermissionSeeder.php | 6 +- public/store-goods.xlsx | Bin 10925 -> 10948 bytes 4 files changed, 64 insertions(+), 65 deletions(-) diff --git a/app/Admin/Controllers/HomeController.php b/app/Admin/Controllers/HomeController.php index a2c02577..d9e166fd 100644 --- a/app/Admin/Controllers/HomeController.php +++ b/app/Admin/Controllers/HomeController.php @@ -17,21 +17,22 @@ class HomeController extends Controller public function index(Content $content) { return $content - ->header('首页') - ->description('首页') - ->body(function (Row $row) { - $row->column(6, function (Column $column) { + ->header('首页') + ->description('首页') + ->body(function (Row $row) { + $user = Admin::user(); + $row->column(6, function (Column $column) use ($user) { $column->row(Dashboard::title()); - if (Admin::user()->can('dcat.admin.home.statistics')) { + if ($user->can('dcat.admin.home.statistics')) { $column->row(new StatisticsTotal()); } }); - $row->column(6, function (Column $column) { - if (Admin::user()->can('dcat.admin.home.new_users')) { + $row->column(6, function (Column $column) use ($user) { + if ($user->can('dcat.admin.home.new_users')) { $column->row(new NewUsers()); } - if (Admin::user()->can('dcat.admin.home.orders')) { + if ($user->can('dcat.admin.home.orders')) { $column->row(new Orders()); } }); diff --git a/app/Admin/Imports/StoreProduct.php b/app/Admin/Imports/StoreProduct.php index 4a12336f..dc4f4799 100644 --- a/app/Admin/Imports/StoreProduct.php +++ b/app/Admin/Imports/StoreProduct.php @@ -27,6 +27,7 @@ class StoreProduct $index = 0; $storeName = $cells[$index];// 店铺名称 $goodsName = $cells[++$index];// 商品名称 + $stock = $cells[++$index];// 库存 $goodsTitle = $cells[++$index];// 商品副标题 $categoryName = $cells[++$index];// 分类名称 $goodsImage = $cells[++$index];// 商品图片 @@ -47,65 +48,62 @@ class StoreProduct // https://qiniu.abcdefg.fun/banner/banner4.png,https://qiniu.abcdefg.fun/banner/banner5.png $goodsContent = $cells[++$index]; - $stock = $cells[++$index];// 库存 - $store = Store::where(['title' => $storeName])->first(); if (!$store) { throw new ImportException('门店 '.$storeName.' 不存在'); - } - - $goods = [ - 'name' => $goodsName, - 'subtitle' => $goodsTitle, - 'shipping_template_id' => 1, - ]; - $category = ProductCategory::where('name', $categoryName)->first(); - if (!$category) { - throw new ImportException('分类 '.$categoryName.' 不存在'); - } - $goods['category_id'] = $category->id; + } - // 图片组 - if ($goodsImage) { - if (Str::startsWith($goodsImage, ['http://', 'https://'])) { - $images = explode(',', $goodsImage); - } else { - $images = $this->getImageUrlFromPath($goodsImage); - } - if (count($images) > 0) { - $goods['cover'] = $images[0]; - $goods['images'] = $images; - } - } - - // 运费模板 - if ($shipTemplate) { - $goods['shipping_template_id'] = $shipTemplate; - } - // 重量 - if ($goodsWeight) { - $goods['weight'] = $goodsWeight; - } - // 详细描述 - if ($goodsContent) { - $description = ''; - foreach(explode(',', $goodsContent) as $item) { - $description .= '

'; - } - $goods['description'] = $description; - } - - $goods = array_merge($goods, [ - 'sell_price' => $salePrice * 100, - 'market_price' => $marketPrice * 100, - 'cost_price' => $costPrice * 100, - 'vip_price' => $vipPrice * 100, - 'sales_value' => $saleValue, - 'stock' => $stock, - ]); - - $product = ProductSpu::where('name', $goods['name'])->first(); + $product = ProductSpu::where('name', $goodsName)->first(); if (!$product) { + $goods = [ + 'name' => $goodsName, + 'subtitle' => $goodsTitle, + 'shipping_template_id' => 1, + ]; + $category = ProductCategory::where('name', $categoryName)->first(); + if (!$category) { + throw new ImportException('分类 '.$categoryName.' 不存在'); + } + $goods['category_id'] = $category->id; + + // 图片组 + if ($goodsImage) { + if (Str::startsWith($goodsImage, ['http://', 'https://'])) { + $images = explode(',', $goodsImage); + } else { + $images = $this->getImageUrlFromPath($goodsImage); + } + if (count($images) > 0) { + $goods['cover'] = $images[0]; + $goods['images'] = $images; + } + } + + // 运费模板 + if ($shipTemplate) { + $goods['shipping_template_id'] = $shipTemplate; + } + // 重量 + if ($goodsWeight) { + $goods['weight'] = $goodsWeight; + } + // 详细描述 + if ($goodsContent) { + $description = ''; + foreach(explode(',', $goodsContent) as $item) { + $description .= '

'; + } + $goods['description'] = $description; + } + + $goods = array_merge($goods, [ + 'sell_price' => $salePrice * 100, + 'market_price' => $marketPrice * 100, + 'cost_price' => $costPrice * 100, + 'vip_price' => $vipPrice * 100, + 'sales_value' => $saleValue, + 'stock' => $stock, + ]); $product = ProductSpu::create($goods); // 属性规格 if ($rowAttrs) { diff --git a/database/seeders/AdminPermissionSeeder.php b/database/seeders/AdminPermissionSeeder.php index 2d46bbac..8b179b26 100644 --- a/database/seeders/AdminPermissionSeeder.php +++ b/database/seeders/AdminPermissionSeeder.php @@ -70,9 +70,9 @@ class AdminPermissionSeeder extends Seeder 'name'=>'主页', 'curd' => false, 'children' =>[ - 'home.statistics'=>['name' =>'统计预览'], - 'home.new_users'=>['name' =>'新注册'], - 'home.orders'=>['name' =>'订单'], + 'statistics'=>['name' =>'统计预览'], + 'new_users'=>['name' =>'新注册'], + 'orders'=>['name' =>'订单'], ], ], 'users'=>[ diff --git a/public/store-goods.xlsx b/public/store-goods.xlsx index d2f90176644ae93ee12518b3b52ce8f20656deac..d9793d2ec99d87c7db0776a77f701ba757453bed 100644 GIT binary patch delta 2246 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 UlS3*!0XUO^DkcV;CjbBd05~WxE&u=k delta 2220 zcmV;d2vhgORjpO9;sy%SwK(X50ssK)1(WOsB!5$&DJrS5uxgREDO$JorBdY>Cs+lW z*``TU^?%m#ex$k6as}WQNH}fDxBW6+$jD{O9+TH^9hP zDhpaE$uqp>244<8f4W#I{V-GN0RezC87{4DQr|bMNZvcq;vKgT4=?7T;y1l? z5p9~Ew04!MFsi7rUkhP*k>N8i)spWQVvKa#d}&1m-Y^Nm1pC9CoTnNLsQsw2TuW;C zSV;>~+fe_gtUBy*sX)Z&7ysJ|&Ef8VgdiLkDNE_hOsOqVtE&tb>0PdtvQltw?tfkg zjvlM~KO{$)i`a)KdnWz+>xhAnPPej}T8-d+l7ENPUeiZNG?cU0+`|cElAPX4rc-kN zbQO{D=qwm{2^kE$D9*>;==^lxo#*2LISb=)oS!~JFgi(@qOC1AHFVG!j-X&it{-%@ z^^hQKMX{&x6l@;P&98>7@7V?Hx_{M;;7hZwwlmS{R>(pvGwhKNf?6M%%g%W#3R{9) z&VvZH^lRU^Sd_q+!~?eos&>pWe84F08C}8Sx#573|AJE27lB$gBiU*B+Vx5T4cN_H zl0mzvJ3~(j(iL(08KV`OYUHMFV-&?<-0j#l>ft{C009600{~D<0|XQR2D6|EIsysC z%3%zP1ONb^lj92^e_LX*RF*aE~$g~Z6zAp(-gZ0r>NO%n*r0R0mMp3;f?`{BE_=h zy4HrSB;ZGe?3=PZ~TKx*h+wC!vmg3nG-wy#HGy9l0bC! zcQEm5u)rse_v_y8C0yxO6BWFqTj`#({3QxklvG-zH0vN_f3HSv<*%dv6dEY`);`MB6omQO>>4dEW!VeOdI|*1mT-U&9 z(7@bj9@2P{UKdR|5v19Prt$QK5rIFH;N%y*)zx$ebgxzTHnuewjcz4G`oj4|uOczI zkrMQve=|E*f{_1I9EV>00{{U3{{R30|Nn%P+m3=T6h(i9^aF%e(9sluEx`_I$6$3hCv+_KWxv#A^j?>#U~tn`M34y2R#n8nBbYbklYI{oBIiJI3mw>Q({d7>++v*22m4uZIJ2p+ z-@^Fy^7D`QRd9Wiu@7Z`>v_?3bs%T^%cSg{Ao2~5ClXSf{ zK02rlE5edluv+)Stw#v1glSHq8W7=lLxYm7auZ5P2p8}MLX?y4R^ezPD?_MTeF=G& zBm$?EL5U&pidb;yq{b;8`VMaI2c>ZJ1pom5{{sL}O9KQH00scFl@M$X1y}*qy-BkM zASeNU!ypvJ-%b1u4eu?q%cdi37yo2WE-`UN;~RmyjaVoFwA;6rwp*>v_z36RALrbV zFZQa6KEXO!>jI?-K@n(P3#qpSdR{N%YZN)pv|v@Op+E<4Xi;8XE4<>Xv#vQW-@5RBrcXBW`O_MZ}E=I_o z;@8!~Q&%;Xy4@8AROW(HZh`sQmN!C4EuFXRDaRwF-D1U@UxkHlB#7I?Z}Yh!kh>y5 zJsw09qS3y{NqL#v-LIFZ%t)5SWE!WlHMyecoD%ZZzW-ysjoM$RV~YQYlb8hP^_tA- zl+bKUJORoapM8(=3$t$`w*?B*wK(X50ssK)1(Pr+O#y_Hekd&)#>!y~iv$1wp9=s0 z7ytkO0000000000006g>#wbMrc#{k%KmjR}O({A8_ZpLlDL?@ylgcSJ8(0C=y-5K8 u0BZsO01*HH00000000000002qlN%~N0bY|@Dm?)qlb9+d28Aa80002gDj6gI