370 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			370 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  *  后台管理系统-核心功能
 | |
|  */
 | |
| namespace app\admin\controller;
 | |
| use app\admin\controller\Base;
 | |
| use think\facade\Db;
 | |
| use think\facade\View;
 | |
| use think\facade\Request;
 | |
| use app\admin\model\YzAdminConfig;
 | |
| 
 | |
| class Yunzer extends Base{
 | |
| 	# 菜单列表
 | |
| 	public function menuinfo(){
 | |
| 		$lists = Db::table('yz_admin_sys_menu')->where('parent_id',0)->order('sort DESC,smid DESC')->select();
 | |
| 		View::assign([
 | |
| 			'lists' => $lists
 | |
| 		]);
 | |
| 		return View::fetch();
 | |
| 	}
 | |
| 	# 菜单添加
 | |
| 	public function menuadd()
 | |
| 	{
 | |
| 		$req = request();
 | |
| 		if ($req->isPost()) {
 | |
| 			$data['label'] = trim(input('post.label'));
 | |
| 			if (empty($data['label'])) {
 | |
| 				$this->returnCode(1, '请输入菜单名称');
 | |
| 			}
 | |
| 			$data['icon_class'] = trim(input('post.icon_class'));
 | |
| 			$data['sort'] = (int) trim(input('post.sort'));
 | |
| 			$data['status'] = (int) trim(input('post.status'));
 | |
| 			$data['type'] = (int) trim(input('post.type', 0));
 | |
| 			if ($data['type'] == 1) {
 | |
| 				$data['src'] = trim(input('post.src1'));
 | |
| 				if (empty($data['src'])) {
 | |
| 					$this->returnCode(1, '请输入内部跳转地址');
 | |
| 				}
 | |
| 			} else if ($data['type'] == 2) {
 | |
| 				$data['src'] = trim(input('post.src2'));
 | |
| 				if (empty($data['src'])) {
 | |
| 					$this->returnCode(1, '请输入超链接地址');
 | |
| 				}
 | |
| 			} else {
 | |
| 				$data['src'] = '';
 | |
| 			}
 | |
| 			// 保存菜单
 | |
| 			$res = Db::table('yz_admin_sys_menu')->insert($data);
 | |
| 			if (!$res) {
 | |
| 				$this->returnCode(1, '添加菜单失败');
 | |
| 			}
 | |
| 
 | |
| 			// 获取新插入的菜单ID
 | |
| 			$newMenuId = Db::table('yz_admin_sys_menu')->getLastInsID();
 | |
| 
 | |
| 			// 获取所有管理员用户组
 | |
| 			$adminGroups = Db::table('yz_admin_user_group')->select();
 | |
| 			foreach ($adminGroups as $group) {
 | |
| 				// 获取现有权限
 | |
| 				$rights = [];
 | |
| 				if (!empty($group['rights'])) {
 | |
| 					$rights = json_decode($group['rights'], true);
 | |
| 				}
 | |
| 
 | |
| 				// 添加新菜单ID到权限列表
 | |
| 				if (!in_array($newMenuId, $rights)) {
 | |
| 					$rights[] = $newMenuId;
 | |
| 
 | |
| 					// 更新用户组权限
 | |
| 					Db::table('yz_admin_user_group')
 | |
| 						->where('group_id', $group['group_id'])
 | |
| 						->update(['rights' => json_encode($rights)]);
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			$this->returnCode(0);
 | |
| 		} else {
 | |
| 			$iconfont = Db::table('yz_z_iconfont')->where('status', 1)->select();
 | |
| 			View::assign([
 | |
| 				'iconfont' => $iconfont
 | |
| 			]);
 | |
| 			return View::fetch();
 | |
| 		}
 | |
| 	}
 | |
| 	# 菜单修改
 | |
| 	public function menuedit(){
 | |
| 		$req = request();
 | |
| 		if($req->isPost()){
 | |
| 			$smid = (int)input('post.smid');
 | |
| 			$data['label'] = trim(input('post.label'));
 | |
| 			if(!$data['label']){
 | |
| 				$this->returnCode(1, '请输入菜单名称');
 | |
| 			}
 | |
| 			$data['icon_class'] = trim(input('post.icon_class'));
 | |
| 			$data['sort'] = (int)trim(input('post.sort'));
 | |
| 			$data['status'] = (int)trim(input('post.status'));
 | |
| 			$data['type'] = (int)trim(input('post.type',0));
 | |
| 			if($data['type'] == 1){
 | |
| 				$data['src'] = trim(input('post.src1'));
 | |
| 				if(empty($data['src'])){
 | |
| 					$this->returnCode(1, '请输入内部跳转地址');
 | |
| 				}
 | |
| 			}else if($data['type'] == 2){
 | |
| 				$data['src'] = trim(input('post.src2'));
 | |
| 				if(empty($data['src'])){
 | |
| 					$this->returnCode(1, '请输入超链接地址');
 | |
| 				}
 | |
| 			}else{
 | |
| 				$data['src'] = '';
 | |
| 			}
 | |
| 			// 保存用户
 | |
| 			$res = Db::table('yz_admin_sys_menu')->where('smid',$smid)->update($data);
 | |
| 			if(!$res){
 | |
| 				$this->returnCode(1, '修改菜单失败');
 | |
| 			}
 | |
| 			$this->returnCode(0);
 | |
| 		}else{
 | |
| 			$smid = (int)input('get.smid');
 | |
| 			$lists = Db::table('yz_admin_sys_menu')->where('smid',$smid)->find();
 | |
| 			$iconfont = Db::table('yz_z_iconfont')->where('status',1)->select();
 | |
| 			View::assign([
 | |
| 				'lists' => $lists,
 | |
| 				'iconfont' => $iconfont
 | |
| 			]);
 | |
| 			return View::fetch();
 | |
| 		}
 | |
| 	}
 | |
| 	# 菜单删除
 | |
| 	public function menudel(){
 | |
| 		$smid = (int)input('post.smid');
 | |
| 		$count = Db::table('yz_admin_sys_menu')->where('parent_id',$smid)->count();
 | |
| 		if($count > 0){
 | |
| 			$this->returnCode(1, '该菜单下还有子菜单,不能删除');
 | |
| 		}
 | |
| 		$res = Db::table('yz_admin_sys_menu')->where('smid',$smid)->delete();
 | |
| 		if(empty($res)){
 | |
| 			$this->returnCode(1, '删除菜单失败');
 | |
| 		}
 | |
| 		$this->returnCode(0);
 | |
| 	}
 | |
| 	# 按钮管理
 | |
| 	public function buttoninfo(){
 | |
| 		$smid = (int)input('get.smid');
 | |
| 		$lists = Db::table('yz_admin_sys_menu')->where('parent_id',$smid)->order('sort DESC')->select()->toArray();
 | |
| 		if(!empty($lists)){
 | |
| 			foreach($lists as &$v){
 | |
| 				switch ($v['type']) {
 | |
| 					case 0:
 | |
| 						$v['type_name'] = '顶级菜单';
 | |
| 						break;
 | |
| 					case 1:
 | |
| 						$v['type_name'] = '内部跳转';
 | |
| 						break;
 | |
| 					case 2:
 | |
| 						$v['type_name'] = '超链接';
 | |
| 						break;
 | |
| 					default:
 | |
| 						$v['type_name'] = '未规划类型';
 | |
| 						break;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		View::assign([
 | |
| 			'lists' => $lists,
 | |
| 			'smid'  => $smid
 | |
| 		]);
 | |
| 		return View::fetch();
 | |
| 	}
 | |
| 	# 按钮添加
 | |
| 	public function buttonadd(){
 | |
| 		$req = request();
 | |
| 		if($req->isPost()){
 | |
| 			$smid = (int)input('post.smid');
 | |
| 			$data['label'] = trim(input('post.label'));
 | |
| 			if(!$data['label']){
 | |
| 				$this->returnCode(1, '请输入按钮名称');
 | |
| 			}
 | |
| 			$data['icon_class'] = trim(input('post.icon_class'));
 | |
| 			$data['sort'] = (int)trim(input('post.sort'));
 | |
| 			$data['status'] = (int)trim(input('post.status'));
 | |
| 			$data['type'] = (int)trim(input('post.type'));
 | |
| 			if(empty($data['type'])){
 | |
| 				$this->returnCode(1, '请选择按钮类型');
 | |
| 			}
 | |
| 			if($data['type'] == 1){
 | |
| 				$data['src'] = trim(input('post.src1'));
 | |
| 				if(empty($data['src'])){
 | |
| 					$this->returnCode(1, '请输入内部跳转地址');
 | |
| 				}
 | |
| 			}else if($data['type'] == 2){
 | |
| 				$data['src'] = trim(input('post.src2'));
 | |
| 				if(empty($data['src'])){
 | |
| 					$this->returnCode(1, '请输入超链接地址');
 | |
| 				}
 | |
| 			}
 | |
| 			$data['parent_id'] = $smid;
 | |
| 			$res = Db::table('yz_admin_sys_menu')->insert($data);
 | |
| 			if(!$res){
 | |
| 				$this->returnCode(1, '添加按钮失败');
 | |
| 			}
 | |
| 			$this->returnCode(0);
 | |
| 		}else{
 | |
| 			$smid = (int)input('get.smid');
 | |
| 			$iconfont = Db::table('yz_z_iconfont')->where('status',1)->select();
 | |
| 			View::assign([
 | |
| 				'smid'  => $smid,
 | |
| 				'iconfont' => $iconfont
 | |
| 			]);
 | |
| 			return View::fetch();
 | |
| 		}
 | |
| 	}
 | |
| 	# 按钮修改
 | |
| 	public function buttonedit(){
 | |
| 		$req = request();
 | |
| 		if($req->isPost()){
 | |
| 			$smid = (int)input('post.smid');
 | |
| 			$data['label'] = trim(input('post.label'));
 | |
| 			if(!$data['label']){
 | |
| 				$this->returnCode(1, '请输入按钮名称');
 | |
| 			}
 | |
| 			$data['icon_class'] = trim(input('post.icon_class'));
 | |
| 			$data['sort'] = (int)trim(input('post.sort'));
 | |
| 			$data['status'] = (int)trim(input('post.status'));
 | |
| 			$data['type'] = (int)trim(input('post.type'));
 | |
| 			if(empty($data['type'])){
 | |
| 				$this->returnCode(1, '请选择按钮类型');
 | |
| 			}
 | |
| 			if($data['type'] == 1){
 | |
| 				$data['src'] = trim(input('post.src1'));
 | |
| 				if(empty($data['src'])){
 | |
| 					$this->returnCode(1, '请输入内部跳转地址');
 | |
| 				}
 | |
| 			}else if($data['type'] == 2){
 | |
| 				$data['src'] = trim(input('post.src2'));
 | |
| 				if(empty($data['src'])){
 | |
| 					$this->returnCode(1, '请输入超链接地址');
 | |
| 				}
 | |
| 			}
 | |
| 			$res = Db::table('yz_admin_sys_menu')->where('smid',$smid)->update($data);
 | |
| 			if(!$res){
 | |
| 				$this->returnCode(1, '修改按钮失败');
 | |
| 			}
 | |
| 			$this->returnCode(0);
 | |
| 		}else{
 | |
| 			$smid = (int)input('get.smid');
 | |
| 			$lists = Db::table('yz_admin_sys_menu')->where('smid',$smid)->find();
 | |
| 			$iconfont = Db::table('yz_z_iconfont')->where('status',1)->select();
 | |
| 			View::assign([
 | |
| 				'lists' => $lists,
 | |
| 				'iconfont' => $iconfont
 | |
| 			]);
 | |
| 			return View::fetch();
 | |
| 		}
 | |
| 	}
 | |
| 	# 按钮删除
 | |
| 	public function buttondel(){
 | |
| 		$smid = (int)input('post.smid');
 | |
| 		$res = Db::table('yz_admin_sys_menu')->where('smid',$smid)->delete();
 | |
| 		if(empty($res)){
 | |
| 			$this->returnCode(1, '删除按钮失败');
 | |
| 		}
 | |
| 		$this->returnCode(0);
 | |
| 	}
 | |
| 	# 配置列表
 | |
| 	public function configlist(){
 | |
| 		$req = request();
 | |
| 		if($req->isPost()){
 | |
| 			$page = (int)input('post.page',1);
 | |
| 			$limit = (int)input('post.limit',$this->config['admin_page']);
 | |
| 			$count = Db::table('yz_admin_config')->count();
 | |
| 			$lists = Db::table('yz_admin_config')->page($page,$limit)->order('config_sort DESC,config_id DESC')->select();
 | |
| 			$this->returnCode(0,$lists,$count);
 | |
| 		}else{
 | |
| 			return View::fetch();
 | |
| 		}
 | |
| 	}
 | |
| 	# 配置添加
 | |
| 	public function configadd(){
 | |
| 		$req = request();
 | |
| 		if($req->isPost()){
 | |
| 			$data['config_name'] = trim(input('post.config_name'));
 | |
| 			if(empty($data['config_name'])){
 | |
| 				$this->returnCode(1,'请输入关键词');
 | |
| 			}
 | |
| 			$data['config_info'] = trim(input('post.config_info'));
 | |
| 			if(empty($data['config_info'])){
 | |
| 				$this->returnCode(1,'请输入作用');
 | |
| 			}
 | |
| 			$data['config_type'] = trim(input('post.config_type'));
 | |
| 			$data['config_desc'] = trim(input('post.config_desc'));
 | |
| 			$data['config_status'] = trim(input('post.config_status'));
 | |
| 			$data['config_sort'] = trim(input('post.config_sort'));
 | |
| 			$res = Db::table('yz_admin_config')->insert($data);
 | |
| 			if(empty($res)){
 | |
| 				$this->returnCode(1, '添加配置失败');
 | |
| 			}
 | |
| 			$this->returnCode(0);
 | |
| 		}else{
 | |
| 			return View::fetch();
 | |
| 		}
 | |
| 	}
 | |
| 	# 配置修改
 | |
| 	public function configedit(){
 | |
| 		$req = request();
 | |
| 		if($req->isPost()){
 | |
| 			$config_id = (int)input('post.config_id');
 | |
| 			if(empty($config_id)){
 | |
| 				$this->returnCode(1,'请选择一条数据');
 | |
| 			}
 | |
| 			$data['config_name'] = trim(input('post.config_name'));
 | |
| 			if(empty($data['config_name'])){
 | |
| 				$this->returnCode(1,'请输入关键词');
 | |
| 			}
 | |
| 			$data['config_info'] = trim(input('post.config_info'));
 | |
| 			if(empty($data['config_info'])){
 | |
| 				$this->returnCode(1,'请输入作用');
 | |
| 			}
 | |
| 			$data['config_type'] = trim(input('post.config_type'));
 | |
| 			$data['config_desc'] = trim(input('post.config_desc'));
 | |
| 			$data['config_status'] = trim(input('post.config_status'));
 | |
| 			$data['config_sort'] = trim(input('post.config_sort'));
 | |
| 			$res = Db::table('yz_admin_config')->where('config_id',$config_id)->update($data);
 | |
| 			if(empty($res)){
 | |
| 				$this->returnCode(1, '修改配置失败');
 | |
| 			}
 | |
| 			$this->returnCode(0);
 | |
| 		}else{
 | |
| 			$config_id = (int)input('get.config_id');
 | |
| 			$find = Db::table('yz_admin_config')->where('config_id',$config_id)->find();
 | |
| 			View::assign([
 | |
| 				'find' => $find
 | |
| 			]);
 | |
| 			return View::fetch();
 | |
| 		}
 | |
| 	}
 | |
| 	# 配置删除
 | |
| 	public function configdel(){
 | |
| 		$config_id = (int)input('post.config_id');
 | |
| 		if(empty($config_id)){
 | |
| 			$this->returnCode(1,'请选择一条数据');
 | |
| 		}
 | |
| 		$res = Db::table('yz_admin_config')->where('config_id',$config_id)->delete();
 | |
| 		if(empty($res)){
 | |
| 			$this->returnCode(1, '删除配置失败');
 | |
| 		}
 | |
| 		$this->returnCode(0);
 | |
| 	}
 | |
| 	# 配置值
 | |
| 	public function configvalue(){
 | |
| 		$req = request();
 | |
| 		if($req->isPost()){
 | |
| 			$post = input('post.');
 | |
| 			if(empty($post)){
 | |
| 				$this->returnCode(1,'数据不能为空');
 | |
| 			}
 | |
| 			$oConfig = new YzAdminConfig();
 | |
| 			$updateAll = $oConfig->updateAll($post);
 | |
| 			if(empty($updateAll)){
 | |
| 				$this->returnCode(1, '更新配置值失败');
 | |
| 			}
 | |
| 			$this->returnCode(0);
 | |
| 		}else{
 | |
| 			$lists = Db::table('yz_admin_config')->order('config_sort DESC,config_id')->select();
 | |
| 			View::assign([
 | |
| 				'lists' => $lists
 | |
| 			]);
 | |
| 			return View::fetch();
 | |
| 		}
 | |
| 	}
 | |
| } |