params = $params; } public function handle() { $arrUserCodes = []; $nowDate = Carbon::now()->toDateString(); $videoService = make(VideoService::class); if (!empty($this->params)) { $cacheRepo = make(CacheInterface::class); $cacheKey = 'video:watch:bulk2'; $cacheData = $cacheRepo->get($cacheKey, []); if (!empty($cacheData)) { if (count($cacheData) > 100) { $cacheRepo->delete($cacheKey); // 自动增加观看次数. foreach ($cacheData as $videoId => $incNum) { $videoObj = VideoModel::where(['id' => $videoId])->first(['id', 'watch', 'real_watch']); if (!empty($videoObj)) { $videoObj->watch = $videoObj->watch + $incNum; $videoObj->real_watch = $videoObj->real_watch + $incNum; $videoObj->save(); } } } } foreach ($this->params as $item) { if (isset($cacheData[$item['video_id']])) { $cacheData[$item['video_id']] = $cacheData[$item['video_id']] + 1; } else { $cacheData[$item['video_id']] = 1; } } $cacheRepo->forever($cacheKey, $cacheData); } } }