Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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));
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <summary>
        /// 插入
        /// </summary>
        /// <param name="sql">插入语句</param>
        /// <returns>插入条数</returns>
        public int SqlInsert(string sql)
        {
            var dao = DbFactory.GetSugarInstance();

            return(dao.Ado.ExecuteCommand(sql));
        }