| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace App\Services;
- use App\Traits\ServiceAppAop;
- use App\Menu;
- use Illuminate\Support\Facades\Cache;
- class MenuService
- {
- use ServiceAppAop;
- protected $modelClass=Menu::class;
- public function getMenu()
- {
- if (!Cache::has("menus")){
- if (Cache::lock("menus",2)){
- $this->setMenu();
- Cache::lock("menus")->release();
- }else{
- sleep(1);
- return Cache::get("menus") ?? [];
- }
- }
- return Cache::get("menus");
- }
- public function setMenu()
- {
- Cache::forever("menus",Menu::query()->select("id","name","parent_id","route")->orderByRaw("level DESC,sequence")->get());
- Cache::tags("menu")->flush();
- }
- public function appendMenu(Menu $menu)
- {
- $menus = $this->getMenu();
- if ($menus){
- $menus->add($menu);
- Cache::forever("menus",$menus);
- }
- }
- public function getVisibleFunctionList()
- {
- $authorities = app("AuthorityService")->getUserAuthority();
- }
- }
|