diff --git a/app/Http/Controllers/Admin/ShopController.php b/app/Http/Controllers/Admin/ShopController.php index 33fa8492..4b2d74ef 100644 --- a/app/Http/Controllers/Admin/ShopController.php +++ b/app/Http/Controllers/Admin/ShopController.php @@ -32,7 +32,14 @@ class ShopController extends Controller }); } - return view('admin.shop.index', ['goodsList' => $query->orderByDesc('status')->paginate(10)->appends($request->except('page'))]); + $goodsList = $query->orderByDesc('status')->paginate(10)->appends($request->except('page')); + + foreach ($goodsList->load('orders') as $goods) { + $goods->use_count = $goods->orders->whereIn('status', [2, 3])->where('is_expire', 0)->count(); + $goods->total_count = $goods->orders->whereIn('status', [2, 3])->count(); + } + + return view('admin.shop.index', ['goodsList' => $goodsList]); } // 添加商品页面 @@ -89,8 +96,8 @@ class ShopController extends Controller public function edit(Goods $good) { return view('admin.shop.info', [ - 'good' => $good, - 'levels' => Level::orderBy('level')->get(), + 'good' => $good, + 'levels' => Level::orderBy('level')->get(), 'categories' => GoodsCategory::all(), ]); } diff --git a/app/Models/Goods.php b/app/Models/Goods.php index 162a30fb..e4e9f287 100644 --- a/app/Models/Goods.php +++ b/app/Models/Goods.php @@ -3,6 +3,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\SoftDeletes; /** @@ -16,6 +17,11 @@ class Goods extends Model protected $dates = ['deleted_at']; protected $guarded = []; + public function orders(): HasMany + { + return $this->hasMany(Order::class); + } + public function scopeType($query, $type) { return $query->whereType($type)->whereStatus(1)->orderByDesc('sort'); diff --git a/resources/views/admin/shop/index.blade.php b/resources/views/admin/shop/index.blade.php index 0f0a8fde..9ef34d6b 100644 --- a/resources/views/admin/shop/index.blade.php +++ b/resources/views/admin/shop/index.blade.php @@ -44,6 +44,7 @@
{{$goods->use_count}} / {{$goods->total_count}}