/// <summary> /// 礼品卡表 筛选 /// </summary> /// <param name="filter"></param> /// <returns></returns> private static Expression <Func <IMS_GiftCardOrder, bool> > GiftCardOrderFilter(GiftCardSalesStatisticsReportRequest filter) { var query = PredicateBuilder.True <IMS_GiftCardOrder>(); if (!String.IsNullOrEmpty(filter.GiftCardNo)) { query = PredicateBuilder.And(query, v => v.No == filter.GiftCardNo); return(query); } if (!String.IsNullOrEmpty(filter.TransNo)) { } else { if (filter.BuyStartDate != null) { query = PredicateBuilder.And(query, v => v.CreateDate >= filter.BuyStartDate); } if (filter.BuyEndDate != null) { query = PredicateBuilder.And(query, v => v.CreateDate < filter.BuyEndDate); } } return(query); }
public IHttpActionResult GetList4GiftCardSalesReport([FromUri] GiftCardSalesStatisticsReportRequest request, [UserProfile] UserProfile userProfile) { IHttpActionResult httpActionResult; var result = CheckDataRoleAndArrangeParams(request, userProfile, out httpActionResult); if (!result) { return(httpActionResult); } var pagerRequest = request.PagerRequest; List <GiftCardSalesStatisticsReportDto> datas; int totalCount; var giftcardorderFilter = GiftCardOrderFilter(request); var transFilter = OrderTransactionFilter(request.TransNo); var paymentFilter = PaymentFilter(request.PaymentMethodCode); var storeFilter = StoreFilter(request.StoreId, request.DataRoleStores); using (var db = new YintaiHZhouContext()) { var giftcardorders = db.IMS_GiftCardOrder.AsExpandable().Where(giftcardorderFilter); var ordertransactions = db.OrderTransactions.AsExpandable().Where(transFilter); var payments = db.PaymentMethods.AsExpandable().Where(paymentFilter); var associateIncomeHistory = db.IMS_AssociateIncomeHistory; var associates = db.IMS_Associate; var stores = db.Stores.AsExpandable().Where(storeFilter); var sql = from gco in giftcardorders join ot in ordertransactions on gco.No equals ot.OrderNo join pm in payments on ot.PaymentCode equals pm.Code join aih in associateIncomeHistory on gco.No equals aih.SourceNo join a in associates on aih.AssociateUserId equals a.UserId join store in stores on a.StoreId equals store.Id where aih.SourceType == 1 && a.Status == 1//<---------------礼品卡 select new GiftCardSalesStatisticsReportDto { Amount = gco.Amount, SalesAmount = gco.Price, Id = gco.Id, BuyDate = gco.CreateDate, OrderNo = ot.OrderNo, PaymentMethodCode = pm.Code, PaymentMethodName = pm.Name, Status = gco.Status, StoreId = store.Id, StoreName = store.Name, TransNo = ot.TransNo }; totalCount = sql.Count(); datas = sql.OrderByDescending(v => v.BuyDate).Skip(pagerRequest.SkipCount).Take(pagerRequest.PageSize).ToList(); } var pager = new PagerInfo <GiftCardSalesStatisticsReportDto>(pagerRequest, totalCount, datas); var execresult = new OkExectueResult <PagerInfo <GiftCardSalesStatisticsReportDto> >(pager); return(RetrunHttpActionResult4ExectueResult(execresult)); }