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