Exemple #1
0
        public JsonResult StateManage(SearchExpertListInput input)
        {
            //检查访问权限
            CheckPermission();
            using (var result = new ResponseResult <List <SearchUserListWithStateOutput> >())
            {
                long totalCount;
                var  userList = _userService.GetAll <DateTime>(input, null, m => m.CreateTime, input.PageIndex, input.PageSize, out totalCount);

                var dicArea = new Dictionary <string, string>();
                //提取地区编号
                ExtractAreaIdListFromAddress(userList, dicArea);

                var areaIdArray = dicArea.Keys.ToArray();
                //获取地区信息
                var areaList = _areaRepository.GetAll(m => areaIdArray.Contains(m.AID))
                               .Select(m =>
                {
                    dicArea[m.AID] = m.DisplayName;
                    return(m);
                }).Count();

                var userIdArray = userList.Select(m => m.Id).ToArray();

                result.Entity = Mapper.Map <List <SearchUserListWithStateOutput> >(userList);
                foreach (var user in result.Entity)
                {
                    if (!string.IsNullOrEmpty(user.Province) && dicArea.ContainsKey(user.Province))
                    {
                        user.Province = dicArea[user.Province];
                    }

                    if (!string.IsNullOrEmpty(user.City) && dicArea.ContainsKey(user.City))
                    {
                        user.City = dicArea[user.City];
                    }

                    if (!string.IsNullOrEmpty(user.Region) && dicArea.ContainsKey(user.Region))
                    {
                        user.Region = dicArea[user.Region];
                    }

                    if (!string.IsNullOrEmpty(user.Township) && dicArea.ContainsKey(user.Township))
                    {
                        user.Township = dicArea[user.Township];
                    }

                    if (!string.IsNullOrEmpty(user.Village) && dicArea.ContainsKey(user.Village))
                    {
                        user.Village = dicArea[user.Village];
                    }
                }

                SetJosnResult <List <SearchUserListWithStateOutput> >(result, input.PageIndex, input.PageSize,
                                                                      totalCount, "获取用户列表成功(带锁定状态)");
                return(new JsonResultEx(result));
            }
        }
        public ActionResult StateManage(SearchExpertListInput input)
        {
            CheckPermission(GetLoginInfo().User.Id, CurrentUrl);

            if (input.PageIndex == 0)
            {
                input.PageIndex = 1;
            }

            if (input.PageSize == 0)
            {
                input.PageSize = 10;
            }

            var parameters = ModelHelper.GetPropertyDictionary <SearchExpertListInput>(input);
            var result     = PostStandardWithSameControllerAction <List <SearchUserListWithStateOutput> >(this, parameters);
            var model      = new MultiModel <List <SearchUserListWithStateOutput> >(result.IsSuccess, input.PageIndex, input.PageSize, (int)result.TotalNums, result.Entity);

            return(View(model));
        }
        public IEnumerable <T_USER> GetAll <TKey>(SearchExpertListInput input, Func <T_USER, TKey> orderBy, Func <T_USER, TKey> orderByDecending, int pageIndex, int pageSize, out long totalCount)
        {
            using (var ctx = GetDbContextInstance())
            {
                IQueryable <T_USER> query;
                if (input.RoleId > 0)
                {
                    query = from user in ctx.Set <T_USER>()
                            join roleRelation in ctx.Set <T_USER_ROLE_RELATION>() on user.Id equals roleRelation.UserID
                            where roleRelation.RoleID == input.RoleId
                            select user;
                }
                else
                {
                    query = ctx.Set <T_USER>();
                }

                //手机号过滤
                if (input.PhoneNumber != null)
                {
                    query = query.Where(m => m.PhoneNumber == input.PhoneNumber);
                }

                //省份过滤
                if (input.Province != 0)
                {
                    var strProvince = input.Province.ToString();
                    query = query.Where(m => m.Province == strProvince);
                }

                //城市过滤
                if (input.City != 0)
                {
                    var strCity = input.City.ToString();
                    query = query.Where(m => m.City == strCity);
                }

                //区县过滤
                if (input.Region != 0)
                {
                    var strRegion = input.Region.ToString();
                    query = query.Where(m => m.Region == strRegion);
                }

                //注册时间过滤
                if (!string.IsNullOrEmpty(input.StartTime) && !string.IsNullOrEmpty(input.EndTime))
                {
                    var startTime = DateTime.Parse(input.StartTime);
                    var endTime   = DateTime.Parse(input.EndTime);
                    query = query.Where(m => m.CreateTime >= startTime && m.CreateTime <= endTime);
                }
                else
                {
                    if (!string.IsNullOrEmpty(input.StartTime))
                    {
                        var startTime = DateTime.Parse(input.StartTime);
                        query = query.Where(m => m.CreateTime >= startTime);
                    }
                    else if (!string.IsNullOrEmpty(input.EndTime))
                    {
                        var endTime = DateTime.Parse(input.EndTime);
                        query = query.Where(m => m.CreateTime <= endTime);
                    }
                }

                totalCount = query.Count();



                //排序
                if (orderBy != null)
                {
                    return(query.OrderBy(orderBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList());
                }

                return(query.OrderByDescending(orderByDecending).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList());
            }
        }