using Nirvana.Common; using Nirvana.Common.ApiBase; using Nirvana.Data; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using YBDevice.Entity; namespace YBDevice.Service.DBServices { /// /// 菜单管理 /// public partial class MenuApp : Repository { /// /// 获取菜单列表 /// /// /// public async Task> GetMenuListAsync(int roleId) { var currentUser = OperatorProvider.Provider.GetCurrent(); var data = new List(); using (var db = ReadDbContext.GetInstance()) { var tempquery = db.Queryable( (m, ra) => new object[] { JoinType.Left,m.Id==ra.MenuId }) .Where((m, ra) => ra.RoleId == roleId && m.Status == 1) ; data =await tempquery.ToListAsync(); } return data; } /// /// 菜单列表 /// /// public async Task> GetListAsync() { using (var dbClient = ReadDbContext.GetInstance()) { var modulequery = dbClient.Queryable(); return await modulequery.OrderBy(x => x.SortCode, OrderByType.Asc).ToListAsync(); } } /// /// 删除菜单 /// /// /// /// public async Task DeleteMenuAsync(int id) { var currentUser = OperatorProvider.Provider.GetCurrent(); using (var dbClient = ReadDbContext.GetInstance()) { if (!await dbClient.Queryable().AnyAsync(x => x.Id == id)) { return new ResultInfo() { code = ResultState.FAIL, message = "此菜单未找到!" }; } await dbClient.Deleteable().Where(x => x.Id == id).ExecuteCommandAsync(); await dbClient.Deleteable().Where(x => x.ParentId == id).ExecuteCommandAsync(); return new ResultInfo() { code = ResultState.SUCCESS, message = "删除成功!" }; } } /// /// 菜单编辑 /// /// /// public async Task SubmitFormAsync(YB_Menu model) { var currentUser = OperatorProvider.Provider.GetCurrent(); using (var dbClient = ReadDbContext.GetInstance()) { if (model.Id == 0) { model.CreateTime = DateTime.Now; model.Status = 1; await dbClient.Insertable(model).ExecuteCommandAsync(); return new ResultInfo() { code = ResultState.SUCCESS, message = "添加成功!" }; } else { await dbClient.Updateable().SetColumns(x => new YB_Menu { ParentId = model.ParentId, Icon = model.Icon, SortCode = model.SortCode, Url = model.Url, Name = model.Name, Remark = model.Remark }) .Where(x => x.Id == model.Id) .ExecuteCommandAsync(); return new ResultInfo() { code = ResultState.SUCCESS, message = "修改成功!" }; } } } /// /// 详情 /// /// /// public async Task DetailAsync(int id) { using (var dbClient = ReadDbContext.GetInstance()) { return await dbClient.Queryable().FirstAsync(x => x.Id == id); } } } }