/// <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")); }
public virtual QueryResult QueryGiftCardInfo(GiftCardFilter filter) { int totalCount; var dataTable = ObjectFactory <IGiftCardQueryDA> .Instance.QueryGiftCardInfo(filter, out totalCount); return(new QueryResult() { Data = dataTable, TotalCount = totalCount }); }
/// <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); } }