Esempio n. 1
0
        /// <summary>
        /// Gets a list of up to 250 of the gift cards.
        /// </summary>
        /// <param name="options">Options for filtering the list.</param>
        /// <returns>The list of gift cards matching the filter.</returns>
        public virtual async Task <IEnumerable <GiftCard> > ListAsync(GiftCardFilter options = null)
        {
            var req = PrepareRequest("gift_cards.json");

            if (options != null)
            {
                req.QueryParams.AddRange(options.ToParameters());
            }

            return(await ExecuteRequestAsync <List <GiftCard> >(req, HttpMethod.Get, rootElement : "gift_cards"));
        }
Esempio n. 2
0
        public virtual QueryResult QueryGiftCardInfo(GiftCardFilter filter)
        {
            int totalCount;
            var dataTable = ObjectFactory <IGiftCardQueryDA> .Instance.QueryGiftCardInfo(filter, out totalCount);

            return(new QueryResult()
            {
                Data = dataTable,
                TotalCount = totalCount
            });
        }
Esempio n. 3
0
        /// <summary>
        /// 查询礼品卡
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        public DataTable QueryGiftCardInfo(GiftCardFilter filter, out int totalCount)
        {
            PagingInfoEntity pagingEntity = new PagingInfoEntity();

            if (filter.PageInfo == null)
            {
                pagingEntity = null;
            }
            else
            {
                pagingEntity.SortField     = filter.PageInfo.SortBy;
                pagingEntity.MaximumRows   = filter.PageInfo.PageSize;
                pagingEntity.StartRowIndex = filter.PageInfo.PageIndex * filter.PageInfo.PageSize;
            }
            var cmd = DataCommandManager.CreateCustomDataCommandFromConfig("GiftCard_QueryGiftCardInfo");

            using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "B.TransactionNumber DESC"))
            {
                //sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "ChannelID", DbType.String, "@ChannelID", QueryConditionOperatorType.Equal, filter.ChannelID);

                //sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.ReferenceSOSysNo", DbType.Int32, "@ReferenceSOSysNo", QueryConditionOperatorType.Equal, filter.ReferenceSOSysNo);

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "C.CustomerID", DbType.String, "@CustomerID", QueryConditionOperatorType.Equal, filter.CustomerID);

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.Code", DbType.String, "@Code", QueryConditionOperatorType.Equal, filter.CardCode);


                //if (filter.Status.HasValue && filter.Status == ECCentral.BizEntity.IM.GiftCardStatus.Hold)
                //    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.IsHold", DbType.String, "@IsHold", QueryConditionOperatorType.Equal, ECCentral.BizEntity.MKT.YNStatus.Yes);
                //else
                //    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.Status", DbType.String, "@Status", QueryConditionOperatorType.Equal, filter.Status);

                if (filter.ActionSysNo.HasValue)
                {
                    sqlBuilder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND, "EXISTS(SELECT TOP 1 1 FROM [OverseaECommerceManagement].[dbo].[GiftCardRedeemLog] WITH (NOLOCK) WHERE Code=B.Code AND ActionSysNo = " + filter.ActionSysNo + " AND ActionType='SO')");
                }

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.ReferenceSOSysNo", DbType.Int32, "@SOSysNo", QueryConditionOperatorType.Equal, filter.SOSysNo);

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.Status", DbType.AnsiStringFixedLength, "@Status", QueryConditionOperatorType.Equal, filter.Status);

                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.InternalType", DbType.String, "@CardType", QueryConditionOperatorType.Like, filter.CardType);
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.CompanyCode", DbType.String, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode);

                if (filter.EndDateFrom == null && filter.EndDateTo != null)
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.EndDate", DbType.DateTime, "@EndDate", QueryConditionOperatorType.LessThan, filter.EndDateTo);
                }
                else if (filter.EndDateTo == null && filter.EndDateFrom != null)
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.EndDate", DbType.DateTime, "@EndDate", QueryConditionOperatorType.MoreThanOrEqual, filter.EndDateFrom);
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddBetweenCondition(QueryConditionRelationType.AND, "B.EndDate", DbType.DateTime, "@EndDate", QueryConditionOperatorType.MoreThanOrEqual, QueryConditionOperatorType.LessThan, filter.EndDateFrom, filter.EndDateTo);
                }

                cmd.CommandText = sqlBuilder.BuildQuerySql();
                EnumColumnList enumList = new EnumColumnList();
                enumList.Add("Status", typeof(ECCentral.BizEntity.IM.GiftCardStatus));
                enumList.Add("IsHold", typeof(ECCentral.BizEntity.MKT.YNStatus));//前台展示状态
                enumList.Add("CardType", typeof(ECCentral.BizEntity.IM.GiftCardType));

                //CodeNamePairColumnList pairList = new CodeNamePairColumnList();
                //pairList.Add("InternalType", "MKT", "CommentsCategory"); //
                var dt = cmd.ExecuteDataTable(enumList);
                totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount"));
                return(dt);
            }
        }