Эх сурвалжийг харах

【Add】添加产品销量数据

liuxiangxin 6 сар өмнө
parent
commit
5d53b62ec9

+ 14 - 1
app/Http/Controllers/Admin/Product.php

@@ -1,9 +1,11 @@
 <?php namespace App\Http\Controllers\Admin;
 
 use App\Http\Requests\Admin\Product as Request;
+use App\Models\AdminHistory;
 use App\Models\AdminUser;
 use App\Models\Business;
 use App\Models\City;
+use App\Models\OrdersProduct;
 use App\Models\Producer;
 use App\Models\Product as Model;
 use Illuminate\Support\Carbon;
@@ -33,7 +35,7 @@ class Product extends Auth{
 	 * 首页列表
 	 * 
 	 * */
-    public function index(Model $Model,City $City,ProductCity $ProductCity){
+    public function index(Model $Model,City $City,ProductCity $ProductCity,OrdersProduct $OrdersProduct,AdminHistory $AdminHistory){
 		// 接受参数
 		$code					= request('product_code','');
 		$name					= request('name','');
@@ -61,8 +63,17 @@ class Product extends Auth{
 								->orderByDesc('product.id')
 								->select(['product.*'])
 								->paginate(request('limit',config('page_num',10)))->appends(request()->all());
+		// 统计销量
+		$salesList				= $OrdersProduct->query()->where([['status','<>',4]])->whereIn('product_id',array_column($list->items(),'id'))->groupBy('product_id')->select([DB::raw('sum(`buy_num`) as sales_total'),'product_id'])->pluck('sales_total','product_id')->toArray();
 		// 循环处理数据
 		foreach ($list as $key => $value) {
+			// 判断总库存
+			if( !$value['stock_total'] )	{
+				// 以首次添加时的为准
+				$value['stock_total']= (int) $AdminHistory->query()->where([['table_name','=','product'],['primary_id','=',$value['id']],['notes_type','=',1],['column_name','=','stock']])->orderBy('update_time')->value('after_value');
+				// 修改库存
+				$Model->edit($value['id'],['stock_total'=>$value['stock_total']]);
+			}
 			// id转编号
 			$value['product_code']	= $Model->idToCode($value['id']);
 			// id转编号
@@ -79,6 +90,8 @@ class Product extends Auth{
 					$cityName[] = $City->getOne($cityId,'name');
 				}
 			}
+			// 销量统计
+			$value['sales_total']	= isset($salesList[$value['id']])?$salesList[$value['id']]:0;
 			// 城市
 			$value['city_name']		= implode('、',$cityName);
 			// 重组

+ 6 - 2
resources/views/admin/product/index.blade.php

@@ -49,7 +49,9 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 						<th>产品名称</th>
 						<th>规格</th>
 						<th>产品价格</th>
-						<th>剩余库存/总库存</th>
+						<th>剩余库存</th>
+						<th>产品销量</th>
+						<th>产品库存</th>
 						<th>产品状态</th>
 						<th>服务城市</th>
 						<th>排序</th>
@@ -65,7 +67,9 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 						<td> {{$a['name']}}</td>
 						<td> {{$a['spec']}}</td>
 						<td> ¥<del>{{$a['market_price']}}</del> ¥{{$a['price']}}</td>
-						<td> {{$a['stock']}}/{{$a['stock_total']}}</td>
+						<td>{{$a['stock']}}</td>
+						<td>{{$a['sales_total']}}</td>
+						<td>{{$a['stock_total']}}</td>
 						<td> {{$a['status']?'已下架':'已上架'}} </td>
 						<td> {{$a['city_name']}}</td>
 						<td>