From 85311a230860a0a607fabf89eba74fc5beab9541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Thu, 28 Jul 2022 17:08:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20#20220728=20=E5=95=86=E5=93=81=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Filters/GoodsFilter.php | 2 +- app/Filters/GoodsSkuFilter.php | 2 +- .../Controllers/Goods/GoodsController.php | 12 ++++++--- app/Models/Goods.php | 2 +- app/Models/GoodsSku.php | 26 ++++++++++++++++++- 5 files changed, 37 insertions(+), 7 deletions(-) diff --git a/app/Filters/GoodsFilter.php b/app/Filters/GoodsFilter.php index 7e69e9f..43f7f00 100644 --- a/app/Filters/GoodsFilter.php +++ b/app/Filters/GoodsFilter.php @@ -4,7 +4,7 @@ namespace App\Filters; class GoodsFilter extends Filters { - protected function title($value) + protected function goodsTitle($value) { return $this->builder->where('title', 'like', "%$value%"); } diff --git a/app/Filters/GoodsSkuFilter.php b/app/Filters/GoodsSkuFilter.php index 0c892b8..d4d1c97 100644 --- a/app/Filters/GoodsSkuFilter.php +++ b/app/Filters/GoodsSkuFilter.php @@ -4,7 +4,7 @@ namespace App\Filters; class GoodsSkuFilter extends Filters { - protected function title($value) + protected function skuTitle($value) { return $this->builder->where('title', '=', $value); } diff --git a/app/Http/Controllers/Goods/GoodsController.php b/app/Http/Controllers/Goods/GoodsController.php index 8f8f71d..556213a 100644 --- a/app/Http/Controllers/Goods/GoodsController.php +++ b/app/Http/Controllers/Goods/GoodsController.php @@ -15,13 +15,19 @@ class GoodsController extends Controller { public function index(Request $request) { -// $goodsIds = []; + $goods = Goods::query()->filter()->get()->toArray(); + $goodsIds = array_column($goods, 'id'); + // 状态变更时间查询,日志 + $day = date('Y-m-d'); //早上7点之前是昨天,7点之后是今天 $goodsSkus = GoodsSku::query() + ->whereIn('goods_id', $goodsIds) ->filter() ->with(['goods' => function ($query) { - $query->with(['type:id,name', 'brand:id,name'])->filter(); + $query->with(['type:id,name', 'brand:id,name']); + }]) + ->with(['daily' => function ($query) use ($day){ + $query->where('day', $day)->with(['daily:id,sku_id,day,arrived_today_num,loss_num,inventory']); }]) -// ->whereIn('goods_id', $goodsIds) ->paginate(); return GoodsSkuResource::collection($goodsSkus); diff --git a/app/Models/Goods.php b/app/Models/Goods.php index 2e6db69..3498be6 100644 --- a/app/Models/Goods.php +++ b/app/Models/Goods.php @@ -10,7 +10,7 @@ class Goods extends Model //查询字段 public $fieldSearchable = [ - 'title', + 'goods_title', 'type_id', 'brand_id', ]; diff --git a/app/Models/GoodsSku.php b/app/Models/GoodsSku.php index ba44c67..36a612a 100644 --- a/app/Models/GoodsSku.php +++ b/app/Models/GoodsSku.php @@ -10,7 +10,7 @@ class GoodsSku extends Model //查询字段 public $fieldSearchable = [ - 'title', + 'sku_title', 'status', ]; @@ -23,6 +23,22 @@ class GoodsSku extends Model protected $hidden = ['created_at']; + /** + * 获取状态 + * + * @param string $value + * @return string + */ + public function getStatusAttribute($value) + { + $map = [ + 0 => '下架', + 1 => '在售', + 2 => '预警', + ]; + return $map[$value]; + } + /** * 此规格从属于一个商品 */ @@ -30,4 +46,12 @@ class GoodsSku extends Model { return $this->hasOne(Goods::class, 'id', 'goods_id'); } + + /** + * 此规格每日记录 + */ + public function daily() + { + return $this->hasOne(DailyStockRecord::class, 'sku_id', 'id'); + } }