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"> + @@ -87,7 +87,6 @@ import { goods_types, Brand_goods_types } from "../../../api/rankingData.js"; export default { data() { return { - imageUrl: "", lid: "", // 选择的商品列表id gid: "", // 商品id brand: [], // 品牌列表 diff --git a/resources/frontend/src/views/goods/editgoods.vue b/resources/frontend/src/views/goods/editgoods.vue index e4bd95b..309c202 100644 --- a/resources/frontend/src/views/goods/editgoods.vue +++ b/resources/frontend/src/views/goods/editgoods.vue @@ -67,26 +67,14 @@
-
-
花梨油品
+
+
{{ item.shop_name }}
- - - - -
-
-
-
花梨油品
-
- - + +
@@ -106,7 +94,6 @@ diff --git a/routes/api.php b/routes/api.php index 443e180..7605aa8 100644 --- a/routes/api.php +++ b/routes/api.php @@ -44,12 +44,11 @@ Route::middleware(['auth:api', 'check.permissions'])->group(function () { Route::resource('permissions', 'Permission\PermissionsController', ['only' => ['index', // 'store', 'show', 'update', 'destroy' ]]); - Route::post('upload', [UploadController::class, 'store'])->name('upload.file'); // 平台 Route::resource('plat_goods', 'Business\BusinessGoodsSkusController', ['only' => ['index', 'update', 'destroy']]); Route::post('plat/sync/{id}/stock', [BusinessGoodsSkusController::class, 'syncStock'])->name('plat.sync.stock'); // 团购 -// Route::resource('group', 'Group\GroupsController', ['only' => ['index', 'store', 'show', 'update', 'destroy']]); + Route::resource('group', 'Group\GroupsController', ['only' => ['index', 'store', 'show', 'update', 'destroy']]); }); // 登录 Route::post('/auth/login', [LoginController::class, 'login'])->name('auth.login'); @@ -67,10 +66,12 @@ Route::get('goodsList', [GroupsController::class, 'goodsList'])->name('goods.lis Route::get('groupGoods', [GroupsController::class, 'getGoods'])->name('group.get_goods')->middleware('auth:api'); Route::post('groupGoods', [GroupsController::class, 'addGroupGoods'])->name('group.add_goods')->middleware('auth:api'); Route::get('addGoods', [GroupsController::class, 'addGoods'])->name('group.add_goods')->middleware('auth:api'); -Route::resource('group', 'Group\GroupsController', ['only' => ['index', 'store', 'show', 'update', 'destroy']]); // 妙选商城数据推送 Route::post('business', [ShopsController::class, 'business'])->name('shop.put.business'); // 盘点导入 Route::post('inventory/goods_skus', [GoodsSkusController::class, 'inventoryImport'])->name('goods_sku.inventory'); + + +Route::post('upload', [UploadController::class, 'store'])->name('upload.file');