/// <summary> /// 获取WeChatUser的分页列表信息 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <PagedResultDto <WeChatUserListDto> > GetPagedWeChatUsers(GetWeChatUsersInput input) { var query = _wechatuserRepository.GetAll() .WhereIf(!string.IsNullOrEmpty(input.Name), u => u.NickName.Contains(input.Name) || u.UserName.Contains(input.Name)) .WhereIf(input.UserType.HasValue, u => u.UserType == input.UserType); //TODO:根据传入的参数添加过滤条件 var wechatuserCount = await query.CountAsync(); var wechatusers = await query .OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); //var wechatuserListDtos = ObjectMapper.Map<List <WeChatUserListDto>>(wechatusers); var wechatuserListDtos = wechatusers.MapTo <List <WeChatUserListDto> >(); return(new PagedResultDto <WeChatUserListDto>( wechatuserCount, wechatuserListDtos )); }
/// <summary> /// 获取IntegralDetail的分页列表用户积分汇总信息 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <PagedResultDto <WeChatUserListDto> > GetPagedIntegralDetailsAsync(GetWeChatUsersInput input) { // 积分详情表分组查询 //var queryIntegralDetail = _integraldetailRepository.GetAll(); //var queryWXUser = _wechatusersRepository.GetAll() // .WhereIf(!string.IsNullOrEmpty(input.Filter), v => v.NickName.Contains(input.Filter)) // .WhereIf(input.UserType.HasValue, u => u.UserType == input.UserType) // .WhereIf(!string.IsNullOrEmpty(input.Phone), u => u.Phone.Contains(input.Phone)); //var queryGroup = from i in queryIntegralDetail // group new { i.OpenId, i.Integral } by new // { // i.OpenId, // } into r // select new IntegralDetailListDto() // { // FinalIntegral = r.Sum(v => v.Integral), // OpenId = r.Key.OpenId, // }; //var query = from g in queryGroup // join u in queryWXUser on g.OpenId equals u.OpenId // select new IntegralDetailListDto() // { // OpenId = u.OpenId, // FinalIntegral = g.FinalIntegral, // WXName = u.NickName, // Phone = u.Phone, // UserTypeName = Enum.GetName(typeof(UserTypeEnum), u.UserType), // }; var queryIntegral = _wechatusersRepository.GetAll().Where(v => v.IntegralTotal > 0) .WhereIf(!string.IsNullOrEmpty(input.Name), v => v.NickName.Contains(input.Name)) .WhereIf(input.UserType.HasValue, u => u.UserType == input.UserType) .WhereIf(!string.IsNullOrEmpty(input.Phone), u => u.Phone.Contains(input.Phone)); ////TODO:根据传入的参数添加过滤条件 var retailer = _retailerRepository.GetAll(); var employee = _employeeRepository.GetAll(); var query = (from w in queryIntegral join r in retailer on w.UserId equals r.Id into wr from table in wr.DefaultIfEmpty() join e in employee on w.UserId equals e.Id into wre from result in wre.DefaultIfEmpty() select new WeChatUserListDto() { Id = w.Id, OpenId = w.OpenId, NickName = w.NickName, UserType = w.UserType, Code = table != null ? table.Code : (result != null ? result.Code : ""), Phone = w.Phone, IntegralTotal = w.IntegralTotal, UserName = w.UserName }).WhereIf(!string.IsNullOrEmpty(input.Code), v => v.Code.Contains(input.Code)); var intergralCount = await query.CountAsync(); if (input.SortValue == "ascend") { var intergral = await query .OrderByDescending(v => v.IntegralTotal) .ThenBy(input.Sorting) .PageBy(input) .ToListAsync(); var intergralListDtos = intergral.MapTo <List <WeChatUserListDto> >(); return(new PagedResultDto <WeChatUserListDto>( intergralCount, intergralListDtos )); } else if (input.SortValue == "descend") { var intergral = await query .OrderBy(v => v.IntegralTotal) .ThenBy(input.Sorting) .PageBy(input) .ToListAsync(); var intergralListDtos = intergral.MapTo <List <WeChatUserListDto> >(); return(new PagedResultDto <WeChatUserListDto>( intergralCount, intergralListDtos )); } else { var intergral = await query .OrderByDescending(v => v.IntegralTotal) .ThenBy(input.Sorting) .PageBy(input) .ToListAsync(); var intergralListDtos = intergral.MapTo <List <WeChatUserListDto> >(); return(new PagedResultDto <WeChatUserListDto>( intergralCount, intergralListDtos )); } }