wenxiangchao
4 天以前 2e889843b4c171f2d6ad8e0d53084040703d11f6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import sqlite3
 
db_path = r'd:\TestPlatform\TapProject\WPFProject\bin\x64\Debug\Config\Database\database.db'
conn = sqlite3.connect(db_path)
c = conn.cursor()
 
# Check if ManualControl parent menu has a role_menu_rel entry
print("=== ManualControl menu entry ===")
c.execute("SELECT * FROM menu WHERE code='ManualControl'")
for r in c.fetchall():
    print(f"  {r}")
 
print("\n=== role_menu_rel for ManualControl ===")
c.execute("SELECT * FROM role_menu_rel WHERE menuCode='ManualControl'")
for r in c.fetchall():
    print(f"  {r}")
 
# Check all parent menus and their role relations
print("\n=== All parent menus (type='' or empty dllPath) ===")
c.execute("SELECT m.code, m.name, m.type, m.parentCode, rrel.roleCode FROM menu m LEFT JOIN role_menu_rel rrel ON m.code = rrel.menuCode WHERE m.type = '' OR m.type IS NULL")
for r in c.fetchall():
    print(f"  {r}")
 
# Simulate the full login query for admin user
print("\n=== Full menu tree for admin (all levels) ===")
c.execute("""
    SELECT DISTINCT m.code, m.name, m.type, m.parentCode, m.level, m.dllPath
    FROM menu AS m 
    INNER JOIN role_menu_rel AS rrel ON m.code = rrel.menuCode
    INNER JOIN role AS r ON rrel.roleCode = r.code
    INNER JOIN user_role_rel AS urel ON r.code = urel.roleCode
    AND urel.username = 'admin'
    ORDER BY m.level, m.id
""")
for r in c.fetchall():
    print(f"  {r}")
 
conn.close()