private Expression <Func <ResidentInfo, bool> > SearchPartResidentWhere(PartyResidentSearchViewModel partyResidentSearchViewModel)
        {
            var predicate = WhereExtension.True <ResidentInfo>();//初始化where表达式

            if (partyResidentSearchViewModel.IdentityName != "")
            {
                predicate = predicate.And(p => p.Politics.Equals(partyResidentSearchViewModel.IdentityName));
            }
            if (partyResidentSearchViewModel.Area != "")
            {
                predicate = predicate.And(p => p.InfoRelationShips.HouseInfo.Area.Equals(partyResidentSearchViewModel.Area));
            }
            if (partyResidentSearchViewModel.Name != "")
            {
                predicate = predicate.And(p => p.Name.Equals(partyResidentSearchViewModel.Name));
            }
            //根据出生年月范围查询
            if (partyResidentSearchViewModel.StartTime != null)
            {
                predicate = predicate.And(p => DateTime.ParseExact(p.IdNumber.Substring(6, 8), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture) >= partyResidentSearchViewModel.StartTime);
            }
            if (partyResidentSearchViewModel.EndTime != null)
            {
                predicate = predicate.And(p => DateTime.ParseExact(p.IdNumber.Substring(6, 8), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture) <= partyResidentSearchViewModel.EndTime);
            }

            predicate = predicate.And(p => p.Status == "1");


            return(predicate);
        }
        /// <summary>
        /// 查询党员的居民信息
        /// </summary>
        /// <param name="partyResidentSearchViewModel"></param>
        /// <returns></returns>
        #region
        public List <PartyResidentSearchMiddle> getPartResidentSearch(PartyResidentSearchViewModel partyResidentSearchViewModel)
        {
            int SkipNum   = partyResidentSearchViewModel.pageViewModel.CurrentPageNum * partyResidentSearchViewModel.pageViewModel.PageSize;
            var predicate = SearchPartResidentWhere(partyResidentSearchViewModel);
            var result    = DbSet.Include(a => a.InfoRelationShips).ThenInclude(b => b.HouseInfo)
                                                                                                                //.Include(a => a.ResidentRelationShips).ThenInclude(b => b.ResidentIdentity)
                            .Where(predicate)
                            .Join(DbSet1, a => a.Id, b => b.ResidentId, (a, b) => new PartyResidentSearchMiddle //inner join
            {
                Id            = a.Id,
                Name          = a.Name,
                Gender        = a.Gender,
                IdNumber      = a.IdNumber,
                Education     = a.Education,
                Phone         = a.Phone,
                JoinPartyTime = b.JoinPartyTime,
                PartyJob      = b.PartyJob
            })


                            .ToList()
                            .GroupBy(a => a.Id).Select(a => a.First()).ToList();
            var aaa = result
                      .Skip(SkipNum)
                      .Take(partyResidentSearchViewModel.pageViewModel.PageSize).ToList();

            return(aaa);
        }
        public int getPartResidentSearchCount(PartyResidentSearchViewModel partyResidentSearchViewModel)
        {
            var predicate = SearchPartResidentWhere(partyResidentSearchViewModel);
            var result    = DbSet.Include(a => a.InfoRelationShips).ThenInclude(b => b.HouseInfo)
                                                                                                                //.Include(a => a.ResidentRelationShips).ThenInclude(b => b.ResidentIdentity)
                            .Where(predicate)
                            .Join(DbSet1, a => a.Id, b => b.ResidentId, (a, b) => new PartyResidentSearchMiddle //inner join
            {
                Id            = a.Id,
                Name          = a.Name,
                Gender        = a.Gender,
                IdNumber      = a.IdNumber,
                Education     = a.Education,
                Phone         = a.Phone,
                JoinPartyTime = b.JoinPartyTime,
                PartyJob      = b.PartyJob
            })


                            .ToList()
                            .GroupBy(a => a.Id).Select(a => a.First()).ToList().Count();

            return(result);
        }
예제 #4
0
 public int getPartResidentSearchCount(PartyResidentSearchViewModel partyResidentSearchViewModel)
 {
     return(_inhabitantRepository.getPartResidentSearchCount(partyResidentSearchViewModel));
 }
예제 #5
0
 /// <summary>
 /// 查询党员的居民信息
 /// </summary>
 /// <param name="partyResidentSearchViewModel"></param>
 /// <returns></returns>
 public List <PartyResidentSearchMiddle> getPartResidentSearch(PartyResidentSearchViewModel partyResidentSearchViewModel)
 {
     return(_inhabitantRepository.getPartResidentSearch(partyResidentSearchViewModel));
 }
        public ActionResult <PartyResidentSearchResViewModel> ByHouseInfoSearchResident_OpinionInfo_Search(PartyResidentSearchViewModel partyResidentSearchViewModel)
        {
            var SearchResult = _inhabitantService.getPartResidentSearch(partyResidentSearchViewModel);
            int total        = _inhabitantService.getPartResidentSearchCount(partyResidentSearchViewModel);
            var Actionresult = _inhabitantFactory.GetPartyResidentSearchResViewModel();

            Actionresult.baseViewModel.IsSuccess = true;
            Actionresult.Data                       = SearchResult;
            Actionresult.TotalCount                 = total;
            Actionresult.baseViewModel.Message      = "查询信息成功";
            Actionresult.baseViewModel.ResponseCode = 200;
            _ILogger.Information("查询信息成功");

            return(Ok(Actionresult));
        }