模型工厂查出商品的销量、评分、评价数疑问?
// 根据商品 ID 过滤掉重复的商品
$products->unique('id')->each(function (Product $product) {
// 查出该商品的销量、评分、评价数
$result = OrderItem::query()
->where('product_id', $product->id)
->whereHas('order', function ($query) {
$query->whereNotNull('paid_at');
})
->first([
\DB::raw('count(*) as review_count'),
\DB::raw('avg(rating) as rating'),
\DB::raw('sum(amount) as sold_count'),
]);
.
.
.
});
在这里面,如果一个订单付完款,但是没有进行评价
// 这里是不是把没评价的也算在评价总数里了?
\DB::raw('count(*) as review_count'),
// 这里是不是把没评分的也算在评分平均值里了?
\DB::raw('avg(rating) as rating'),
// 销售量是不是也要判断该笔订单没有发起退款?
\DB::raw('sum(amount) as sold_count'),
推荐文章: