/// <summary> /// 查询页面 /// </summary> /// <param name="total">行数</param> /// <param name="take">显示行数</param> /// <param name="skip">第几页</param> /// <param name="searchParams">检索条件</param> /// <returns>页面信息</returns> public IEnumerable <IEntityBase> GetList(ref int total, int take, int skip, Dictionary <string, string> searchParams) { var db = DbFactory.GetSugarInstance(); var qable = db.Queryable <M_Page, M_System>((s1, s2) => new object[] { JoinType.Inner, s1.SystemId == s2.Id && s2.DelFlg != false }); if (searchParams.ContainsKey("q_Code")) { var pageCode = searchParams["q_Code"]; qable = qable.Where((s1, s2) => s1.Code == pageCode); } if (searchParams.ContainsKey("q_Name")) { var pageName = searchParams["q_Name"]; qable = qable.Where((s1, s2) => s1.Name == pageName); } if (searchParams.ContainsKey("q_AccId")) { var accId = searchParams["q_AccId"]; Guid acc = new Guid(accId); qable = qable.Where((s1, s2) => s1.AccId == acc); } if (searchParams.ContainsKey("q_SystemId")) { var systemId = searchParams["q_SystemId"]; Guid system = new Guid(systemId); qable = qable.Where((s1, s2) => s1.SystemId == system); } qable = qable.Where((s1, s2) => s1.DelFlg != false).OrderBy((s1, s2) => s1.SystemId).OrderBy((s1, s2) => s1.Level); var pagesEntitys = qable.Select <PagesEntity>((s1, s2) => new PagesEntity() { AccId = s1.AccId, CreateUser = s1.CreateUser, DelFlg = s1.DelFlg, ImagePath = s1.ImagePath, ImageStyle = s1.ImageStyle, Id = s1.Id, Code = s1.Code, Level = s1.Level, Name = s1.Name, Path = s1.Path, Type = s1.Type, ParentId = s1.ParentId, CreateTime = s1.CreateTime, Remark = s1.Remark, SystemId = s1.SystemId, UpdateUser = s1.UpdateUser, UpdateTime = s1.UpdateTime, SystemName = s2.Name }); var valuePair = pagesEntitys.ToPageListAsync((skip / take) + 1, take, 0); valuePair.Wait(); var restult = valuePair.Result; var list = restult.Key; total = restult.Value; return(list); }
/// <summary> /// 删除 /// </summary> /// <param name="sql">删除语句</param> /// <param name="param">参数</param> /// <returns>删除条数</returns> public int SqlDelete(string sql, object param) { var dao = DbFactory.GetSugarInstance(); return(dao.Ado.ExecuteCommand(sql, param)); }
/// <summary> /// 获取所有页面以及其权限 /// </summary> /// <param name="accId">帐套ID</param> /// <param name="roleId">角色ID</param> /// <returns></returns> public IEnumerable <PagesEntity> GetAllPageAuthority(string accId, string roleId) { var db = DbFactory.GetSugarInstance(); var Role = new Guid(roleId); var myRoles = AppContext.Current.UserRole.Select(x => x.Id).ToList(); var acc = new Guid(accId); var result = db.Queryable <M_Page, M_PageAuthority>((s1, s2) => new object[] { JoinType.Inner, s1.Id == s2.PageId && s2.DelFlg != false }) .Where((s1, s2) => (s2.RoleId == Role || myRoles.Contains((Guid)s2.RoleId)) && s1.AccId == acc) .GroupBy((s1, s2) => s1.SystemId) .Select((s1, s2) => s1.SystemId).ToListAsync(); result.Wait(); var systemList = result.Result; var qable = db.Queryable <M_Page, M_PageAuthority, M_System, M_Page>( (s1, s2, s3, s4) => new object[] { JoinType.Left, s1.Id == s2.PageId && s2.RoleId == Role, JoinType.Left, s1.SystemId == s3.Id && s3.DelFlg != false, JoinType.Left, s1.ParentId == s4.Id && s4.DelFlg != false }); if (!string.IsNullOrEmpty(accId)) { qable = qable.Where(s1 => s1.AccId == acc); } qable = qable.Where((s1, s2, s3, s4) => systemList.Contains(s1.SystemId)); qable = qable.Where((s1, s2, s3, s4) => s1.DelFlg != false); qable = qable.OrderBy(s1 => s1.Id, OrderByType.Asc); var list = qable.Select((s1, s2, s3, s4) => new PagesEntity() { Id = s1.Id, Name = s1.Name, Remark = s1.Remark, Path = s1.Path, ParentId = s1.ParentId, Type = s1.Type, Level = s1.Level, ImageStyle = s1.ImageStyle, ImagePath = s1.ImagePath, DelFlg = s2.DelFlg, AccId = s1.AccId, SystemId = s1.SystemId, CreateUser = s1.CreateUser, CreateTime = s1.CreateTime, UpdateUser = s1.UpdateUser, UpdateTime = s1.UpdateTime, SystemName = s3.Name, ParentName = s4.Name, AuthorityIdList = s2.AuthorityIdList, PageAuthorityId = s2.Id, RoleId = s2.Id }).ToListAsync(); list.Wait(); return(list.Result); }
/// <summary> /// 插入 /// </summary> /// <param name="sql">插入语句</param> /// <returns>插入条数</returns> public int SqlInsert(string sql) { var dao = DbFactory.GetSugarInstance(); return(dao.Ado.ExecuteCommand(sql)); }