中秋节快乐

This commit is contained in:
Alone
2024-09-14 17:00:49 +08:00
parent 610dee88cd
commit dff1b038b1
4286 changed files with 807503 additions and 6 deletions
+191
View File
@@ -0,0 +1,191 @@
<?php
namespace app\model;
use think\facade\Db;
use app\model\QfShop;
class Auth extends QfShop
{
/**
* 判断用户组是否获得某节点的授权
*
* @param int 用户组ID
* @param int 节点ID
* @return void
*/
public function auth($auth_group, $auth_node)
{
$auth = $this->where([
"auth_group" => $auth_group,
"auth_node" => $auth_node
])->find();
return $auth ? true : false;
}
/**
* 根据用户组 获取管理后台菜单
*
* @param int 用户组ID
* @return void
*/
public function getAdminMenuListByAdminId($group_id)
{
if ($group_id == 1) {
//超级管理员组
$list = Node::where([
"node_pid" => 0,
"node_show" => 1,
])
->order("node_order desc,node_id asc")
->select();
for ($i = 0; $i < count($list); $i++) {
$list[$i]['subList'] = $this->getSubAdminListByPid($list[$i]['node_id'], $group_id);
for ($j = 0; $j < count($list[$i]['subList']); $j++) {
$list[$i]['subList'][$j]['subList'] = $this->getSubAdminListByPid($list[$i]['subList'][$j]['node_id'], $group_id);
}
}
return $list;
} else {
//其他组
$list = Node::where([
"node_pid" => 0,
"node_show" => 1,
])
->order("node_order desc,node_id asc")
->select();
for ($i = 0; $i < count($list); $i++) {
$list[$i]['subList'] = $this->getSubAdminListByPid($list[$i]['node_id'], 1);
for ($j = 0; $j < count($list[$i]['subList']); $j++) {
$list[$i]['subList'][$j]['subList'] = $this->getSubAdminListByPid($list[$i]['subList'][$j]['node_id'], 1);
}
}
if($list){
$list = $list->toArray();
}
$list2 = Node::alias("node")
->view('node', '*')
->view('auth', '*', 'node.node_id=auth.auth_node', 'left')
->where([
"node_module" => "qfadmin",
"node_show" => 1,
"auth_group" => $group_id
])
->order("node_order desc,node_id asc")
->select()->toArray();
foreach ($list2 as $k => $v) {
//一级
foreach ($list as $key => $value) {
if($v['node_id'] == $value['node_id']){
$list[$key]['select'] = 1;
}
//2级
foreach ($value['subList'] as $key2 => $value2) {
if($v['node_id'] == $value2['node_id']){
$list[$key]['subList'][$key2]['select'] = 1;
}
//3级
foreach ($value2['subList'] as $key3 => $value3) {
if($v['node_id'] == $value3['node_id']){
$list[$key]['subList'][$key2]['subList'][$key3]['select'] = 1;
}
}
}
}
}
foreach ($list as $key => $value) {
//一级
if(empty($value['select'])){
if(!empty($value['subList'])){
foreach ($value['subList'] as $key2 => $value2) {
//2级
if(empty($value2['select'])){
if(!empty($value2['subList'])){
foreach ($value2['subList'] as $key3 => $value3) {
//3级
if(empty($value3['select'])){
if(empty($value3['subList'])){
unset($list[$key]['subList'][$key2]['subList'][$key3]);
if(empty($list[$key]['subList'][$key2]['subList'])){
unset($list[$key]['subList'][$key2]);
}
}
}
}
}else{
unset($list[$key]['subList'][$key2]);
if(empty($list[$key]['subList'])){
unset($list[$key]);
}
}
}
}
}else{
unset($list[$key]);
}
}
}
$list = array_values($list);
foreach ($list as $key => $value) {
if(!empty($value['subList'])){
$list[$key]['subList'] = array_values($list[$key]['subList']);
foreach ($value['subList'] as $key2 => $value2) {
if(!empty($value2['subList'])){
try {
$list[$key]['subList'][$key2]['subList'] = array_values($list[$key]['subList'][$key2]['subList']);
} catch (\Throwable $th) {
//throw $th;
}
}
}
}
}
return $list;
}
}
/**
* 根据节点ID 获取用户组的子菜单
*
* @param int 节点ID
* @param int 用户组ID
* @return void
*/
public function getSubAdminListByPid($node_id, $group_id = 1)
{
if ($group_id == 1) {
//超级管理员组
return Node::where([
"node_pid" => $node_id,
"node_show" => 1
])
->order("node_order desc,node_id asc")
->select();
} else {
//其他组
return Node::alias("node")
->view('node', '*')
->view('auth', '*', 'node.node_id=auth.auth_node', 'left')
->where([
"node_pid" => $node_id,
"node_show" => 1,
"auth_group" => $group_id
])
->order("node_order desc,node_id asc")
->select();
}
}
/**
* 删除授权记录
*
* @return void
*/
public function cleanAuth()
{
//清空auth表
Db::execute("truncate table " . config('database.connections.mysql.prefix') . "auth");
return true;
}
}