| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using TeamAAS_VP.Interfaces;
- using TeamAAS_VP.Models;
- namespace TeamAAS_VP.Data
- {
- // 数据库初始化实现
- public class DatabaseInitializer : IDatabaseInitializer
- {
- private readonly ISqlSugarClient _db;
- public DatabaseInitializer(ISqlSugarClient db)
- {
- _db = db;
- }
- public void InitializeDatabase()
- {
- try
- {
- // 创建数据库(如果不存在)
- _db.DbMaintenance.CreateDatabase();
- // 创建表
- _db.CodeFirst.InitTables(typeof(User), typeof(ProductionRecord), typeof(UserLoginRecord), typeof(AlarmRecord));
- // 创建索引
- CreateIndexes();
- // 如果用户表为空,插入三个基础用户
- var userCount = _db.Queryable<User>().Count();
- if (userCount == 0)
- {
- var op = new User { UserName = "操作员", UserPassword = "123", userPart = Enums.UserPart.Operator, CreateTime = DateTime.Now, IsRemember = false };
- var eng = new User { UserName = "工程师", UserPassword = "123", userPart = Enums.UserPart.Engineer, CreateTime = DateTime.Now, IsRemember = false };
- var admin = new User { UserName = "管理员", UserPassword = "team123456", userPart = Enums.UserPart.Administrator, CreateTime = DateTime.Now, IsRemember = false };
- _db.Insertable(new List<User> { op, eng, admin }).ExecuteCommand();
- }
- }
- catch (Exception ex)
- {
- // 记录日志
- throw new Exception($"数据库初始化失败: {ex.Message}", ex);
- }
- }
- public bool DatabaseExists()
- {
- return _db.DbMaintenance.GetDataBaseList().Contains("AlignerDB");
- }
- private void CreateIndexes()
- {
- // 索引创建逻辑(同上一个回答)
- }
- }
- }
|