コード例 #1
0
        /// <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
                       ));
        }
コード例 #2
0
        /// <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
                           ));
            }
        }