public IActionResult VillageList(GrabRequestPaload payload)
        {
            var response = ResponseModelFactory.CreateResultInstance;

            using (_dbContext)
            {
                var query = _dbContext.HomeAddress.Select(x => new {
                    x.Ccmmunity,
                    x.Address,
                    x.Town,
                    x.Resregion
                });
                if (AuthContextService.CurrentUser.Streets == "" && AuthContextService.CurrentUser.Community == "" && AuthContextService.CurrentUser.Biotope != "")
                {
                    var Biotope = AuthContextService.CurrentUser.Biotope.Split(',');
                    query = query.Where(x => Biotope.Contains(x.Resregion));
                }
                else if (AuthContextService.CurrentUser.Streets == "" && AuthContextService.CurrentUser.Community != "" && AuthContextService.CurrentUser.Biotope == "")
                {
                    var Community = AuthContextService.CurrentUser.Community.Split(',');
                    query = query.Where(x => Community.Contains(x.Ccmmunity));
                }
                else if (AuthContextService.CurrentUser.Streets != "" && AuthContextService.CurrentUser.Community == "" && AuthContextService.CurrentUser.Biotope == "")
                {
                    var Streets = AuthContextService.CurrentUser.Streets.Split(',');
                    query = query.Where(x => Streets.Contains(x.Town));
                }
                else if (AuthContextService.CurrentUser.Streets != "" && AuthContextService.CurrentUser.Community != "" && AuthContextService.CurrentUser.Biotope == "")
                {
                    var Streets   = AuthContextService.CurrentUser.Streets.Split(',');
                    var Community = AuthContextService.CurrentUser.Community.Split(',');
                    query = query.Where(x => Streets.Contains(x.Town) || Community.Contains(x.Ccmmunity));
                }
                else if (AuthContextService.CurrentUser.Streets != "" && AuthContextService.CurrentUser.Community == "" && AuthContextService.CurrentUser.Biotope != "")
                {
                    var Streets = AuthContextService.CurrentUser.Streets.Split(',');
                    var Biotope = AuthContextService.CurrentUser.Biotope.Split(',');
                    query = query.Where(x => Streets.Contains(x.Town) || Biotope.Contains(x.Resregion));
                }
                else if (AuthContextService.CurrentUser.Streets == "" && AuthContextService.CurrentUser.Community != "" && AuthContextService.CurrentUser.Biotope != "")
                {
                    var Community = AuthContextService.CurrentUser.Community.Split(',');
                    var Biotope   = AuthContextService.CurrentUser.Biotope.Split(',');
                    query = query.Where(x => Community.Contains(x.Ccmmunity) || Biotope.Contains(x.Resregion));
                }
                else if (AuthContextService.CurrentUser.Streets != "" && AuthContextService.CurrentUser.Community != "" && AuthContextService.CurrentUser.Biotope != "")
                {
                    var Streets   = AuthContextService.CurrentUser.Streets.Split(',');
                    var Community = AuthContextService.CurrentUser.Community.Split(',');
                    var Biotope   = AuthContextService.CurrentUser.Biotope.Split(',');
                    query = query.Where(x => Streets.Contains(x.Town) || Community.Contains(x.Ccmmunity) || Biotope.Contains(x.Resregion));
                }
                var entity = query.GroupBy(x => x.Ccmmunity).Select(x => new
                {
                    Score     = score(x.Key),
                    Ccmmunity = x.Key
                });
                var list       = entity.Paged(payload.CurrentPage, payload.PageSize).ToList();
                var totalCount = entity.ToList().Count();
                response.SetData(list, totalCount);
                return(Ok(response));
            }
        }
        public IActionResult List(GrabRequestPaload payload)
        {
            using (_dbContext)
            {
                var query = from gd in _dbContext.GrabageDisposal
                            join gr in _dbContext.GrabageRoom
                            on gd.GrabageRoomId equals gr.GarbageRoomUuid
                            //join o in _dbContext.SystemUser
                            //on gd.SystemUserUuid equals o.SystemUserUuid
                            join ha in _dbContext.HomeAddress
                            on gd.HomeAddressUuid equals ha.HomeAddressUuid
                            select new
                {
                    GarbageDisposalUuid = gd.GarbageDisposalUuid,
                    TrueName            = _dbContext.SystemUser.FirstOrDefault(x => x.SystemUserUuid == gd.SystemUserUuid).LoginName,
                    Phone           = _dbContext.SystemUser.FirstOrDefault(x => x.SystemUserUuid == gd.SystemUserUuid).Phone,
                    RoomID          = gd.GrabageRoom.Ljname,
                    HomeAddressUuid = gd.HomeAddressUuid,
                    Address         = ha.Address,
                    //o.OldCard,
                    //o.Wechat,
                    //SupervisorName = s.Sname,
                    AddTime      = gd.AddTime,       //投放时间
                    ScoreAddtime = gd.ScoreAddtime,
                    Score        = gd.ScoreSettingUu.Integral,
                    IsDeleted    = gd.IsDelete,
                    Id           = gd.Id,
                    gr.GarbageRoomUuid,
                    gd.MarkType,
                    ha.Ccmmunity,
                    ha.Town,
                    ha.Resregion,
                    IsScore = gd.IsScore == "0"?"已投放":"已赋分"
                };
                if (AuthContextService.CurrentUser.Streets == "" && AuthContextService.CurrentUser.Community == "" && AuthContextService.CurrentUser.Biotope != "")
                {
                    var Biotope = AuthContextService.CurrentUser.Biotope.Split(',');
                    query = query.Where(x => Biotope.Contains(x.Resregion));
                }
                else if (AuthContextService.CurrentUser.Streets == "" && AuthContextService.CurrentUser.Community != "" && AuthContextService.CurrentUser.Biotope == "")
                {
                    var Community = AuthContextService.CurrentUser.Community.Split(',');
                    query = query.Where(x => Community.Contains(x.Ccmmunity));
                }
                else if (AuthContextService.CurrentUser.Streets != "" && AuthContextService.CurrentUser.Community == "" && AuthContextService.CurrentUser.Biotope == "")
                {
                    var Streets = AuthContextService.CurrentUser.Streets.Split(',');
                    query = query.Where(x => Streets.Contains(x.Town));
                }
                else if (AuthContextService.CurrentUser.Streets != "" && AuthContextService.CurrentUser.Community != "" && AuthContextService.CurrentUser.Biotope == "")
                {
                    var Streets   = AuthContextService.CurrentUser.Streets.Split(',');
                    var Community = AuthContextService.CurrentUser.Community.Split(',');
                    query = query.Where(x => Streets.Contains(x.Town) || Community.Contains(x.Ccmmunity));
                }
                else if (AuthContextService.CurrentUser.Streets != "" && AuthContextService.CurrentUser.Community == "" && AuthContextService.CurrentUser.Biotope != "")
                {
                    var Streets = AuthContextService.CurrentUser.Streets.Split(',');
                    var Biotope = AuthContextService.CurrentUser.Biotope.Split(',');
                    query = query.Where(x => Streets.Contains(x.Town) || Biotope.Contains(x.Resregion));
                }
                else if (AuthContextService.CurrentUser.Streets == "" && AuthContextService.CurrentUser.Community != "" && AuthContextService.CurrentUser.Biotope != "")
                {
                    var Community = AuthContextService.CurrentUser.Community.Split(',');
                    var Biotope   = AuthContextService.CurrentUser.Biotope.Split(',');
                    query = query.Where(x => Community.Contains(x.Ccmmunity) || Biotope.Contains(x.Resregion));
                }
                else if (AuthContextService.CurrentUser.Streets != "" && AuthContextService.CurrentUser.Community != "" && AuthContextService.CurrentUser.Biotope != "")
                {
                    var Streets   = AuthContextService.CurrentUser.Streets.Split(',');
                    var Community = AuthContextService.CurrentUser.Community.Split(',');
                    var Biotope   = AuthContextService.CurrentUser.Biotope.Split(',');
                    query = query.Where(x => Streets.Contains(x.Town) || Community.Contains(x.Ccmmunity) || Biotope.Contains(x.Resregion));
                }
                //查看督导员所属的厢房赋分记录
                if (payload.Gruuid != null)
                {
                    query = query.Where(x => x.GarbageRoomUuid == payload.Gruuid);
                }
                if (!string.IsNullOrEmpty(payload.Kw1))
                {
                    query = query.Where(x => x.Address.ToString().Contains(payload.Kw1));
                }
                //街道筛选
                if (!string.IsNullOrEmpty(payload.street))
                {
                    query = query.Where(x => x.Address.Contains(payload.street));
                }
                //所在社区筛选
                if (!string.IsNullOrEmpty(payload.ccmmunity))
                {
                    query = query.Where(x => x.Address.Contains(payload.ccmmunity));
                }
                //if (!string.IsNullOrEmpty(payload.Kw))
                //{
                //    query = query.Where(x => x.RoomID.ToString().Contains(payload.Kw.Trim()) || x.TrueName.Contains(payload.Kw.Trim()));
                //}
                if (payload.MarkType != "全部")
                {
                    query = query.Where(x => x.MarkType.Contains(payload.MarkType));
                }
                if (payload.isScore != "全部")
                {
                    query = query.Where(x => x.IsScore == payload.isScore);
                }
                //if (!string.IsNullOrEmpty(payload.time[0]))
                //{
                //    DateTime d1 = DateTime.Parse(payload.time[0]);
                //    DateTime d2 = DateTime.Parse(payload.time[1]);
                //    d2 = d2.AddDays(1);
                //    query = query.Where(x => DateTime.Parse(x.AddTime) >= d1 && DateTime.Parse(x.AddTime) <= d2);
                //}
                if (!string.IsNullOrEmpty(payload.time[0]))
                {
                    DateTime d1 = DateTime.Parse(payload.time[0]);
                    DateTime d2 = DateTime.Parse(payload.time[1]);
                    d2 = d2.AddDays(1);
                    var date1 = d1.ToString("yyyy-MM-dd HH:mm:ss");
                    var date2 = d2.ToString("yyyy-MM-dd HH:mm:ss");
                    query = query.Where(x => x.AddTime.CompareTo(date1) >= 0 && x.AddTime.CompareTo(date2) <= 0);
                }
                if (payload.FirstSort != null)
                {
                    query = query.OrderBy(payload.FirstSort.Field, payload.FirstSort.Direct == "DESC");
                }
                var list       = query.Paged(payload.CurrentPage, payload.PageSize).ToList();
                var totalCount = query.Count();

                var response = ResponseModelFactory.CreateResultInstance;
                response.SetData(list, totalCount);
                return(Ok(response));
            }
        }