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 RoleApp : Repository { /// /// 角色列表 /// /// /// public async Task> GetListAsync(QueryParams param) { RefAsync totalnum = 0; var currentUser = OperatorProvider.Provider.GetCurrent(); using (var dbClient = ReadDbContext.GetInstance()) { var temquery = dbClient.Queryable(); if (param.queryParam != null && param.queryParam.Count > 0) { List conModels = new List(); param.queryParam.ForEach(x => { if (!string.IsNullOrEmpty(x.Value)) { conModels.Add(new ConditionalModel() { FieldName = x.Name, ConditionalType = (ConditionalType)x.Type, FieldValue = x.Value.Trim() }); } }); if (conModels.Count > 0) { temquery = temquery.Where(conModels); } } string sorts = string.Format("{0} {1}", param.sort, param.order); var query = await temquery.OrderBy(sorts) .ToPageListAsync(param.offset, param.limit, totalnum); return new PageParms { page = param.offset, Items = query, totalnum = totalnum, limit = param.limit }; } } /// /// 角色信息修改 /// /// /// /// /// public async Task SubmitFormAsync(RoleSubmitModel role) { var currentUser = OperatorProvider.Provider.GetCurrent(); using (var dbClient = ReadDbContext.GetInstance()) { if (role.Id == 0) { role.CreateTime = DateTime.Now; role.Status = 1; role.Remark = role.Remark.ToStr(); role.Id= await dbClient.Insertable(role).ExecuteReturnIdentityAsync(); } else { await dbClient.Updateable() .SetColumns(x => new YB_Role { Name = role.Name, Remark = role.Remark }) .Where(x => x.Id == role.Id).ExecuteCommandAsync(); } List roleAuthorizeEntitys = new List(); foreach (var item in role.permissionId) { var itemId = item; YB_RoleMenu roleAuthorizeEntity = new YB_RoleMenu { CreateTime = DateTime.Now, RoleId = role.Id, MenuId = itemId }; roleAuthorizeEntitys.Add(roleAuthorizeEntity); } await dbClient.Deleteable(t => t.RoleId == role.Id).ExecuteCommandAsync(); if (roleAuthorizeEntitys.Count > 0) { await dbClient.Insertable(roleAuthorizeEntitys).ExecuteCommandAsync(); } return new ResultInfo { code = ResultState.SUCCESS, message = "成功"}; } } /// /// 获取所有角色 /// /// /// public async Task> GetAllListAsync(string keyword = "") { var currentUser = OperatorProvider.Provider.GetCurrent(); using (var dbClient = ReadDbContext.GetInstance()) { var temquery = dbClient.Queryable(); if (!string.IsNullOrWhiteSpace(keyword)) { temquery = temquery.Where(e => e.Name.Contains(keyword)); } var query = await temquery.OrderBy(e => e.CreateTime, OrderByType.Desc).ToListAsync(); return query; } } /// /// 获取指定角色菜单列表 /// /// /// public async Task GetFromJsonAsync(int keyValue) { using (var dbClient = ReadDbContext.GetInstance()) { var temquery = await dbClient.Queryable().FirstAsync(x => x.Id == keyValue); if (temquery == null) { return null; } return new RoleSubmitModel { Id = temquery.Id, Remark = temquery.Remark, Code = temquery.Code, Name = temquery.Name, permissionId = await dbClient.Queryable().Where(e => e.RoleId == temquery.Id).Select(e => e.MenuId).ToListAsync() }; } } /// /// 删除角色 /// /// /// public async Task DeleteFormAsync(int keyValue) { using (var dbClient = ReadDbContext.GetInstance()) { await dbClient.Deleteable().Where(e => e.Id == keyValue).ExecuteCommandAsync(); await dbClient.Deleteable().Where(e => e.RoleId == keyValue).ExecuteCommandAsync(); return new ResultInfo { code = ResultState.SUCCESS, message = "删除成功", data = null }; } } /// /// 角色详情 /// /// /// public async Task DetailAsync(int id) { if(id <= 0) { return new RoleSubmitModel() { permissionId=new List()}; } using (var dbClient = ReadDbContext.GetInstance()) { var data = await dbClient.Queryable().FirstAsync(x => x.Id == id); return new RoleSubmitModel { Id = data.Id, Code = data.Code, Name = data.Name, Remark = data.Remark, permissionId = await dbClient.Queryable().Where(x => x.RoleId == id).Select(x => x.MenuId).ToListAsync() }; } } } }