geboshi_V1/LeatherProject/Service/InitDB.cs

123 lines
7.0 KiB
C#
Raw Normal View History

2024-03-07 14:03:22 +08:00
using Models;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Service
{
public class InitDB
{
public static string ConnectionString;
public static void initDB(string dbConStr,bool dropTable=false)
{
ConnectionConfig connectionConfig = new ConnectionConfig() {
ConnectionString = dbConStr,
DbType = DbType.MySql,
IsAutoCloseConnection = true
};
connectionConfig.ConnectionString = dbConStr;
//创建数据库对象
using (SqlSugarClient db = new SqlSugarClient(connectionConfig)) {
db.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(sql);//输出sql,查看执行sql 性能无影响
};
//create db
db.DbMaintenance.CreateDatabase();
//===建表
if (dropTable && db.DbMaintenance.IsAnyTable("Right", false)) db.DbMaintenance.DropTable("Right");
if (dropTable && db.DbMaintenance.IsAnyTable("Role", false)) db.DbMaintenance.DropTable("Role");
if (dropTable && db.DbMaintenance.IsAnyTable("RoleRightMap", false)) db.DbMaintenance.DropTable("RoleRightMap");
if (dropTable && db.DbMaintenance.IsAnyTable("User", false)) db.DbMaintenance.DropTable("Users");
if (dropTable && db.DbMaintenance.IsAnyTable("Classes", false)) db.DbMaintenance.DropTable("Classes");
if (dropTable && db.DbMaintenance.IsAnyTable("Product", false)) db.DbMaintenance.DropTable("Product");
if (dropTable && db.DbMaintenance.IsAnyTable("QualifiedLimit", false)) db.DbMaintenance.DropTable("QualifiedLimit");
if (dropTable && db.DbMaintenance.IsAnyTable("GradeLimit", false)) db.DbMaintenance.DropTable("GradeLimit");
if (dropTable && db.DbMaintenance.IsAnyTable("Records", false)) db.DbMaintenance.DropTable("Records");
if (dropTable && db.DbMaintenance.IsAnyTable("DefectInfo", false)) db.DbMaintenance.DropTable("DefectInfo");
//===添加与更新表
db.CodeFirst.InitTables<Models.Right>();
db.CodeFirst.InitTables<Models.Role>();
db.CodeFirst.InitTables<Models.RoleRightMap>();
db.CodeFirst.InitTables<Models.User>();
db.CodeFirst.InitTables<Models.Classes>();
db.CodeFirst.InitTables<Models.Product>();
db.CodeFirst.InitTables<Models.QualifiedLimit>();
db.CodeFirst.InitTables<Models.GradeLimit>();
db.CodeFirst.InitTables<Models.Records>();
db.CodeFirst.InitTables<Models.DefectInfo>();
//更改表数据
try
{
db.Ado.ExecuteCommand("drop index index_Records_ProductId_SerialNum ON table_name");//删除索引
}
catch { }
//===初始数据 注意*********会清空这些表数据
//清空表数据
//db.DbMaintenance.TruncateTable<User>();
//db.DbMaintenance.TruncateTable<Role>();
if (db.Queryable<Models.User>().Count() < 1 && db.Queryable<Models.Role>().Count() < 1)
{
db.InsertNav(new Models.User()
{
Code = "admin",
Name = "管理员",
Password = GetMD5(""),
RoleInfo = new Models.Role() { Code = "admin", Name = "管理员", ModifyUserCode = "admin", CreateUserCode = "admin" },//多表添加
CreateUserCode = "admin",
ModifyUserCode = "admin",
}).Include(x => x.RoleInfo)
.ExecuteCommand();
db.Insertable(new Models.Role()
{
Code = "user",
Name = "操作员",
CreateUserCode = "admin",
ModifyUserCode = "admin",
}).ExecuteCommand();
}
//===权限
//db.DbMaintenance.TruncateTable<RoleRightMap>();
//db.DbMaintenance.TruncateTable<Right>();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "Step").Count() < 1) db.Insertable(new Models.Right("Step", "流程管理")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "Product").Count() < 1) db.Insertable(new Models.Right("Product", "产品管理")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "Debug").Count() < 1) db.Insertable(new Models.Right("Debug", "设备调试")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "Order").Count() < 1) db.Insertable(new Models.Right("Order", "报表查询")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "Statistics").Count() < 1) db.Insertable(new Models.Right("Statistics", "统计分析")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "Role").Count() < 1) db.Insertable(new Models.Right("Role", "角色管理")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "User").Count() < 1) db.Insertable(new Models.Right("User", "用户管理")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "Right").Count() < 1) db.Insertable(new Models.Right("Right", "权限管理")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "HeightBase").Count() < 1) db.Insertable(new Models.Right("HeightBase", "高度Base校正")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "SysSetting").Count() < 1) db.Insertable(new Models.Right("SysSetting", "系统设置")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "CmdSetting").Count() < 1) db.Insertable(new Models.Right("CmdSetting", "指令设置")).ExecuteCommand();
//if (db.Queryable<Models.Right>().Where(m => m.Code == "PTSetting").Count() < 1) db.Insertable(new Models.Right("PTSetting", "点位设置")).ExecuteCommand();
}
}
private static string GetMD5(string str)
{
byte[] data = Encoding.UTF8.GetBytes(str);
data = new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(data);
string ret = "";
for (int i = 0; i < data.Length; i++)
{
ret += data[i].ToString("x1").PadLeft(2, '0');//ToString("x1"):转换为16进制
}
return ret.ToUpper();
}
}
}