yunzer/app/admin/controller/Yunzer.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();
}
}
}