|
@@ -57,16 +57,21 @@ class Product extends Api{
|
|
|
if( $name ) $map[] = ['product.name','like','%'.$name.'%'];
|
|
|
// 是否有城市
|
|
|
$wherIn = empty($custom['city_id']) ? [1] : [1,$custom['city_id']];
|
|
|
+ //
|
|
|
+ $select = ['product.id','product.sort','product.business_id','product.name','product.tag_scope','product.tag_exclude','product.thumb','product.spec','product.price','product.market_price','product.stock'];
|
|
|
+ // 获取结果
|
|
|
+ if( $getTop ) $select[] = DB::raw("count('product.id') as top_total");
|
|
|
// 获取分页信息
|
|
|
- $Paginator = $Model->query()
|
|
|
- ->join('product_city','product_city.product_id','=','product.id')
|
|
|
- ->join('orders_product','orders_product.product_id','=','product.id')
|
|
|
- ->where($map)
|
|
|
+ $Paginator = $Model->query()->join('product_city','product_city.product_id','=','product.id');
|
|
|
+ // 获取列表
|
|
|
+ if( $getTop ) $Paginator = $Paginator->join('orders_product','orders_product.product_id','=','product.id','LEFT');
|
|
|
+ // 获取结果
|
|
|
+ $Paginator = $Paginator->where($map)
|
|
|
->whereIn('product_city.city_id',$wherIn)
|
|
|
->groupBy('product.id')
|
|
|
->orderBy( $getTop ? 'top_total' : 'product.sort', $getTop ? 'desc':'asc')
|
|
|
->orderBy('product.id')
|
|
|
- ->select(['product.id','product.sort','product.business_id','product.name','product.tag_scope','product.tag_exclude','product.thumb','product.spec','product.price','product.market_price','product.stock',DB::raw("count('product.id') as top_total")])
|
|
|
+ ->select($select)
|
|
|
->paginate($limit);
|
|
|
// 获取数据
|
|
|
$data['total'] = $Paginator->total();
|