From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 check_parent.py |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/check_parent.py b/check_parent.py
new file mode 100644
index 0000000..18acb88
--- /dev/null
+++ b/check_parent.py
@@ -0,0 +1,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()

--
Gitblit v1.9.1