|
|
@@ -5,8 +5,10 @@ namespace App\Services;
|
|
|
|
|
|
|
|
|
use App\Menu;
|
|
|
+use App\User;
|
|
|
use App\UserVisitMenuLog;
|
|
|
use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Arr;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
use Illuminate\Support\Facades\Redis;
|
|
|
|
|
|
@@ -52,6 +54,31 @@ class CheckActiveMenuService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public static function activeMenus()
|
|
|
+ {
|
|
|
+ if (Redis::LLEN('UserVisitMenuLogsL1') + Redis::LLEN('UserVisitMenuLogsL2') > 0) {
|
|
|
+ //缓存中有数据
|
|
|
+
|
|
|
+ $array1 = self::redisListToArray(Redis::LRANGE('UserVisitMenuLogsL1', 0, -1));
|
|
|
+ $array2 = self::redisListToArray(Redis::LRANGE('UserVisitMenuLogsL2', 0, -1));
|
|
|
+ $array = array_merge($array1, $array2);
|
|
|
+ $conller = collect($array);
|
|
|
+ $user_id = 1;
|
|
|
+ if (Auth::user()) {
|
|
|
+ $user_id = Auth::user()->id;
|
|
|
+ }
|
|
|
+ $arr = $conller->filter(function ($item) use ($user_id){
|
|
|
+ return $user_id === $item['user_id'];
|
|
|
+ })->groupBy('menu_id')->sortByDesc(function ($item){
|
|
|
+ return $item->count();
|
|
|
+ })->forPage(0,5)->keys();
|
|
|
+ $menus = Menu::query()->find($arr)->sortBy(function($item)use($arr){
|
|
|
+ return $arr->search($item->id);
|
|
|
+ });
|
|
|
+ dd($menus,$arr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 将缓存中的数据拿出保存,转换为数组,方便数据库保存
|
|
|
* @param $userVisitMenuLogsStr
|