From fcb0ad5208e98a2dbff75d148ccd17e2157e5b34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com>
Date: Tue, 25 Oct 2022 22:08:55 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20#10000=20=E5=9B=A2=E8=B4=AD=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9,=E5=89=8D=E7=AB=AF=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/Goods/GoodsSkusController.php | 18 ++++-
app/Http/Controllers/UploadController.php | 3 +-
app/Models/GoodsSku.php | 12 +++
app/Services/Business/KuaiTuanTuan/Groups.php | 11 ++-
.../src/views/goods/addgoods/addgoods.vue | 5 +-
.../frontend/src/views/goods/editgoods.vue | 79 +++++++++++--------
routes/api.php | 7 +-
7 files changed, 93 insertions(+), 42 deletions(-)
diff --git a/app/Http/Controllers/Goods/GoodsSkusController.php b/app/Http/Controllers/Goods/GoodsSkusController.php
index c5ec2f8..c4b4ea0 100644
--- a/app/Http/Controllers/Goods/GoodsSkusController.php
+++ b/app/Http/Controllers/Goods/GoodsSkusController.php
@@ -24,6 +24,7 @@ use Illuminate\Validation\Rule;
use Illuminate\Validation\ValidationException;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\DailyStockRecord;
+use App\Models\Shop;
class GoodsSkusController extends Controller
{
@@ -107,11 +108,24 @@ class GoodsSkusController extends Controller
public function show($id)
{
- return new GoodsSkuResource(GoodsSku::query()
+ $sku = GoodsSku::query()
->with(['goods' => function ($query) {
$query->with(['type:id,name', 'brand:id,name']);
}])
- ->find($id));
+ ->find($id)
+ ->toArray();
+ $shops = Shop::query()->get(['id', 'name'])->toArray();
+ if (empty($sku['thumb_url'])) {
+ foreach ($shops as $shop) {
+ $sku['thumb_url'][] = [
+ 'shop_id' => $shop['id'],
+ 'shop_name' => $shop['name'],
+ 'img_url' => '',
+ ];
+ }
+ }
+
+ return ['data' => $sku];
}
public function update($id, Request $request)
diff --git a/app/Http/Controllers/UploadController.php b/app/Http/Controllers/UploadController.php
index 38ede3f..368a008 100644
--- a/app/Http/Controllers/UploadController.php
+++ b/app/Http/Controllers/UploadController.php
@@ -27,7 +27,8 @@ class UploadController extends Controller
];
}
$this->addLog(0, 'add');
- $this->res['resource'] = UploadUtils::putForUploadedFile('image', $request->uploadFile);
+ $this->res['resource'] = UploadUtils::getFullImgUrl(UploadUtils::putForUploadedFile('image', $request->uploadFile));
+ $this->res['shop_id'] = $request->get('shop_id') ?: 0;
return response($this->res, $this->res['httpCode']);
}
diff --git a/app/Models/GoodsSku.php b/app/Models/GoodsSku.php
index e9a83f4..a10a45e 100644
--- a/app/Models/GoodsSku.php
+++ b/app/Models/GoodsSku.php
@@ -32,6 +32,7 @@ class GoodsSku extends Model
'yesterday_num',
'reference_price',
'reserve',
+ 'thumb_url'
];
protected $hidden = ['created_at'];
@@ -52,6 +53,17 @@ class GoodsSku extends Model
return $map[$value];
}
+ public function setThumbUrlAttribute($value)
+ {
+ $this->attributes['thumb_url'] = json_encode($value, 256);
+ }
+
+ public function getThumbUrlAttribute($value)
+ {
+
+ return json_decode($value, true);
+ }
+
/**
* 此规格从属于一个商品
*/
diff --git a/app/Services/Business/KuaiTuanTuan/Groups.php b/app/Services/Business/KuaiTuanTuan/Groups.php
index 96c2783..a661808 100644
--- a/app/Services/Business/KuaiTuanTuan/Groups.php
+++ b/app/Services/Business/KuaiTuanTuan/Groups.php
@@ -4,6 +4,7 @@ namespace App\Services\Business\KuaiTuanTuan;
use App\Models\Groups as GroupsModel;
use App\Models\GroupGoods;
+use App\Utils\ArrayUtils;
use App\Utils\DateTimeUtils;
class Groups
@@ -14,13 +15,15 @@ class Groups
$group = GroupsModel::query()->where('parent_id', $localGroupId)->where('shop_id', $shop->id)->first();
$groupGoods = GroupGoods::query()
->where('group_id', $group->parent_id)
- ->with(['goodsSku:id,stock'])
+ ->with(['goodsSku:id,stock,thumb_url'])
->orderBy('sort')
->get();
$goodsSkus = [];
$operator = substr($shop->ratio, 0, 1);
$ratio = (float)trim(substr($shop->ratio, 1));
foreach ($groupGoods as $item) {
+ $thumbUrls = $item['goodsSku']['thumb_url'];
+ $thumbUrls = ArrayUtils::index($thumbUrls, 'shop_id');
$priceInFen = $item['price_in_fen']; // 常规数值
switch ($operator) {
case '+':
@@ -37,7 +40,7 @@ class Groups
break;
}
$priceInFen *= 100;
- $goodsSkus[] = [
+ $info = [
'category_name' => $item['category_name'],
'goods_desc' => $item['goods_name'],
'goods_name' => $item['goods_name'],
@@ -51,6 +54,10 @@ class Groups
'total_quantity' => $item['goodsSku']['stock'],
]]
];
+ if (isset($thumbUrls[$shop->id]) && $thumbUrls[$shop->id]['img_url']) {
+ $info['pic_url_list'] = [$thumbUrls[$shop->id]['img_url']];
+ }
+ $goodsSkus[] = $info;
}
$appendParams = [
'end_time' => $group->getOriginal('end_time'),
diff --git a/resources/frontend/src/views/goods/addgoods/addgoods.vue b/resources/frontend/src/views/goods/addgoods/addgoods.vue
index 5c92a61..dc8056c 100644
--- a/resources/frontend/src/views/goods/addgoods/addgoods.vue
+++ b/resources/frontend/src/views/goods/addgoods/addgoods.vue
@@ -16,8 +16,8 @@
+ :show-file-list="false" list-type="picture-card" :on-change="handleAvatarSuccess">
+