From 91eccc1761bbaafc8cac618f1e77ecafbca22caf Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Wed, 1 Jun 2022 15:20:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=B4=E5=83=8F.Spu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Store/UserController.php | 4 +- .../Product/ProductSkuController.php | 15 +++--- app/Models/ProductSpu.php | 46 +++++++++++++++++++ resources/lang/zh_CN/store-user.php | 2 + 4 files changed, 60 insertions(+), 7 deletions(-) diff --git a/app/Admin/Controllers/Store/UserController.php b/app/Admin/Controllers/Store/UserController.php index 9d7979fc..026ac67f 100644 --- a/app/Admin/Controllers/Store/UserController.php +++ b/app/Admin/Controllers/Store/UserController.php @@ -19,8 +19,10 @@ class UserController extends AdminController $grid->model() ->where('is_company', 1) ->orderBy('created_at', 'desc'); - + $grid->column('user.id'); + $grid->column('avatar')->image('', 64); + $grid->column('nickname'); $grid->column('user.phone', '手机号')->copyable(); $grid->column('invite_complete_orders_count', '帮下单数'); $grid->column('invite_complete_orders_sum_total_amount', '帮下单总额')->display(function ($value) { diff --git a/app/Endpoint/Api/Http/Controllers/Product/ProductSkuController.php b/app/Endpoint/Api/Http/Controllers/Product/ProductSkuController.php index 2d0ecddf..b1625a89 100644 --- a/app/Endpoint/Api/Http/Controllers/Product/ProductSkuController.php +++ b/app/Endpoint/Api/Http/Controllers/Product/ProductSkuController.php @@ -32,9 +32,11 @@ class ProductSkuController extends Controller $input['sort'] = '-id'; } - $skus = ProductSku::select(['id', 'name', 'cover', 'sell_price', 'vip_price', 'market_price']) + $skus = ProductSpu::select(['id', 'name', 'cover', 'sell_price', 'vip_price', 'market_price']) ->filter($input) - ->online() + ->whereHas('skus', function ($q) { + $q->online(); + }) ->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50)); return ProductSkuTinyResource::collection($skus); @@ -62,11 +64,12 @@ class ProductSkuController extends Controller public function show($id, Request $request) { $user = $request->user(); + $spu = ProductSpu::with(['specs', 'features'])->findOrFail($id); - $sku = ProductSku::with('buynote')->findOrFail($id); - - $spu = ProductSpu::with(['specs', 'features'])->findOrFail($sku->spu_id); - + $sku = $spu->skus()->with(['buynote'])->online()->first(); + if (!$sku) { + throw new BizException('商品sku未上架'); + } // 主商品的规格 $spuSpecs = []; diff --git a/app/Models/ProductSpu.php b/app/Models/ProductSpu.php index 2772ae73..63d2edcf 100644 --- a/app/Models/ProductSpu.php +++ b/app/Models/ProductSpu.php @@ -4,12 +4,15 @@ namespace App\Models; use App\Casts\JsonArray; use App\Casts\Price; +use App\Endpoint\Api\Filters\ProductSkuFilter; use Dcat\Admin\Traits\HasDateTimeFormatter; use Illuminate\Database\Eloquent\Model; +use EloquentFilter\Filterable; class ProductSpu extends Model { use HasDateTimeFormatter; + use Filterable; /** * @var array @@ -57,6 +60,11 @@ class ProductSpu extends Model 'description' ]; + public function modelFilter() + { + return ProductSkuFilter::class; + } + public function skus() { return $this->hasMany(ProductSku::class, 'spu_id'); @@ -81,4 +89,42 @@ class ProductSpu extends Model { return $this->skus()->exists(); } + + /** + * 获取商品售价 + * + * @return string + */ + public function getSellPriceFormatAttribute() + { + return bcdiv($this->attributes['sell_price'], 100, 2); + } + + /** + * 获取商品会员价 + * + * @return string + */ + public function getVipPriceFormatAttribute() + { + if (is_null($price = $this->attributes['vip_price'])) { + return ''; + } + + return bcdiv($price, 100, 2); + } + + /** + * 获取商品市场价 + * + * @return string + */ + public function getMarketPriceFormatAttribute() + { + if (is_null($price = $this->attributes['market_price'])) { + return ''; + } + + return bcdiv($price, 100, 2); + } } diff --git a/resources/lang/zh_CN/store-user.php b/resources/lang/zh_CN/store-user.php index 77a72869..712cebec 100644 --- a/resources/lang/zh_CN/store-user.php +++ b/resources/lang/zh_CN/store-user.php @@ -9,6 +9,8 @@ return [ 'fields' => [ 'phone' => '手机号', 'created_at' => '注册时间', + 'avatar' => '头像', + 'nickname' => '昵称', ], 'options' => [ ],