using System.Diagnostics; using SqlSugar; using AutoMapper; using DMS.Infrastructure.Entities; using DMS.Core.Enums; using DMS.Core.Helper; using DMS.Core.Models; using DMS.Infrastructure.Data; using DMS.Infrastructure.Interfaces; namespace DMS.Infrastructure.Repositories; public class MenuRepository : BaseRepository { public MenuRepository(SqlSugarDbContext dbContext) : base(dbContext) { } public override async Task DeleteAsync(DbMenu menu) { return await base.DeleteAsync(menu); } public async Task> GetMenuTreesAsync() { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); var dbMenuTree = await Db.Queryable() .ToTreeAsync(dm => dm.Items, dm => dm.ParentId, 0); stopwatch.Stop(); NlogHelper.Info($"获取菜单树耗时:{stopwatch.ElapsedMilliseconds}ms"); return dbMenuTree; } public override async Task AddAsync(DbMenu menu) { return await base.AddAsync(menu); } /// /// 添加菜单,支持事务 /// /// /// /// /// /// 添加设备菜单 /// /// /// /// /// /// /// 编辑菜单 /// /// /// public override async Task UpdateAsync(DbMenu menu) { return await base.UpdateAsync(menu); } /// /// 编辑菜单,支持事务 /// /// /// public async Task GetMenuByDataIdAsync(int dataId, MenuType menuType) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); var result = await Db.Queryable() .FirstAsync(m => m.DataId == dataId && m.Type == menuType); stopwatch.Stop(); NlogHelper.Info($"根据DataId '{dataId}' 和 MenuType '{menuType}' 获取菜单耗时:{stopwatch.ElapsedMilliseconds}ms"); return result; } public async Task GetMainMenuByNameAsync(string name) { var dbMenu= await Db.Queryable().FirstAsync(m => m.Name == name && m.Type == MenuType.MainMenu); return dbMenu; } }