You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
4.1 KiB
PHP

<?php
namespace App\Services\Admin;
use Illuminate\Support\Facades\DB;
class MenuService
{
public function GetBaseMenuList($arr){
$result=array();
if($arr['userid']=='search'){
$menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1",[$arr['group']]);
$result['list']=$menulist;
$result['status']='ok';
}else{
$query=DB::select("select `group` from users where id =? ",[$arr['userid']]);
if($query[0]->group==$arr['group']){
$menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1",[$arr['group']]);
$result['list']=$menulist;
$result['status']='ok';
}else{
$result['status']='no';
$result['msg']='权限不匹配';
}
}
return $result;
}
public function GetList($arr){
$result=array();
$sql='';
if( $arr['type']=='enable'){
$sql=" and status=1";
}
$query_p = DB::select("select * from menu where pid is null".$sql);
$result['list'] = [];
$i=0;
foreach ($query_p as $item) {
$query = DB::select("select * from menu where pid = ?".$sql, [$item->id]);
$child_items = [];
$result['list'][$i] = [
'id' => $item->id,
'pid' => $item->pid,
'name' => $item->name,
'url' => $item->url,
'icon' => $item->icon,
'created_at' => $item->created_at,
'updated_at' => $item->updated_at,
'children' => [] // 子级节点先为空数组,稍后再填充
];
$j=0;
foreach ($query as $child) {
$child_items[$j] = [
'id' => $child->id,
'pid' => $child->pid,
'name' => $child->name,
'url' => $child->url,
'icon' => $child->icon,
'created_at' => $child->created_at,
'updated_at' => $child->updated_at,
// 'children' => [] // 子级节点先为空数组,稍后再填充
];
$result['list'][$i]['children'][$j]=$child_items[$j];
$j++;
}
$i++;
}
return $result;
}
public function GetFatherMenuList(){
$result=array();
$list=DB::table('menu')->where(['status'=>1,'pid'=>null])->get();
if(count($list)){
$result['status']='ok';
$result['msg']='获取成功';
$result['list']=$list;
}else{
$result['status']='no';
$result['msg']='未找到有效一级菜单';
}
return $result;
}
public function AddMenu($arr){
$result=array();
//dd($arr);
$i=DB::table('menu')->insert([
'pid' => $arr['info']['pid'],
'name' => $arr['info']['name'],
'url' => $arr['info']['url'],
'status'=>1
]);
if($i){
$result['status']='ok';
$result['msg']='插入成功';
}else{
$result['status']='no';
$result['msg']='操作失败';
}
return $result;
}
public function EditMenu($arr){
$result=array();
$U=DB::table('menu')
->where('id', $arr['info']['id'])
->update([
'pid' => $arr['info']['pid'],
'name' => $arr['info']['name'],
'url' => $arr['info']['url'],
'icon' => $arr['info']['icon']
]);
if($U){
$result['status']='ok';
$result['msg']='更新成功';
}else{
$result['status']='no';
$result['msg']='操作失败';
}
return $result;
}
}