public async Task <MessageModel <PageModel <Modules> > > Get(int page = 1, string key = "") { if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { key = ""; } int intPageSize = 50; Expression <Func <Modules, bool> > whereExpression = a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)); PageModel <Modules> data = new PageModel <Modules>(); if (page == -1) { var modules = await _moduleServices.Query(whereExpression, " Id desc "); data.data = modules; } else { data = await _moduleServices.QueryPage(whereExpression, page, intPageSize, " Id desc "); } return(Success(data, "获取成功")); }
public async Task <MessageModel <PageModel <PermissionDto> > > GetPageList(int page, int size, string conditions, string sorts) { var data = await _permissionServices.GetPageList(page, size, conditions, sorts); var moduleList = await _moduleServices.Query(d => d.IsDeleted == false); var permissionsList = await _permissionServices.Query(d => d.IsDeleted == false); foreach (var item in data.data) { item.Link = moduleList.FirstOrDefault(t => t.Id == item.ParentId)?.LinkUrl; item.hasChildren = permissionsList.Where(t => t.ParentId == item.Id).Any(); } return(new MessageModel <PageModel <PermissionDto> >() { msg = "获取成功", success = true, data = data }); }
public async Task<ApiResponseModel<List<Permission>>> GetTreeTable(int f = 0, string key = "") { var apiList = await _moduleServices.Query(d => d.IsDeleted == false); //所有菜单 var permissionsList = await _permissionServices.Query(d => d.IsDeleted == false); //查找所有父级菜单 var permissions = permissionsList.Where(a => a.Pid == f).OrderBy(a => a.OrderSort).ToList(); foreach (var item in permissions) { item.MName = apiList.FirstOrDefault(d => d.Id == item.Mid)?.LinkUrl; item.hasChildren = permissionsList.Where(d => d.Pid == item.Id).Any(); } return ApiResponse.Success(permissions); }
public async Task <MessageModel <string> > SaveData2TsvAsync() { var data = new MessageModel <string>() { success = true, msg = "" }; if (_env.IsDevelopment()) { JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat }; // 取出数据,序列化,自己可以处理判空 var rolesJson = JsonConvert.SerializeObject(await _roleServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings); FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Role_New.tsv"), rolesJson, Encoding.UTF8); var permissionsJson = JsonConvert.SerializeObject(await _permissionServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings); FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Permission_New.tsv"), permissionsJson, Encoding.UTF8); var modulesJson = JsonConvert.SerializeObject(await _moduleServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings); FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Modules_New.tsv"), modulesJson, Encoding.UTF8); var rmpsJson = JsonConvert.SerializeObject(await _roleModulePermissionServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings); FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "RoleModulePermission_New.tsv"), rmpsJson, Encoding.UTF8); data.success = true; data.msg = "生成成功!"; } else { data.success = false; data.msg = "当前不处于开发模式,代码生成不可用!"; } return(data); }
public async Task <MessageModel <PageModel <Module> > > Get(int page = 1, string key = "") { var data = new MessageModel <PageModel <Module> >(); int intTotalCount = 50; int totalCount = 0; int pageCount = 1; List <Module> modules = new List <Module>(); modules = await _moduleServices.Query(a => a.IsDeleted != true); if (!string.IsNullOrEmpty(key)) { modules = modules.Where(t => (t.Name != null && t.Name.Contains(key))).ToList(); } //筛选后的数据总数 totalCount = modules.Count; //筛选后的总页数 pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intTotalCount.ObjToDecimal())).ObjToInt(); modules = modules.OrderByDescending(d => d.Id).Skip((page - 1) * intTotalCount).Take(intTotalCount).ToList(); return(new MessageModel <PageModel <Module> >() { msg = "获取成功", success = totalCount >= 0, response = new PageModel <Module>() { page = page, pageCount = pageCount, dataCount = totalCount, data = modules, } }); }
public async Task <MessageModel <PageModel <Permission> > > Get(int page = 1, string key = "") { PageModel <Permission> permissions = new PageModel <Permission>(); int intPageSize = 50; if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { key = ""; } #region 弃 //var permissions = await _permissionServices.Query(a => a.IsDeleted != true); //if (!string.IsNullOrEmpty(key)) //{ // permissions = permissions.Where(t => (t.Name != null && t.Name.Contains(key))).ToList(); //} ////筛选后的数据总数 //totalCount = permissions.Count; ////筛选后的总页数 //pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intTotalCount.ObjToDecimal())).ObjToInt(); //permissions = permissions.OrderByDescending(d => d.Id).Skip((page - 1) * intTotalCount).Take(intTotalCount).ToList(); #endregion permissions = await _permissionServices.QueryPage(a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)), page, intPageSize, " Id desc "); #region 单独处理 var apis = await _moduleServices.Query(d => d.IsDeleted == false); var permissionsView = permissions.data; foreach (var item in permissionsView) { List <int> pidarr = new List <int>(); pidarr.Add(item.Pid); if (item.Pid > 0) { pidarr.Add(0); } var parent = permissionsView.FirstOrDefault(d => d.Id == item.Pid); while (parent != null) { pidarr.Add(parent.Id); parent = permissionsView.FirstOrDefault(d => d.Id == parent.Pid); } item.PidArr = pidarr.OrderBy(d => d).Distinct().ToList(); foreach (var pid in item.PidArr) { var per = permissionsView.FirstOrDefault(d => d.Id == pid); item.PnameArr.Add((per != null ? per.Name : "根节点") + "/"); //var par = Permissions.Where(d => d.Pid == item.Id ).ToList(); //item.PCodeArr.Add((per != null ? $"/{per.Code}/{item.Code}" : "")); //if (par.Count == 0 && item.Pid == 0) //{ // item.PCodeArr.Add($"/{item.Code}"); //} } item.MName = apis.FirstOrDefault(d => d.Id == item.Mid)?.LinkUrl; } permissions.data = permissionsView; #endregion return(new MessageModel <PageModel <Permission> >() { msg = "获取成功", success = permissions.dataCount >= 0, response = permissions }); }
public async Task <MessageModel <PageModel <Permission> > > Get(int page = 1, string key = "") { var data = new MessageModel <PageModel <Permission> >(); int intTotalCount = 50; int TotalCount = 0; int PageCount = 1; List <Permission> Permissions = new List <Permission>(); Permissions = await _PermissionServices.Query(a => a.IsDeleted != true); if (!string.IsNullOrEmpty(key)) { Permissions = Permissions.Where(t => (t.Name != null && t.Name.Contains(key))).ToList(); } //筛选后的数据总数 TotalCount = Permissions.Count; //筛选后的总页数 PageCount = (Math.Ceiling(TotalCount.ObjToDecimal() / intTotalCount.ObjToDecimal())).ObjToInt(); Permissions = Permissions.OrderByDescending(d => d.Id).Skip((page - 1) * intTotalCount).Take(intTotalCount).ToList(); var apis = await _ModuleServices.Query(d => d.IsDeleted == false); foreach (var item in Permissions) { List <int> pidarr = new List <int>(); pidarr.Add(item.Pid); if (item.Pid > 0) { pidarr.Add(0); } var parent = Permissions.Where(d => d.Id == item.Pid).FirstOrDefault(); while (parent != null) { pidarr.Add(parent.Id); parent = Permissions.Where(d => d.Id == parent.Pid).FirstOrDefault(); } item.PidArr = pidarr.OrderBy(d => d).Distinct().ToList(); foreach (var pid in item.PidArr) { var per = Permissions.Where(d => d.Id == pid).FirstOrDefault(); item.PnameArr.Add((per != null ? per.Name : "根节点") + "/"); //var par = Permissions.Where(d => d.Pid == item.Id ).ToList(); //item.PCodeArr.Add((per != null ? $"/{per.Code}/{item.Code}" : "")); //if (par.Count == 0 && item.Pid == 0) //{ // item.PCodeArr.Add($"/{item.Code}"); //} } item.MName = apis.Where(d => d.Id == item.Mid).FirstOrDefault()?.LinkUrl; } return(new MessageModel <PageModel <Permission> >() { msg = "获取成功", success = TotalCount >= 0, response = new PageModel <Permission>() { page = page, pageCount = PageCount, dataCount = TotalCount, data = Permissions, } }); }
public async Task <MessageModel <string> > DataMigrateFromOld2New() { var data = new MessageModel <string>() { success = true, msg = "" }; var filterPermissionId = 122; if (_env.IsDevelopment()) { try { var apiList = await _moduleServices.Query(d => d.IsDeleted == false); var permissionsAllList = await _permissionServices.Query(d => d.IsDeleted == false); var permissions = permissionsAllList.Where(d => d.Pid == 0).ToList(); var rmps = await _roleModulePermissionServices.GetRMPMaps(); List <PM> pms = new(); // 当然,你可以做个where查询 rmps = rmps.Where(d => d.PermissionId >= filterPermissionId).ToList(); InitPermissionTree(permissions, permissionsAllList, apiList); var actionPermissionIds = permissionsAllList.Where(d => d.Id >= filterPermissionId).Select(d => d.Id).ToList(); List <int> filterPermissionIds = new(); FilterPermissionTree(permissionsAllList, actionPermissionIds, filterPermissionIds); permissions = permissions.Where(d => filterPermissionIds.Contains(d.Id)).ToList(); // 开启事务,保证数据一致性 _unitOfWork.BeginTran(); // 注意信息的完整性,不要重复添加,确保主库没有要添加的数据 // 1、保持菜单和接口 await SavePermissionTreeAsync(permissions, pms); var rid = 0; var pid = 0; var mid = 0; var rpmid = 0; // 2、保存关系表 foreach (var item in rmps) { // 角色信息,防止重复添加,做了判断 if (item.Role != null) { var isExit = (await _roleServices.Query(d => d.Name == item.Role.Name && d.IsDeleted == false)).FirstOrDefault(); if (isExit == null) { rid = await _roleServices.Add(item.Role); Console.WriteLine($"Role Added:{item.Role.Name}"); } else { rid = isExit.Id; } } pid = (pms.FirstOrDefault(d => d.PidOld == item.PermissionId)?.PidNew).ObjToInt(); mid = (pms.FirstOrDefault(d => d.MidOld == item.ModuleId)?.MidNew).ObjToInt(); // 关系 if (rid > 0 && pid > 0) { rpmid = await _roleModulePermissionServices.Add(new RoleModulePermission() { IsDeleted = false, CreateTime = DateTime.Now, ModifyTime = DateTime.Now, ModuleId = mid, PermissionId = pid, RoleId = rid, }); Console.WriteLine($"RMP Added:{rpmid}"); } } _unitOfWork.CommitTran(); data.success = true; data.msg = "导入成功!"; } catch (Exception) { _unitOfWork.RollbackTran(); } } else { data.success = false; data.msg = "当前不处于开发模式,代码生成不可用!"; } return(data); }