You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			117 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| namespace wstmart\admin\model;
 | |
| use think\Db;
 | |
| /**
 | |
|  * ============================================================================
 | |
|  * 权限业务处理
 | |
|  */
 | |
| class Privileges extends Base{
 | |
| 	/**
 | |
| 	 * 加载指定菜单的权限
 | |
| 	 */
 | |
| 	public function listQuery($parentId){
 | |
| 		$rs = $this->where(['menuId'=>$parentId,'dataFlag'=>1])->order('privilegeId', 'asc')->select();
 | |
| 		return ['Rows'=>$rs,'Total'=>count($rs)];
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 获取指定权限
 | |
| 	 */
 | |
|     public function getById($id){
 | |
| 		return $this->get(['privilegeId'=>$id,'dataFlag'=>1]);
 | |
| 	}
 | |
| 	
 | |
|     /**
 | |
| 	 * 新增
 | |
| 	 */
 | |
| 	public function add(){
 | |
| 		$result = $this->validate('Privileges.add')->allowField(true)->save(input('post.'));
 | |
|         if(false !== $result){
 | |
|         	WSTClearAllCache();
 | |
|         	return WSTReturn("新增成功", 1);
 | |
|         }else{
 | |
|         	return WSTReturn($this->getError(),-1);
 | |
|         }
 | |
| 	}
 | |
|     /**
 | |
| 	 * 编辑
 | |
| 	 */
 | |
| 	public function edit(){
 | |
| 		$id = input('post.id/d');
 | |
| 	    $result = $this->validate('Privileges.edit')->allowField(true)->save(input('post.'),['privilegeId'=>$id]);
 | |
|         if(false !== $result){
 | |
|         	WSTClearAllCache();
 | |
|         	return WSTReturn("编辑成功", 1);
 | |
|         }else{
 | |
|         	return WSTReturn($this->getError(),-1);
 | |
|         }
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 删除
 | |
| 	 */
 | |
| 	public function del(){
 | |
| 	    $id = input('post.id/d');
 | |
| 	    $result = $this->where(['privilegeId'=>$id])->delete();
 | |
|         if(false !== $result){
 | |
|         	WSTClearAllCache();
 | |
|         	return WSTReturn("删除成功", 1);
 | |
|         }else{
 | |
|         	return WSTReturn($this->getError(),-1);
 | |
|         }
 | |
| 	}
 | |
| 	
 | |
| 	/**
 | |
| 	 * 检测权限代码是否存在
 | |
| 	 */
 | |
| 	public function checkPrivilegeCode(){
 | |
| 		$privilegeId = input('privilegeId/d',0);
 | |
| 		$code = input('code');
 | |
| 		if($code=='')return WSTReturn("", 1);
 | |
| 		$where = [];
 | |
| 		$where["privilegeCode"] = $code;
 | |
| 		$where["dataFlag"] = 1;
 | |
| 		if($privilegeId>0){
 | |
| 			$where["privilegeId"] = ["<>",$privilegeId];
 | |
| 		}
 | |
| 		$rs = $this->where($where)->Count();
 | |
| 		if($rs==0)return WSTReturn("", 1);
 | |
| 		return WSTReturn("该权限代码已存在!", -1);
 | |
| 	}
 | |
| 	
 | |
| 	/**
 | |
| 	 * 加载权限并且标用户的权限
 | |
| 	 */
 | |
| 	public function listQueryByRole($id){
 | |
| 		$mrs = Db::name('menus')->alias('m')->join('__PRIVILEGES__ p','m.menuId= p.menuId and isMenuPrivilege=1 and p.dataFlag=1','left')
 | |
| 			->where(['parentId'=>$id,'m.dataFlag'=>1])
 | |
| 			->field('m.menuId id,m.menuName name,p.privilegeCode,1 as isParent')
 | |
| 			->order('menuSort', 'asc')
 | |
| 			->select();
 | |
| 		$prs = $this->where(['dataFlag'=>1,'menuId'=>$id])->field('privilegeId id,privilegeName name,privilegeCode,0 as isParent')->select();
 | |
| 		if($mrs){
 | |
| 			if($prs){
 | |
| 				foreach ($prs as $v){
 | |
| 					array_unshift($mrs,$v);
 | |
| 				}
 | |
| 			}
 | |
| 		}else{
 | |
| 		    if($prs)$mrs = $prs;
 | |
| 		}
 | |
| 		if(!$mrs)return [];
 | |
| 		foreach ($mrs as $key =>$v){
 | |
| 			if($v['isParent']==1){
 | |
| 				$mrs[$key]['isParent'] = true;
 | |
| 				$mrs[$key]['open'] = true;
 | |
| 			}else{
 | |
| 			    $mrs[$key]['id'] = 'p'.$v['id'];
 | |
| 			}
 | |
| 		}
 | |
| 		return $mrs;
 | |
| 	}
 | |
| 	/**
 | |
| 	 * 加载全部权限
 | |
| 	 */
 | |
| 	public function getAllPrivileges(){
 | |
| 		return $this->where(['dataFlag'=>1])->field('menuId,privilegeName,privilegeCode,privilegeUrl,otherPrivilegeUrl')->select();
 | |
| 	}
 | |
| }
 |