goodsSku->id; $nowTime = Carbon::now()->toDateTimeString(); //查找最后一次盘点数据 $dailyStockRecord = DailyStockRecord::query()->where("sku_id", '=', $skuId)-> where("inventory_time", '<', $nowTime)->orderByDesc('inventory_time')->first(); $inventory = $dailyStockRecord['inventory'] ?? 0; $expireTime = Carbon::now()->addMinutes(30)->toDateTimeString(); $proportion = Cache::remember(CacheKeyEnum::STOCK_RULE_PROPORTION, $expireTime, function () { $developerConfig = DeveloperConfig::query()->where("key", "=", DevConfigKeyEnum::STOCK_RULE_PROPORTION)->first(); return $developerConfig['value'] ?? DevConfigKeyEnum::DEFAULT_STOCK_RULE_PROPORTION; }); //库存比例小于最近盘点多少告警 一天也只是告警一次 if ($inventory > 10 && $inventory * $proportion > $event->goodsSku->stock) { $messageService = new MessageService(); $messageService->createLowerStockNoticeMessage($inventory,$event->goodsSku->toArray()); } } }