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().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 { 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() { // 索引创建逻辑(同上一个回答) } } }