Files
qhmes/yy-admin-master/scripts/MenuFixTemp/Program.cs

38 lines
1.7 KiB
C#

using Microsoft.Data.Sqlite;
var dbPath = args[0];
using var conn = new SqliteConnection($"Data Source={dbPath}");
conn.Open();
using var tx = conn.BeginTransaction();
void Exec(string sql) {
using var cmd = conn.CreateCommand();
cmd.Transaction = tx;
cmd.CommandText = sql;
Console.WriteLine($"{sql.Split('\n')[0].Trim()} => {cmd.ExecuteNonQuery()}");
}
Exec(@"INSERT INTO sys_menu (id, pid, type, name, path, component, title, icon, is_iframe, is_hide, is_keep_alive, is_affix, order_no, status, create_time)
SELECT 1300150011101, 1300150000101, 2, 'mesXslMixerMaterialTareStrategy', '/xslmes/mesXslMixerMaterialTareStrategy', 'MixerMaterialTareStrategyListView', '密炼物料皮重策略', '', 0, 0, 1, 0, 110, 1, datetime('now')
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE id = 1300150011101 OR name = 'mesXslMixerMaterialTareStrategy');");
Exec(@"INSERT INTO sys_tenant_menu (id, tenant_id, menu_id)
SELECT 1300150011101, 1300000000001, 1300150011101
WHERE NOT EXISTS (SELECT 1 FROM sys_tenant_menu WHERE tenant_id = 1300000000001 AND menu_id = 1300150011101);");
Exec(@"INSERT INTO sys_role_menu (id, role_id, menu_id)
SELECT (SELECT IFNULL(MAX(id),0)+1 FROM sys_role_menu),
(SELECT id FROM sys_role ORDER BY id LIMIT 1),
1300150011101
WHERE NOT EXISTS (
SELECT 1 FROM sys_role_menu rm
WHERE rm.role_id = (SELECT id FROM sys_role ORDER BY id LIMIT 1) AND rm.menu_id = 1300150011101
);");
tx.Commit();
using var q = conn.CreateCommand();
q.CommandText = "SELECT id, pid, title, name, status FROM sys_menu WHERE name='mesXslMixerMaterialTareStrategy';";
using var r = q.ExecuteReader();
while (r.Read()) Console.WriteLine($"OK: id={r.GetInt64(0)} pid={r.GetInt64(1)} title={r.GetString(2)} status={r.GetInt32(4)}");