| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | 
							- <?php
 
- /**
 
-  *------------------------------------------------------
 
-  * Menus.php
 
-  *------------------------------------------------------
 
-  *
 
-  * @author    qqiu@qq.com
 
-  * @date      2016/12/19 11:31
 
-  * @version   V1.0
 
-  *
 
-  */
 
- namespace App\Services\Admin;
 
- use App\Services\Base\BaseProcess;
 
- use App\Models\AdminMenusModel;
 
- use App\Services\Base\Tree;
 
- class Menus extends BaseProcess {
 
-     /**
 
-      * 模型
 
-      */
 
-     private $_model;
 
-     /**
 
-      * 初始化
 
-      */
 
-     public function __construct()
 
-     {
 
-         if( ! $this->_model) $this->_model = new AdminMenusModel();
 
-     }
 
-     public function model() {
 
-         $this->setSucessCode();
 
-         return $this->_model;
 
-     }
 
-     public function find($id) {
 
-         return $this->_model->find($id);
 
-     }
 
-     /**
 
-      * 添加
 
-      * @param unknown $data
 
-      */
 
-     public function create($data)
 
-     {
 
-         return $this->_model->create($data);
 
-     }
 
-     /**
 
-      * 更新
 
-      * @param unknown $id
 
-      * @param unknown $data
 
-      */
 
-     public function update($id,$data)
 
-     {
 
-         $obj = $this->_model->find($id);
 
-         if(!$obj) {
 
-             return false;
 
-         }
 
-         $ok = $obj->update($data);
 
-         return $ok;
 
-     }
 
-     /**
 
-      * 删除
 
-      * @param unknown $id
 
-      */
 
-     public function destroy($id)
 
-     {
 
-         return $this->_model->destroy($id);
 
-     }
 
-     /**
 
-      * 获取当前菜单层级
 
-      * @param $pid
 
-      * @return level
 
-      */
 
-     public function getLevel($id)
 
-     {
 
-         $tree = new Tree();
 
-         $MenusArr = $this->_model->orderBy('sort', 'DESC')->get()->toArray();
 
-         $tree->init($MenusArr);
 
-         $allParents = $tree->getPos($id);
 
-         return count($allParents);
 
-     }
 
-     /**
 
-      * 获取菜单树状结构
 
-      */
 
-     public function getMenusTree($search = array()){
 
-         $currentQuery = $this->_model;
 
-         if(isset($search['keyword']) && !empty($search['keyword'])) {
 
-             $keywords = '%' . $search['keyword'] . '%';
 
-             $currentQuery = $currentQuery->where(function ($query) use ($keywords) {
 
-                 $query->where('name'  , 'like', $keywords)
 
- //                    ->orwhere('module', 'like', $keywords)
 
-                     ->orwhere('path', 'like', $keywords)
 
-                     ->orwhere('mark', 'like', $keywords);
 
-             });
 
-         }
 
-         $MenusArr = $currentQuery->orderBy('sort', 'DESC')->get()->toArray();
 
-         $tree = new Tree();
 
-         $tree->icon = array('   │ ', '   ├─ ', '   └─ ');
 
-         $tree->nbsp = '   ';
 
-         $tree->init($MenusArr);
 
-         return $tree->getTree();
 
-     }
 
-     /**
 
-      * 搜索
 
-      * @param $search
 
-      * @param $pagesize
 
-      */
 
-     public function search($search,$orderby=array('sort'=>'desc'),$pagesize = PAGE_NUMS)
 
-     {
 
-         $currentQuery = $this->_model;
 
-         if(isset($search['keyword']) && !empty($search['keyword'])) {
 
-             $keywords = '%' . $search['keyword'] . '%';
 
-             $currentQuery = $currentQuery->where(function ($query) use ($keywords) {
 
-                 $query->where('name'  , 'like', $keywords)
 
-                     ->orwhere('module', 'like', $keywords)
 
-                     ->orwhere('contrl', 'like', $keywords);
 
-             });
 
-         }
 
-         if(isset($search['min_level']) && !empty($search['min_level'])) {
 
-             $currentQuery = $currentQuery->where('level','<=',$search['min_level']);
 
-         }
 
-         if(isset($search['display']) && !empty($search['display'])) {
 
-             $currentQuery = $currentQuery->where('display',$search['display']);
 
-         }
 
-         if($orderby) {
 
-             foreach ($orderby as $key=>$sort) {
 
-                 $currentQuery = $currentQuery->orderBy($key,$sort);
 
-             }
 
-         }
 
-         if($pagesize){
 
-             $currentQuery = $currentQuery->paginate($pagesize);
 
-         }else{
 
-             $currentQuery = $currentQuery->get();
 
-         }
 
-         return $currentQuery;
 
-     }
 
- }
 
 
  |