コード例 #1
0
        public Page <UserSubAccountDetails> GetPageList(int userId, PageListQueryInfo <UserSubAccountPageListQuery> info)
        {
            int count;
            var list = _subAccountDal.GetPageList(userId, info, out count);

            info.Count = count;
            return(new Page <UserSubAccountDetails>
            {
                Info = info as PageListInfo,
                List = list
            });
        }
コード例 #2
0
        public Page <OrderRecordDetails> GetPageList(int userId, PageListQueryInfo <OrderRecordPageListQuery> info)
        {
            int count;
            var list = _orderRecordDal.GetPageList(userId, info.Query.ShopId, info.Query.OrderStateId,
                                                   (info.PageIndex - 1) * info.PageSize + 1, info.PageIndex * info.PageSize, out count);

            info.Count = count;
            return(new Page <OrderRecordDetails>
            {
                Info = info as PageListInfo,
                List = list
            });
        }
コード例 #3
0
        public void GetPageList(PageListQueryInfo <OrderRecordPageListQuery> info,
                                Action <DataResponse <OrderRecordOptState, Page <OrderRecordDetails> > > getPageListResponse)
        {
            _getPageListResponse = getPageListResponse;
            var future = Global.SendToServer(info, MessageType.GetOrderRecordListRequest);

            if (future == null)
            {
                GetPageListResponse(new DataResponse <OrderRecordOptState, Page <OrderRecordDetails> >
                {
                    State = OrderRecordOptState.CannotConnectServer
                });
            }
        }
コード例 #4
0
        public void GetPageList(PageListQueryInfo <UserSubAccountPageListQuery> info,
                                Action <DataResponse <UserSubAccountOptState, Page <UserSubAccountPageListVM> > > getPageListResponse)
        {
            _getPageListResponse = getPageListResponse;
            var future = Global.SendToServer(info, MessageType.GetSubAccountPageListRequest);

            if (future == null)
            {
                GetPageListResponse(new DataResponse <UserSubAccountOptState, Page <UserSubAccountDetails> >
                {
                    State = UserSubAccountOptState.CannotConnectServer
                });
            }
        }
コード例 #5
0
        public IList <UserSubAccountDetails> GetPageList(int userId,
                                                         PageListQueryInfo <UserSubAccountPageListQuery> info, out int count)
        {
            const string sql = @"
                SELECT  COUNT(1) AS Count
                FROM    UserSubAccount USA
                WHERE   USA.UserId != @UserId
                        AND USA.IsAudit = 1
                        AND USA.IsEnabled = 1{0}
                SELECT  T1.* ,
                        T3.Id AS OrderTypeDetails_Id ,
                        T3.Name AS OrderTypeDetails_Name ,
                        T2.[Count] AS OrderTypeDetails_Count
                FROM    ( SELECT    T.Id ,
                                    T.TaoBaoAccount ,
                                    T.Level ,
                                    T.ConsumptionLevel ,
                                    T.Age ,
                                    T.Sex ,
                                    T.Province ,
                                    T.City ,
                                    T.District ,
                                    T.IsBindingMobile ,
                                    T.IsRealName ,
                                    T.ShippingAddress ,
                                    T.UserId ,
                                    T.DayOrderCount ,
                                    T.MonthOrderCount ,
                                    T.Account ,
                                    T.ClientLogin ,
                                    T.ClientLastLoginIpAddress
                          FROM      ( SELECT    USA.Id ,
                                                USA.TaoBaoAccount ,
                                                USA.Level ,
                                                USA.ConsumptionLevel ,
                                                USA.Age ,
                                                USA.Sex ,
                                                USA.Province ,
                                                USA.City ,
                                                USA.District ,
                                                USA.IsBindingMobile ,
                                                USA.IsRealName ,
                                                USA.ShippingAddress ,
                                                USA.UserId ,
                                                U.Account ,
                                                ULS.ClientLogin ,
                                                ULS.ClientLastLoginIpAddress ,
                                                USAUI.DayOrderCount ,
                                                USAUI.MonthOrderCount ,
                                                ROW_NUMBER() OVER ( ORDER BY ULS.ClientLogin DESC, U.Id, USA.Id ) AS Row
                                      FROM      UserSubAccount USA
                                                LEFT JOIN [User] U ON USA.UserId = U.Id
                                                LEFT JOIN UserLoginState ULS ON USA.UserId = ULS.UserId
                                                LEFT JOIN UserSubAccountUsageInfo USAUI ON USAUI.UserSubAccountId = USA.Id
                                      WHERE     USA.UserId != @UserId
                                                AND USA.IsAudit = 1
                                                AND USA.IsEnabled = 1{0}
                                    ) T
                          WHERE     T.Row BETWEEN @Start AND @End
                        ) T1
                        LEFT JOIN ( SELECT  UserSubAccountId ,
                                            OrderTypeId ,
                                            [Count] ,
                                            ROW_NUMBER() OVER ( PARTITION BY UserSubAccountId ORDER BY [Count] DESC ) AS Num
                                    FROM    UserSubAccountOrderTypeInfo
                                  ) T2 ON T2.UserSubAccountId = T1.Id
                                          AND T2.Num <= 3
                        LEFT JOIN OrderType T3 ON T3.Id = T2.OrderTypeId";

            StringBuilder query = new StringBuilder();

            if (!string.IsNullOrEmpty(info.Query.ProvinceName))
            {
                query.Append(" AND USA.Province = @ProvinceName");
            }

            if (!string.IsNullOrEmpty(info.Query.CityName))
            {
                query.Append(" AND USA.City = @CityName");
            }

            if (!string.IsNullOrEmpty(info.Query.DistrictName))
            {
                query.Append(" AND USA.District = @DistrictName");
            }

            var sqlTmp = string.Format(sql, query.ToString());

            using (var con = DbFactory.CreateConnection())
            {
                var reader = con.QueryMultiple(string.Format(sql, query.ToString()), new
                {
                    UserId       = userId,
                    Start        = (info.PageIndex - 1) * info.PageSize + 1,
                    End          = info.PageIndex * info.PageSize,
                    ProvinceName = info.Query.ProvinceName,
                    CityName     = info.Query.CityName,
                    DistrictName = info.Query.DistrictName,
                });
                count = reader.Read <int>().Single();
                var userSubAccountDetailsDic = new Dictionary <int, UserSubAccountDetails>();
                reader.Read <UserSubAccountDetails, User, UserLoginState, OrderTypeDetails, UserSubAccountDetails>(
                    (details, user, userLoginState, orderTypeDetails) =>
                {
                    UserSubAccountDetails userSubAccountDetails;
                    if (!userSubAccountDetailsDic.TryGetValue(details.Id, out userSubAccountDetails))
                    {
                        details.User           = user;
                        details.UserLoginState = userLoginState;
                        userSubAccountDetailsDic.Add(details.Id, userSubAccountDetails = details);
                    }

                    if (orderTypeDetails != null && orderTypeDetails.Id.HasValue)
                    {
                        userSubAccountDetails.OrderTypeDetails.Add(orderTypeDetails);
                    }
                    return(userSubAccountDetails);
                }, "Account,ClientLogin,OrderTypeDetails_Id");

                return(userSubAccountDetailsDic.Values.ToList());
            }
        }