初始化
This commit is contained in:
48
init_menu.py
Normal file
48
init_menu.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""为 test 系统初始化菜单和角色"""
|
||||
import pymysql
|
||||
conn = pymysql.connect(host='db1.prod.zgitm.com', port=3306, user='mokeegateway', password='mokee.',
|
||||
database='mokeegateway', charset='utf8mb4')
|
||||
cur = conn.cursor()
|
||||
sc = 'test'
|
||||
|
||||
# 1. 顶级菜单
|
||||
cur.execute(f"INSERT INTO sys_menu (system_id,parent_id,menu_name,menu_path,component,icon,menu_type,sort_order,status) SELECT s.id,0,'系统管理','/system','Layout','Setting',1,1,1 FROM sys_system s WHERE s.system_code='{sc}'")
|
||||
cur.execute(f"INSERT INTO sys_menu (system_id,parent_id,menu_name,menu_path,component,icon,menu_type,sort_order,status) SELECT s.id,0,'业务管理','/biz','Layout','Document',1,2,1 FROM sys_system s WHERE s.system_code='{sc}'")
|
||||
conn.commit()
|
||||
|
||||
# 获取父ID
|
||||
cur.execute(f"SELECT id FROM sys_menu WHERE menu_name='系统管理' AND system_id=(SELECT id FROM sys_system WHERE system_code='{sc}')")
|
||||
sys_pid = cur.fetchone()[0]
|
||||
cur.execute(f"SELECT id FROM sys_menu WHERE menu_name='业务管理' AND system_id=(SELECT id FROM sys_system WHERE system_code='{sc}')")
|
||||
biz_pid = cur.fetchone()[0]
|
||||
|
||||
# 子菜单
|
||||
subs = [
|
||||
('用户管理', '/system/user', 'system/user/index', 'User', 2, 1, sys_pid),
|
||||
('角色管理', '/system/role', 'system/role/index', 'Avatar', 2, 2, sys_pid),
|
||||
('订单管理', '/biz/order', 'biz/order/index', 'Tickets', 2, 1, biz_pid),
|
||||
('报表查询', '/biz/report', 'biz/report/index', 'TrendCharts', 2, 2, biz_pid),
|
||||
]
|
||||
for nm, path, comp, icon, mtype, sort, pid in subs:
|
||||
cur.execute(f"INSERT INTO sys_menu (system_id,parent_id,menu_name,menu_path,component,icon,menu_type,sort_order,status) SELECT s.id,{pid},'{nm}','{path}','{comp}','{icon}',{mtype},{sort},1 FROM sys_system s WHERE s.system_code='{sc}'")
|
||||
conn.commit()
|
||||
|
||||
# 2. 角色
|
||||
cur.execute(f"INSERT IGNORE INTO sys_role (system_id,role_name,role_code,description,status) SELECT s.id,'管理员','admin','系统管理员',1 FROM sys_system s WHERE s.system_code='{sc}'")
|
||||
cur.execute(f"INSERT IGNORE INTO sys_role (system_id,role_name,role_code,description,status) SELECT s.id,'普通用户','user','普通用户',1 FROM sys_system s WHERE s.system_code='{sc}'")
|
||||
conn.commit()
|
||||
|
||||
# 3. 角色菜单绑定
|
||||
cur.execute(f"INSERT INTO sys_role_menu (role_id,menu_id) SELECT r.id,m.id FROM sys_role r,sys_menu m,sys_system s WHERE r.role_code='admin' AND r.system_id=s.id AND m.system_id=s.id AND s.system_code='{sc}'")
|
||||
conn.commit()
|
||||
|
||||
print("=== Menus ===")
|
||||
cur.execute(f"SELECT menu_name,menu_path,menu_type FROM sys_menu WHERE system_id=(SELECT id FROM sys_system WHERE system_code='{sc}') ORDER BY sort_order,id")
|
||||
for r in cur.fetchall(): print(f" {r[0]:10s} {r[1]:20s} type={r[2]}")
|
||||
print("=== Roles ===")
|
||||
cur.execute(f"SELECT role_name,role_code FROM sys_role WHERE system_id=(SELECT id FROM sys_system WHERE system_code='{sc}')")
|
||||
for r in cur.fetchall(): print(f" {r[0]} ({r[1]})")
|
||||
cur.execute(f"SELECT COUNT(*) FROM sys_role_menu rm JOIN sys_role r ON rm.role_id=r.id WHERE r.system_id=(SELECT id FROM sys_system WHERE system_code='{sc}')")
|
||||
print(f"=== Role-Menu bindings: {cur.fetchone()[0]} ===")
|
||||
cur.close(); conn.close()
|
||||
print("Done")
|
||||
Reference in New Issue
Block a user