416 lines
13 KiB
PHP
416 lines
13 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;
|
|
use app\admin\controller\Log;
|
|
use app\admin\model\AdminSysMenu;
|
|
use app\admin\model\AdminUserGroup;
|
|
use app\admin\model\AdminConfig;
|
|
use app\admin\model\ZIconfont;
|
|
|
|
class Yunzer extends Base{
|
|
# 菜单列表
|
|
public function menuinfo(){
|
|
$lists = AdminSysMenu::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'])) {
|
|
Log::record('添加菜单', 0, '请输入菜单名称', '菜单管理');
|
|
$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'])) {
|
|
Log::record('添加菜单', 0, '请输入内部跳转地址', '菜单管理');
|
|
$this->returnCode(1, '请输入内部跳转地址');
|
|
}
|
|
} else if ($data['type'] == 2) {
|
|
$data['src'] = trim(input('post.src2'));
|
|
if (empty($data['src'])) {
|
|
Log::record('添加菜单', 0, '请输入超链接地址', '菜单管理');
|
|
$this->returnCode(1, '请输入超链接地址');
|
|
}
|
|
} else {
|
|
$data['src'] = '';
|
|
}
|
|
// 保存菜单
|
|
$res = AdminSysMenu::insert($data);
|
|
if (!$res) {
|
|
Log::record('添加菜单', 0, '添加菜单失败', '菜单管理');
|
|
$this->returnCode(1, '添加菜单失败');
|
|
}
|
|
|
|
// 获取新插入的菜单ID
|
|
$newMenuId = AdminSysMenu::getLastInsID();
|
|
|
|
// 获取所有管理员用户组
|
|
$adminGroups = AdminUserGroup::select();
|
|
foreach ($adminGroups as $group) {
|
|
// 获取现有权限
|
|
$rights = [];
|
|
if (!empty($group['rights'])) {
|
|
$rights = json_decode($group['rights'], true);
|
|
}
|
|
|
|
// 添加新菜单ID到权限列表
|
|
if (!in_array($newMenuId, $rights)) {
|
|
$rights[] = $newMenuId;
|
|
|
|
// 更新用户组权限
|
|
AdminUserGroup::where('group_id', $group['group_id'])
|
|
->update(['rights' => json_encode($rights)]);
|
|
}
|
|
}
|
|
|
|
Log::record('添加菜单', 1, '', '菜单管理');
|
|
$this->returnCode(0);
|
|
} else {
|
|
$iconfont = ZIconfont::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']){
|
|
Log::record('编辑菜单', 0, '请输入菜单名称', '菜单管理');
|
|
$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'])){
|
|
Log::record('编辑菜单', 0, '请输入内部跳转地址', '菜单管理');
|
|
$this->returnCode(1, '请输入内部跳转地址');
|
|
}
|
|
}else if($data['type'] == 2){
|
|
$data['src'] = trim(input('post.src2'));
|
|
if(empty($data['src'])){
|
|
Log::record('编辑菜单', 0, '请输入超链接地址', '菜单管理');
|
|
$this->returnCode(1, '请输入超链接地址');
|
|
}
|
|
}else{
|
|
$data['src'] = '';
|
|
}
|
|
// 保存用户
|
|
$res = AdminSysMenu::where('smid',$smid)->update($data);
|
|
if(!$res){
|
|
Log::record('编辑菜单', 0, '修改菜单失败', '菜单管理');
|
|
$this->returnCode(1, '修改菜单失败');
|
|
}
|
|
Log::record('编辑菜单', 1, '', '菜单管理');
|
|
$this->returnCode(0);
|
|
}else{
|
|
$smid = (int)input('get.smid');
|
|
$lists = AdminSysMenu::where('smid',$smid)->find();
|
|
$iconfont = ZIconfont::where('status',1)->select();
|
|
View::assign([
|
|
'lists' => $lists,
|
|
'iconfont' => $iconfont
|
|
]);
|
|
return View::fetch();
|
|
}
|
|
}
|
|
# 菜单删除
|
|
public function menudel(){
|
|
$smid = (int)input('post.smid');
|
|
$count = AdminSysMenu::where('parent_id',$smid)->count();
|
|
if($count > 0){
|
|
Log::record('删除菜单', 0, '该菜单下还有子菜单,不能删除', '菜单管理');
|
|
$this->returnCode(1, '该菜单下还有子菜单,不能删除');
|
|
}
|
|
$res = AdminSysMenu::where('smid',$smid)->delete();
|
|
if(empty($res)){
|
|
Log::record('删除菜单', 0, '删除菜单失败', '菜单管理');
|
|
$this->returnCode(1, '删除菜单失败');
|
|
}
|
|
Log::record('删除菜单', 1, '', '菜单管理');
|
|
$this->returnCode(0);
|
|
}
|
|
# 按钮管理
|
|
public function buttoninfo(){
|
|
$smid = (int)input('get.smid');
|
|
$lists = AdminSysMenu::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']){
|
|
Log::record('添加按钮', 0, '请输入按钮名称', '按钮管理');
|
|
$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'])){
|
|
Log::record('添加按钮', 0, '请选择按钮类型', '按钮管理');
|
|
$this->returnCode(1, '请选择按钮类型');
|
|
}
|
|
if($data['type'] == 1){
|
|
$data['src'] = trim(input('post.src1'));
|
|
if(empty($data['src'])){
|
|
Log::record('添加按钮', 0, '请输入内部跳转地址', '按钮管理');
|
|
$this->returnCode(1, '请输入内部跳转地址');
|
|
}
|
|
}else if($data['type'] == 2){
|
|
$data['src'] = trim(input('post.src2'));
|
|
if(empty($data['src'])){
|
|
Log::record('添加按钮', 0, '请输入超链接地址', '按钮管理');
|
|
$this->returnCode(1, '请输入超链接地址');
|
|
}
|
|
}
|
|
$data['parent_id'] = $smid;
|
|
$res = AdminSysMenu::insert($data);
|
|
if(!$res){
|
|
Log::record('添加按钮', 0, '添加按钮失败', '按钮管理');
|
|
$this->returnCode(1, '添加按钮失败');
|
|
}
|
|
Log::record('添加按钮', 1, '', '按钮管理');
|
|
$this->returnCode(0);
|
|
}else{
|
|
$smid = (int)input('get.smid');
|
|
$iconfont = ZIconfont::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']){
|
|
Log::record('编辑按钮', 0, '请输入按钮名称', '按钮管理');
|
|
$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'])){
|
|
Log::record('编辑按钮', 0, '请选择按钮类型', '按钮管理');
|
|
$this->returnCode(1, '请选择按钮类型');
|
|
}
|
|
if($data['type'] == 1){
|
|
$data['src'] = trim(input('post.src1'));
|
|
if(empty($data['src'])){
|
|
Log::record('编辑按钮', 0, '请输入内部跳转地址', '按钮管理');
|
|
$this->returnCode(1, '请输入内部跳转地址');
|
|
}
|
|
}else if($data['type'] == 2){
|
|
$data['src'] = trim(input('post.src2'));
|
|
if(empty($data['src'])){
|
|
Log::record('编辑按钮', 0, '请输入超链接地址', '按钮管理');
|
|
$this->returnCode(1, '请输入超链接地址');
|
|
}
|
|
}
|
|
$res = AdminSysMenu::where('smid',$smid)->update($data);
|
|
if(!$res){
|
|
Log::record('编辑按钮', 0, '修改按钮失败', '按钮管理');
|
|
$this->returnCode(1, '修改按钮失败');
|
|
}
|
|
Log::record('编辑按钮', 1, '', '按钮管理');
|
|
$this->returnCode(0);
|
|
}else{
|
|
$smid = (int)input('get.smid');
|
|
$lists = AdminSysMenu::where('smid',$smid)->find();
|
|
$iconfont = ZIconfont::where('status',1)->select();
|
|
View::assign([
|
|
'lists' => $lists,
|
|
'iconfont' => $iconfont
|
|
]);
|
|
return View::fetch();
|
|
}
|
|
}
|
|
# 按钮删除
|
|
public function buttondel(){
|
|
$smid = (int)input('post.smid');
|
|
$res = AdminSysMenu::where('smid',$smid)->delete();
|
|
if(empty($res)){
|
|
Log::record('删除按钮', 0, '删除按钮失败', '按钮管理');
|
|
$this->returnCode(1, '删除按钮失败');
|
|
}
|
|
Log::record('删除按钮', 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 = AdminConfig::count();
|
|
$lists = AdminConfig::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'])){
|
|
Log::record('添加配置', 0, '请输入关键词', '系统配置');
|
|
$this->returnCode(1,'请输入关键词');
|
|
}
|
|
$data['config_info'] = trim(input('post.config_info'));
|
|
if(empty($data['config_info'])){
|
|
Log::record('添加配置', 0, '请输入作用', '系统配置');
|
|
$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 = AdminConfig::insert($data);
|
|
if(empty($res)){
|
|
Log::record('添加配置', 0, '添加配置失败', '系统配置');
|
|
$this->returnCode(1, '添加配置失败');
|
|
}
|
|
Log::record('添加配置', 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)){
|
|
Log::record('编辑配置', 0, '请选择一条数据', '系统配置');
|
|
$this->returnCode(1,'请选择一条数据');
|
|
}
|
|
$data['config_name'] = trim(input('post.config_name'));
|
|
if(empty($data['config_name'])){
|
|
Log::record('编辑配置', 0, '请输入关键词', '系统配置');
|
|
$this->returnCode(1,'请输入关键词');
|
|
}
|
|
$data['config_info'] = trim(input('post.config_info'));
|
|
if(empty($data['config_info'])){
|
|
Log::record('编辑配置', 0, '请输入作用', '系统配置');
|
|
$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 = AdminConfig::where('config_id',$config_id)->update($data);
|
|
if(empty($res)){
|
|
Log::record('编辑配置', 0, '修改配置失败', '系统配置');
|
|
$this->returnCode(1, '修改配置失败');
|
|
}
|
|
Log::record('编辑配置', 1, '', '系统配置');
|
|
$this->returnCode(0);
|
|
}else{
|
|
$config_id = (int)input('get.config_id');
|
|
$find = AdminConfig::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)){
|
|
Log::record('删除配置', 0, '请选择一条数据', '系统配置');
|
|
$this->returnCode(1,'请选择一条数据');
|
|
}
|
|
$res = AdminConfig::where('config_id',$config_id)->delete();
|
|
if(empty($res)){
|
|
Log::record('删除配置', 0, '删除配置失败', '系统配置');
|
|
$this->returnCode(1, '删除配置失败');
|
|
}
|
|
Log::record('删除配置', 1, '', '系统配置');
|
|
$this->returnCode(0);
|
|
}
|
|
# 配置值
|
|
public function configvalue(){
|
|
$req = request();
|
|
if($req->isPost()){
|
|
$post = input('post.');
|
|
if(empty($post)){
|
|
Log::record('更新配置值', 0, '数据不能为空', '系统配置');
|
|
$this->returnCode(1,'数据不能为空');
|
|
}
|
|
$oConfig = new YzAdminConfig();
|
|
$updateAll = $oConfig->updateAll($post);
|
|
if(empty($updateAll)){
|
|
Log::record('更新配置值', 0, '更新配置值失败', '系统配置');
|
|
$this->returnCode(1, '更新配置值失败');
|
|
}
|
|
Log::record('更新配置值', 1, '', '系统配置');
|
|
$this->returnCode(0);
|
|
}else{
|
|
$lists = AdminConfig::order('config_sort DESC,config_id')->select();
|
|
View::assign([
|
|
'lists' => $lists
|
|
]);
|
|
return View::fetch();
|
|
}
|
|
}
|
|
} |