72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace app\model;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use Exception;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Menu extends Base
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public const SHOW_YES = 1;
							 | 
						||
| 
								 | 
							
								    public const SHOW_NO  = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public const STATUS_NORMAL  = 1;
							 | 
						||
| 
								 | 
							
								    public const STATUS_DISABLE = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public const TYPE_MENU   = 'menu';
							 | 
						||
| 
								 | 
							
								    public const TYPE_ACTION = 'action';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 默认操作
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @return string[]
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function defaultAction(): array
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return [
							 | 
						||
| 
								 | 
							
								            'index'  => '查看',
							 | 
						||
| 
								 | 
							
								            'add'    => '添加',
							 | 
						||
| 
								 | 
							
								            'edit'   => '编辑',
							 | 
						||
| 
								 | 
							
								            'del'    => '删除',
							 | 
						||
| 
								 | 
							
								            'sort'   => '排序',
							 | 
						||
| 
								 | 
							
								            'modify' => '属性设置',
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 自从生成常规操作权限
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param  int  $id
							 | 
						||
| 
								 | 
							
								     * @param  string  $name
							 | 
						||
| 
								 | 
							
								     * @param  string  $path
							 | 
						||
| 
								 | 
							
								     * @throws Exception
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function generate(int $id, string $name, string $path)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $actions = self::defaultAction();
							 | 
						||
| 
								 | 
							
								        $delete  = [];
							 | 
						||
| 
								 | 
							
								        $insert  = [];
							 | 
						||
| 
								 | 
							
								        $created = date('Y-m-d H:i:s');
							 | 
						||
| 
								 | 
							
								        foreach ($actions as $key => $action) {
							 | 
						||
| 
								 | 
							
								            $name     = explode(':', $name)[0];
							 | 
						||
| 
								 | 
							
								            $delete[] = $name.':'.$key;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $arr               = [];
							 | 
						||
| 
								 | 
							
								            $arr['title']      = $action;
							 | 
						||
| 
								 | 
							
								            $arr['pid']        = $id;
							 | 
						||
| 
								 | 
							
								            $arr['name']       = $name.':'.$key;
							 | 
						||
| 
								 | 
							
								            $arr['type']       = self::TYPE_ACTION;
							 | 
						||
| 
								 | 
							
								            $arr['path']       = $path.$id.',';
							 | 
						||
| 
								 | 
							
								            $arr['remark']     = sprintf("自动生成[%s][%s]操作", $name, $action);
							 | 
						||
| 
								 | 
							
								            $arr['created_at'] = $created;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $insert[] = $arr;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //删除已有常规操作
							 | 
						||
| 
								 | 
							
								        self::where('pid', $id)->whereIn('name', $delete)->delete();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //新增常规操作
							 | 
						||
| 
								 | 
							
								        (new self())->saveAll($insert);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |