革博士程序V1仓库
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123 рядки
7.0 KiB

  1. using Models;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace Service
  9. {
  10. public class InitDB
  11. {
  12. public static string ConnectionString;
  13. public static void initDB(string dbConStr,bool dropTable=false)
  14. {
  15. ConnectionConfig connectionConfig = new ConnectionConfig() {
  16. ConnectionString = dbConStr,
  17. DbType = DbType.MySql,
  18. IsAutoCloseConnection = true
  19. };
  20. connectionConfig.ConnectionString = dbConStr;
  21. //创建数据库对象
  22. using (SqlSugarClient db = new SqlSugarClient(connectionConfig)) {
  23. db.Aop.OnLogExecuting = (sql, pars) =>
  24. {
  25. Console.WriteLine(sql);//输出sql,查看执行sql 性能无影响
  26. };
  27. //create db
  28. db.DbMaintenance.CreateDatabase();
  29. //===建表
  30. if (dropTable && db.DbMaintenance.IsAnyTable("Right", false)) db.DbMaintenance.DropTable("Right");
  31. if (dropTable && db.DbMaintenance.IsAnyTable("Role", false)) db.DbMaintenance.DropTable("Role");
  32. if (dropTable && db.DbMaintenance.IsAnyTable("RoleRightMap", false)) db.DbMaintenance.DropTable("RoleRightMap");
  33. if (dropTable && db.DbMaintenance.IsAnyTable("User", false)) db.DbMaintenance.DropTable("Users");
  34. if (dropTable && db.DbMaintenance.IsAnyTable("Classes", false)) db.DbMaintenance.DropTable("Classes");
  35. if (dropTable && db.DbMaintenance.IsAnyTable("Product", false)) db.DbMaintenance.DropTable("Product");
  36. if (dropTable && db.DbMaintenance.IsAnyTable("QualifiedLimit", false)) db.DbMaintenance.DropTable("QualifiedLimit");
  37. if (dropTable && db.DbMaintenance.IsAnyTable("GradeLimit", false)) db.DbMaintenance.DropTable("GradeLimit");
  38. if (dropTable && db.DbMaintenance.IsAnyTable("Records", false)) db.DbMaintenance.DropTable("Records");
  39. if (dropTable && db.DbMaintenance.IsAnyTable("DefectInfo", false)) db.DbMaintenance.DropTable("DefectInfo");
  40. //===添加与更新表
  41. db.CodeFirst.InitTables<Models.Right>();
  42. db.CodeFirst.InitTables<Models.Role>();
  43. db.CodeFirst.InitTables<Models.RoleRightMap>();
  44. db.CodeFirst.InitTables<Models.User>();
  45. db.CodeFirst.InitTables<Models.Classes>();
  46. db.CodeFirst.InitTables<Models.Product>();
  47. db.CodeFirst.InitTables<Models.QualifiedLimit>();
  48. db.CodeFirst.InitTables<Models.GradeLimit>();
  49. db.CodeFirst.InitTables<Models.Records>();
  50. db.CodeFirst.InitTables<Models.DefectInfo>();
  51. //更改表数据
  52. try
  53. {
  54. db.Ado.ExecuteCommand("drop index index_Records_ProductId_SerialNum ON table_name");//删除索引
  55. }
  56. catch { }
  57. //===初始数据 注意*********会清空这些表数据
  58. //清空表数据
  59. //db.DbMaintenance.TruncateTable<User>();
  60. //db.DbMaintenance.TruncateTable<Role>();
  61. if (db.Queryable<Models.User>().Count() < 1 && db.Queryable<Models.Role>().Count() < 1)
  62. {
  63. db.InsertNav(new Models.User()
  64. {
  65. Code = "admin",
  66. Name = "管理员",
  67. Password = GetMD5(""),
  68. RoleInfo = new Models.Role() { Code = "admin", Name = "管理员", ModifyUserCode = "admin", CreateUserCode = "admin" },//多表添加
  69. CreateUserCode = "admin",
  70. ModifyUserCode = "admin",
  71. }).Include(x => x.RoleInfo)
  72. .ExecuteCommand();
  73. db.Insertable(new Models.Role()
  74. {
  75. Code = "user",
  76. Name = "操作员",
  77. CreateUserCode = "admin",
  78. ModifyUserCode = "admin",
  79. }).ExecuteCommand();
  80. }
  81. //===权限
  82. //db.DbMaintenance.TruncateTable<RoleRightMap>();
  83. //db.DbMaintenance.TruncateTable<Right>();
  84. //if (db.Queryable<Models.Right>().Where(m => m.Code == "Step").Count() < 1) db.Insertable(new Models.Right("Step", "流程管理")).ExecuteCommand();
  85. //if (db.Queryable<Models.Right>().Where(m => m.Code == "Product").Count() < 1) db.Insertable(new Models.Right("Product", "产品管理")).ExecuteCommand();
  86. //if (db.Queryable<Models.Right>().Where(m => m.Code == "Debug").Count() < 1) db.Insertable(new Models.Right("Debug", "设备调试")).ExecuteCommand();
  87. //if (db.Queryable<Models.Right>().Where(m => m.Code == "Order").Count() < 1) db.Insertable(new Models.Right("Order", "报表查询")).ExecuteCommand();
  88. //if (db.Queryable<Models.Right>().Where(m => m.Code == "Statistics").Count() < 1) db.Insertable(new Models.Right("Statistics", "统计分析")).ExecuteCommand();
  89. //if (db.Queryable<Models.Right>().Where(m => m.Code == "Role").Count() < 1) db.Insertable(new Models.Right("Role", "角色管理")).ExecuteCommand();
  90. //if (db.Queryable<Models.Right>().Where(m => m.Code == "User").Count() < 1) db.Insertable(new Models.Right("User", "用户管理")).ExecuteCommand();
  91. //if (db.Queryable<Models.Right>().Where(m => m.Code == "Right").Count() < 1) db.Insertable(new Models.Right("Right", "权限管理")).ExecuteCommand();
  92. //if (db.Queryable<Models.Right>().Where(m => m.Code == "HeightBase").Count() < 1) db.Insertable(new Models.Right("HeightBase", "高度Base校正")).ExecuteCommand();
  93. //if (db.Queryable<Models.Right>().Where(m => m.Code == "SysSetting").Count() < 1) db.Insertable(new Models.Right("SysSetting", "系统设置")).ExecuteCommand();
  94. //if (db.Queryable<Models.Right>().Where(m => m.Code == "CmdSetting").Count() < 1) db.Insertable(new Models.Right("CmdSetting", "指令设置")).ExecuteCommand();
  95. //if (db.Queryable<Models.Right>().Where(m => m.Code == "PTSetting").Count() < 1) db.Insertable(new Models.Right("PTSetting", "点位设置")).ExecuteCommand();
  96. }
  97. }
  98. private static string GetMD5(string str)
  99. {
  100. byte[] data = Encoding.UTF8.GetBytes(str);
  101. data = new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(data);
  102. string ret = "";
  103. for (int i = 0; i < data.Length; i++)
  104. {
  105. ret += data[i].ToString("x1").PadLeft(2, '0');//ToString("x1"):转换为16进制
  106. }
  107. return ret.ToUpper();
  108. }
  109. }
  110. }