示例#1
0
        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, "获取成功"));
        }
示例#2
0
        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);
 }
示例#4
0
        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,
                }
            });
        }
示例#6
0
        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
            });
        }
示例#7
0
        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,
                }
            });
        }
示例#8
0
        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);
        }