提交所有代码到 qiaoxinjiu 分支
This commit is contained in:
75
generate_automation_menus.py
Normal file
75
generate_automation_menus.py
Normal file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python
|
||||
# encoding: UTF-8
|
||||
|
||||
import psycopg2
|
||||
|
||||
def generate_menu_sql():
|
||||
try:
|
||||
conn = psycopg2.connect(
|
||||
host="39.170.26.156",
|
||||
port=8366,
|
||||
dbname="test",
|
||||
user="postgres",
|
||||
password="difyai123456"
|
||||
)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 查询自动化模块的权限
|
||||
cursor.execute("""
|
||||
SELECT code, name, action
|
||||
FROM permission
|
||||
WHERE module = 'automation' AND is_delete = 0
|
||||
ORDER BY id;
|
||||
""")
|
||||
|
||||
permissions = cursor.fetchall()
|
||||
|
||||
print("自动化模块权限列表:")
|
||||
print("-" * 60)
|
||||
print(f"{'权限代码':<30} {'权限名称':<20} {'action'}")
|
||||
print("-" * 60)
|
||||
for p in permissions:
|
||||
print(f"{p[0]:<30} {p[1]:<20} {p[2]}")
|
||||
|
||||
# 查询已存在的menu
|
||||
cursor.execute("SELECT code FROM menu WHERE is_delete = 0")
|
||||
existing_menus = {row[0] for row in cursor.fetchall()}
|
||||
|
||||
conn.close()
|
||||
|
||||
# 生成SQL
|
||||
sql_lines = []
|
||||
sql_lines.append("-- ==============================================")
|
||||
sql_lines.append("-- 自动化执行模块 - 权限对应的按钮菜单")
|
||||
sql_lines.append("-- ==============================================")
|
||||
sql_lines.append("")
|
||||
|
||||
sort_order = 1
|
||||
for code, name, action in permissions:
|
||||
menu_code = f"automation_{action}"
|
||||
if menu_code in existing_menus:
|
||||
print(f"跳过已存在的菜单: {menu_code}")
|
||||
continue
|
||||
|
||||
sql_lines.append(f"-- {name} 按钮")
|
||||
sql_lines.append(f"INSERT INTO menu (name, code, type, path, component, icon, permission_code, parent_id, sort, visible, status, is_delete)")
|
||||
sql_lines.append(f"SELECT '{name}', '{menu_code}', 3, '', '', '', '{code}',")
|
||||
sql_lines.append(f" (SELECT id FROM menu WHERE code = 'automation_list'), {sort_order}, 1, 1, 0")
|
||||
sql_lines.append(f"WHERE NOT EXISTS (SELECT 1 FROM menu WHERE code = '{menu_code}');")
|
||||
sql_lines.append("")
|
||||
sort_order += 1
|
||||
|
||||
sql_lines.append("COMMIT;")
|
||||
|
||||
# 写入文件
|
||||
with open("automation_menus.sql", "w", encoding="utf-8") as f:
|
||||
f.write("\n".join(sql_lines))
|
||||
|
||||
print(f"\n已生成 SQL 文件: automation_menus.sql")
|
||||
print(f"共生成 {sort_order - 1} 条菜单记录")
|
||||
|
||||
except Exception as e:
|
||||
print("Error: " + str(e))
|
||||
|
||||
if __name__ == "__main__":
|
||||
generate_menu_sql()
|
||||
Reference in New Issue
Block a user