Exemplo n.º 1
0
        public Resp_Index <SysUserDTO> Index(Req_Index request)
        {
            var response = new Resp_Index <SysUserDTO>();
            var limits   = _sysRightRepository.GetRightByUserWithModule(request.userId, request.moduleId).ConvertoDto <SysUserRightView, SysModuleOperateIndexDTO>().ToList();

            if (limits.IsNotNull() && limits.Count > 0 && limits.Find(s => s.IsValid == 1).IsNotNull())
            {
                response.allowVisit      = true;
                response.moduleOperaties = limits.OrderByDescending(t => t.IsValid).GroupBy(t => new { t.KeyCode, t.KeyName }).Select(s => new SysModuleOperateIndexDTO
                {
                    KeyCode = s.Key.KeyCode,
                    KeyName = s.Key.KeyName,
                    IsValid = s.Sum(x => x.IsValid),
                }).ToList();
                var query_parameter = new SysUser_Query {
                    PgIndex = 1, PgSize = request.PgSize
                };
                response.query = Query(query_parameter);
            }
            else
            {
                _sysRightRepository.UnitOfWork.Commite();
                response.allowVisit = false;
                response.message    = "无访问权限,请联系管理员";
            }

            return(response);
        }
Exemplo n.º 2
0
        public Resp_Query <SysUserDTO> Query(SysUser_Query request)
        {
            var response = new Resp_Query <SysUserDTO>();

            var records = _sysUserRepository.GetAll();

            records.ToMaybe()
            .Do(d => request.Verify())
            .Do(d => records = records.Where(s => s.ID > 1))        //系统管理员不展示
            .DoWhen(t => !string.IsNullOrEmpty(request.QueryStr), d => records = records.Where(s => s.Name.Contains(request.QueryStr) || s.TrueName.Contains(request.QueryStr)));

            if (!string.IsNullOrEmpty(request.State) && int.TryParse(request.State, out int result))
            {
                records = records.Where(s => s.State == result);
            }

            response.totalCounts = records.Count();
            response.totalRows   = (int)Math.Ceiling((double)response.totalCounts / request.PgSize);

            if (!string.IsNullOrEmpty(request.Order))
            {
                records = records.DataSorting(request.Order, request.Esc);
            }
            else
            {
                records = records.OrderByDescending(t => t.ID);
            }
            var entities = records.Skip(request.PgSize * (request.PgIndex - 1)).Take(request.PgSize).ToList();

            response.entities = entities.ConvertoDto <SysUser, SysUserDTO>().ToList();
            response.entities.ForEach(f => {
                var temp     = entities.Find(t => t.ID == f.ID.ToInt());
                var RoleName = new StringBuilder();
                if (temp.IsNotNull())
                {
                    temp.SysRoles.ToList().ForEach(s => RoleName.Append("[" + s.Name + "]"));
                }
                f.RoleName = RoleName.ToString();

                var channelName = new StringBuilder();
                if (temp.IsNotNull())
                {
                    temp.SysChannels.ToList().ForEach(s => channelName.Append("[" + s.Name + "]"));
                }
                f.ChannelName = channelName.ToString();
            });
            return(response);
        }