internal OrderService(OpenPositionsQuery openPositionsQuery, OrderQuery orderQuery, StopLimitOrderHistoryQuery stopLimitOrderHistoryQuery, NewStopLimitOrderPlacer newStopLimitOrderPlacer, NewTradeOrderPlacer newTradeOrderPlacer, CancelOrderPlacer cancelOrderPlacer, ActiveStopLimitOrderQuery activeStopLimitOrderQuery, TradeHistoryQuery tradeHistoryQuery)
 {
     _openPositionsQuery = openPositionsQuery;
     _orderQuery = orderQuery;
     _stopLimitOrderHistoryQuery = stopLimitOrderHistoryQuery;
     _newStopLimitOrderPlacer = newStopLimitOrderPlacer;
     _newTradeOrderPlacer = newTradeOrderPlacer;
     _cancelOrderPlacer = cancelOrderPlacer;
     _activeStopLimitOrderQuery = activeStopLimitOrderQuery;
     _tradeHistoryQuery = tradeHistoryQuery;
 }
        public void Setup()
        {
            _mockConnection = MockRepository.GenerateMock<Connection>("username", "password", "http://couldBeAnyUrl/TradingApi");
            _mockOpenPositionsQuery = MockRepository.GenerateMock<OpenPositionsQuery>(_mockConnection);
            _mockOrderQuery = MockRepository.GenerateMock<OrderQuery>(_mockConnection);
            _mockStopLimitOrderHistoryQuery = MockRepository.GenerateMock<StopLimitOrderHistoryQuery>(_mockConnection);
            _mockNewStopLimitOrderPlacer = MockRepository.GenerateMock<NewStopLimitOrderPlacer>(_mockConnection);
            _mockNewTradeOrderPlacer = MockRepository.GenerateMock<NewTradeOrderPlacer>(_mockConnection);
            _mockCancelOrderPlacer = MockRepository.GenerateMock<CancelOrderPlacer>(_mockConnection);
            _mockActiveStopLimitOrderQuery = MockRepository.GenerateMock<ActiveStopLimitOrderQuery>(_mockConnection);
            _mockTradeHistoryQuery = MockRepository.GenerateMock<TradeHistoryQuery>(_mockConnection);

            _orderService = new OrderService(_mockOpenPositionsQuery, _mockOrderQuery, _mockStopLimitOrderHistoryQuery, _mockNewStopLimitOrderPlacer, _mockNewTradeOrderPlacer, _mockCancelOrderPlacer, _mockActiveStopLimitOrderQuery, _mockTradeHistoryQuery);
        }
Example #3
0
        private OrderQuery GetOrderQuery(HttpContext context)
        {
            int        num        = 1;
            int        num2       = 10;
            string     empty      = string.Empty;
            OrderQuery orderQuery = new OrderQuery();
            string     parameter  = base.GetParameter(context, "InvoiceType", false);
            int        num3;

            if (parameter.ToNullString().Trim() != "")
            {
                InvoiceType invoiceType;
                if (parameter == "0")
                {
                    OrderQuery orderQuery2 = orderQuery;
                    invoiceType = InvoiceType.Personal;
                    num3        = invoiceType.GetHashCode();
                    string arg = num3.ToString();
                    invoiceType = InvoiceType.Enterprise;
                    num3        = invoiceType.GetHashCode();
                    orderQuery2.InvoiceTypes = $"{arg},{num3.ToString()}";
                }
                else if (parameter == "2")
                {
                    OrderQuery orderQuery3 = orderQuery;
                    invoiceType = InvoiceType.Personal_Electronic;
                    num3        = invoiceType.GetHashCode();
                    string arg2 = num3.ToString();
                    invoiceType = InvoiceType.Enterprise_Electronic;
                    num3        = invoiceType.GetHashCode();
                    orderQuery3.InvoiceTypes = $"{arg2},{num3.ToString()}";
                }
                else
                {
                    OrderQuery orderQuery4 = orderQuery;
                    invoiceType = InvoiceType.VATInvoice;
                    num3        = invoiceType.GetHashCode();
                    orderQuery4.InvoiceTypes = num3.ToString();
                }
            }
            orderQuery.ItemStatus = 0;
            if (!string.IsNullOrEmpty(context.Request["OrderId"]))
            {
                orderQuery.OrderId = Globals.UrlDecode(context.Request["OrderId"]);
            }
            if (!string.IsNullOrEmpty(context.Request["ProductName"]))
            {
                orderQuery.ProductName = Globals.UrlDecode(context.Request["ProductName"]);
            }
            if (!string.IsNullOrEmpty(context.Request["ShipTo"]))
            {
                orderQuery.ShipTo = Globals.UrlDecode(context.Request["ShipTo"]);
            }
            if (!string.IsNullOrEmpty(context.Request["UserName"]))
            {
                orderQuery.UserName = Globals.UrlDecode(context.Request["UserName"]);
            }
            orderQuery.StartDate  = base.GetDateTimeParam(context, "StartDate");
            orderQuery.EndDate    = base.GetDateTimeParam(context, "EndDate");
            orderQuery.GroupBuyId = base.GetIntParam(context, "GroupBuyId", true);
            int?intParam = base.GetIntParam(context, "OrderStatus", true);
            int?nullable;

            if (intParam.HasValue)
            {
                nullable = intParam;
                num3     = 999;
                if (nullable == num3)
                {
                    orderQuery.TakeOnStore = true;
                    orderQuery.Status      = OrderStatus.BuyerAlreadyPaid;
                }
                else
                {
                    nullable = intParam;
                    num3     = 2;
                    if (nullable == num3)
                    {
                        orderQuery.TakeOnStore = false;
                    }
                    orderQuery.Status = (OrderStatus)intParam.Value;
                }
            }
            orderQuery.IsPrinted      = base.GetIntParam(context, "IsPrinted", true);
            orderQuery.ShippingModeId = base.GetIntParam(context, "ModeId", true);
            orderQuery.IsAllotStore   = base.GetIntParam(context, "StoreDistribution", true);
            int num4 = default(int);

            if (!string.IsNullOrEmpty(context.Request["region"]) && int.TryParse(context.Request["region"], out num4))
            {
                orderQuery.RegionId       = num4;
                orderQuery.FullRegionName = RegionHelper.GetFullRegion(num4, ",", true, 0);
            }
            orderQuery.SourceOrder = base.GetIntParam(context, "sourceorder", true);
            orderQuery.StoreId     = base.GetIntParam(context, "storeId", true);
            nullable = orderQuery.StoreId;
            num3     = -2;
            if (nullable == num3)
            {
                orderQuery.StoreId = null;
            }
            num = base.GetIntParam(context, "page", false).Value;
            if (num < 1)
            {
                num = 1;
            }
            num2 = base.GetIntParam(context, "rows", false).Value;
            if (num2 < 1)
            {
                num2 = 10;
            }
            orderQuery.PageIndex  = num;
            orderQuery.PageSize   = num2;
            orderQuery.SupplierId = base.CurrentManager.StoreId;
            orderQuery.SortBy     = "OrderDate";
            orderQuery.SortOrder  = SortAction.Desc;
            return(orderQuery);
        }
Example #4
0
        public ActionResult Index(string orderDate, string keywords, int pageNo = 1, int pageSize = 10)
        {
            DateTime?nullable  = null;
            DateTime?nullable1 = null;

            if (!string.IsNullOrEmpty(orderDate) && orderDate.ToLower() != "all")
            {
                string lower = orderDate.ToLower();
                string str   = lower;
                if (lower != null)
                {
                    if (str == "threemonth")
                    {
                        nullable = new DateTime?(DateTime.Now.AddMonths(-3));
                    }
                    else if (str == "halfyear")
                    {
                        nullable = new DateTime?(DateTime.Now.AddMonths(-6));
                    }
                    else if (str == "year")
                    {
                        nullable = new DateTime?(DateTime.Now.AddYears(-1));
                    }
                    else if (str == "yearago")
                    {
                        nullable1 = new DateTime?(DateTime.Now.AddYears(-1));
                    }
                }
            }
            OrderQuery orderQuery = new OrderQuery()
            {
                StartDate      = nullable,
                EndDate        = nullable1,
                Status         = new OrderInfo.OrderOperateStatus?(OrderInfo.OrderOperateStatus.Finish),
                UserId         = new long?(base.CurrentUser.Id),
                SearchKeyWords = keywords,
                PageSize       = pageSize,
                PageNo         = pageNo
            };
            OrderQuery orderOperateStatuses = orderQuery;

            orderOperateStatuses.MoreStatus = new List <OrderInfo.OrderOperateStatus>()
            {
                OrderInfo.OrderOperateStatus.WaitReceiving
            };
            PageModel <OrderInfo> orders     = ServiceHelper.Create <IOrderService>().GetOrders <OrderInfo>(orderOperateStatuses, null);
            PagingInfo            pagingInfo = new PagingInfo()
            {
                CurrentPage  = pageNo,
                ItemsPerPage = pageSize,
                TotalItems   = orders.Total
            };
            PagingInfo pagingInfo1 = pagingInfo;

            ViewBag.UserId   = base.CurrentUser.Id;
            ViewBag.pageInfo = pagingInfo1;
            SiteSettingsInfo siteSettings = ServiceHelper.Create <ISiteSettingService>().GetSiteSettings();

            ViewBag.SalesRefundTimeout = siteSettings.SalesReturnTimeout;
            return(View(orders.Models.ToList()));
        }
Example #5
0
        private OrderQuery GetOrderQuery()
        {
            int        num;
            OrderQuery query = new OrderQuery();

            if (!string.IsNullOrEmpty(Page.Request.QueryString["OrderId"]))
            {
                query.OrderId = Globals.UrlDecode(Page.Request.QueryString["OrderId"]);
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["ProductName"]))
            {
                query.ProductName = Globals.UrlDecode(Page.Request.QueryString["ProductName"]);
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["ShipTo"]))
            {
                query.ShipTo = Globals.UrlDecode(Page.Request.QueryString["ShipTo"]);
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["UserName"]))
            {
                query.UserName = Globals.UrlDecode(Page.Request.QueryString["UserName"]);
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["StartDate"]))
            {
                query.StartDate = new DateTime?(DateTime.Parse(Page.Request.QueryString["StartDate"]));
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["GroupBuyId"]))
            {
                query.GroupBuyId = new int?(int.Parse(Page.Request.QueryString["GroupBuyId"]));
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["EndDate"]))
            {
                query.EndDate = new DateTime?(DateTime.Parse(Page.Request.QueryString["EndDate"]));
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["OrderStatus"]))
            {
                int result = 0;
                if (int.TryParse(Page.Request.QueryString["OrderStatus"], out result))
                {
                    query.Status = (OrderStatus)result;
                }
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["IsPrinted"]))
            {
                int num3 = 0;
                if (int.TryParse(Page.Request.QueryString["IsPrinted"], out num3))
                {
                    query.IsPrinted = new int?(num3);
                }
            }
            if (!string.IsNullOrEmpty(Page.Request.QueryString["ModeId"]))
            {
                int num4 = 0;
                if (int.TryParse(Page.Request.QueryString["ModeId"], out num4))
                {
                    query.ShippingModeId = new int?(num4);
                }
            }
            if (!(string.IsNullOrEmpty(Page.Request.QueryString["region"]) || !int.TryParse(Page.Request.QueryString["region"], out num)))
            {
                query.RegionId = new int?(num);
            }
            query.PageIndex = pager.PageIndex;
            query.PageSize  = pager.PageSize;
            query.SortBy    = "OrderDate";
            query.SortOrder = SortAction.Desc;
            return(query);
        }
Example #6
0
 public static DataSet GetDistributorOrder(OrderQuery query)
 {
     return(new OrderDao().GetDistributorOrder(query));
 }
Example #7
0
 public abstract DbQueryResult GetUserOrder(int userId, OrderQuery query);
Example #8
0
 /// <summary>
 /// 三座咖啡Excel查询
 /// </summary>
 /// <param name="query"></param>
 /// <returns></returns>
 public static DataTable GetOrderSanZuo(OrderQuery query)
 {
     return(new OrderDao().GetOrderSanZuo(query));
 }
Example #9
0
 private static string BuildUserOrderQuery(OrderQuery query)
 {
     if (null == query)
     {
         throw new ArgumentNullException("query");
     }
     StringBuilder builder = new StringBuilder();
     builder.AppendFormat("SELECT OrderId FROM Hishop_Orders WHERE OrderStatus != {0} AND OrderStatus != {1} AND OrderStatus != {2}", 1, 4, 9);
     if (!string.IsNullOrEmpty(query.OrderId))
     {
         builder.AppendFormat(" AND OrderId = '{0}'", DataHelper.CleanSearchString(query.OrderId));
         return builder.ToString();
     }
     if (!string.IsNullOrEmpty(query.UserName))
     {
         builder.AppendFormat(" AND UserName LIKE '%{0}%'", DataHelper.CleanSearchString(query.UserName));
     }
     if (!string.IsNullOrEmpty(query.ShipTo))
     {
         builder.AppendFormat(" AND ShipTo LIKE '%{0}%'", DataHelper.CleanSearchString(query.ShipTo));
     }
     if (query.StartDate.HasValue)
     {
         builder.AppendFormat(" AND  OrderDate >= '{0}'", DataHelper.GetSafeDateTimeFormat(query.StartDate.Value));
     }
     if (query.EndDate.HasValue)
     {
         builder.AppendFormat(" AND  OrderDate <= '{0}'", DataHelper.GetSafeDateTimeFormat(query.EndDate.Value));
     }
     if (!string.IsNullOrEmpty(query.SortBy))
     {
         builder.AppendFormat(" ORDER BY {0} {1}", DataHelper.CleanSearchString(query.SortBy), query.SortOrder.ToString());
     }
     return builder.ToString();
 }
Example #10
0
 private static string BuildOrdersQuery(OrderQuery query)
 {
     if (null == query)
     {
         throw new ArgumentNullException("query");
     }
     StringBuilder builder = new StringBuilder();
     builder.AppendFormat("SELECT OrderId FROM Hishop_Orders WHERE 1 = 1 ", new object[0]);
     if ((query.OrderId != string.Empty) && (query.OrderId != null))
     {
         builder.AppendFormat(" AND OrderId = '{0}'", DataHelper.CleanSearchString(query.OrderId));
     }
     else
     {
         if (query.PaymentType.HasValue)
         {
             builder.AppendFormat(" AND PaymentTypeId = '{0}'", query.PaymentType.Value);
         }
         if (query.GroupBuyId.HasValue)
         {
             builder.AppendFormat(" AND GroupBuyId = {0}", query.GroupBuyId.Value);
         }
         if (!string.IsNullOrEmpty(query.ProductName))
         {
             builder.AppendFormat(" AND OrderId IN (SELECT OrderId FROM Hishop_OrderItems WHERE ItemDescription LIKE '%{0}%')", DataHelper.CleanSearchString(query.ProductName));
         }
         if (!string.IsNullOrEmpty(query.ShipTo))
         {
             builder.AppendFormat(" AND ShipTo LIKE '%{0}%'", DataHelper.CleanSearchString(query.ShipTo));
         }
         if (query.RegionId.HasValue)
         {
             builder.AppendFormat(" AND ShippingRegion like '%{0}%'", DataHelper.CleanSearchString(RegionHelper.GetFullRegion(query.RegionId.Value, ",")));
         }
         if (!string.IsNullOrEmpty(query.UserName))
         {
             builder.AppendFormat(" AND  UserName  = '******' ", DataHelper.CleanSearchString(query.UserName));
         }
         if (query.Status == OrderStatus.History)
         {
             builder.AppendFormat(" AND OrderStatus != {0} AND OrderStatus != {1} AND OrderStatus != {2} AND OrderDate < '{3}'", new object[] { 1, 4, 9, DateTime.Now.AddMonths(-3) });
         }
         else if (query.Status == OrderStatus.BuyerAlreadyPaid)
         {
             builder.AppendFormat(" AND (OrderStatus = {0} OR (OrderStatus = 1 AND Gateway = 'hishop.plugins.payment.podrequest'))", (int) query.Status);
         }
         else if (query.Status != OrderStatus.All)
         {
             builder.AppendFormat(" AND OrderStatus = {0}", (int) query.Status);
         }
         if (query.StartDate.HasValue)
         {
             builder.AppendFormat(" AND datediff(dd,'{0}',OrderDate)>=0", DataHelper.GetSafeDateTimeFormat(query.StartDate.Value));
         }
         if (query.EndDate.HasValue)
         {
             builder.AppendFormat(" AND datediff(dd,'{0}',OrderDate)<=0", DataHelper.GetSafeDateTimeFormat(query.EndDate.Value));
         }
         if (query.ShippingModeId.HasValue)
         {
             builder.AppendFormat(" AND ShippingModeId = {0}", query.ShippingModeId.Value);
         }
         if (query.IsPrinted.HasValue)
         {
             builder.AppendFormat(" AND ISNULL(IsPrinted, 0)={0}", query.IsPrinted.Value);
         }
     }
     if (!string.IsNullOrEmpty(query.SortBy))
     {
         builder.AppendFormat(" ORDER BY {0} {1}", DataHelper.CleanSearchString(query.SortBy), query.SortOrder.ToString());
     }
     return builder.ToString();
 }
Example #11
0
 public OrderStatisticsInfo GetUserOrdersNoPage(OrderQuery userOrder)
 {
     OrderStatisticsInfo info = new OrderStatisticsInfo();
     DbCommand storedProcCommand = this.database.GetStoredProcCommand("cp_OrderStatisticsNoPage_Get");
     this.database.AddInParameter(storedProcCommand, "sqlPopulate", DbType.String, BuildUserOrderQuery(userOrder));
     this.database.AddOutParameter(storedProcCommand, "TotalUserOrders", DbType.Int32, 4);
     using (IDataReader reader = this.database.ExecuteReader(storedProcCommand))
     {
         info.OrderTbl = DataHelper.ConverDataReaderToDataTable(reader);
         if (reader.NextResult())
         {
             reader.Read();
             if (reader["OrderTotal"] != DBNull.Value)
             {
                 info.TotalOfSearch += (decimal) reader["OrderTotal"];
             }
             if (reader["Profits"] != DBNull.Value)
             {
                 info.ProfitsOfSearch += (decimal) reader["Profits"];
             }
         }
     }
     info.TotalCount = (int) this.database.GetParameterValue(storedProcCommand, "TotaluserOrders");
     return info;
 }
Example #12
0
 public static int GetUserOrderCount(int userId, OrderQuery query)
 {
     return new OrderDao().GetUserOrderCount(userId, query);
 }
Example #13
0
 public static DataSet GetUserOrder(int userId, OrderQuery query)
 {
     return new OrderDao().GetUserOrder(userId, query);
 }
Example #14
0
        public object GetOrders(int?orderStatus, int pageNo, int pageSize = 8)
        {
            CheckUserLogin();
            var allOrders = ServiceProvider.Instance <IOrderService> .Create.GetTopOrders(int.MaxValue, CurrentUser.Id);

            var orderService = ServiceProvider.Instance <IOrderService> .Create;

            //待评价
            var queryModelAll = new OrderQuery()
            {
                Status    = OrderInfo.OrderOperateStatus.Finish,
                UserId    = CurrentUser.Id,
                PageSize  = int.MaxValue,
                PageNo    = 1,
                Commented = false
            };
            var allOrderCounts     = allOrders.Count();
            var waitingForComments = orderService.GetOrders <OrderInfo>(queryModelAll).Total;
            var waitingForRecieve  = allOrders.Count(item => item.OrderStatus == OrderInfo.OrderOperateStatus.WaitReceiving); //获取待收货订单数
            var waitingForPay      = allOrders.Count(item => item.OrderStatus == OrderInfo.OrderOperateStatus.WaitPay);       //获取待支付订单数

            if (orderStatus.HasValue && orderStatus == 0)
            {
                orderStatus = null;
            }
            var queryModel = new OrderQuery()
            {
                Status   = (OrderInfo.OrderOperateStatus?)orderStatus,
                UserId   = CurrentUser.Id,
                PageSize = pageSize,
                PageNo   = pageNo
            };

            if (queryModel.Status.HasValue && queryModel.Status.Value == OrderInfo.OrderOperateStatus.WaitReceiving)
            {
                if (queryModel.MoreStatus == null)
                {
                    queryModel.MoreStatus = new List <OrderInfo.OrderOperateStatus>()
                    {
                    };
                }
                queryModel.MoreStatus.Add(OrderInfo.OrderOperateStatus.WaitSelfPickUp);
            }
            if (orderStatus.GetValueOrDefault() == (int)OrderInfo.OrderOperateStatus.Finish)
            {
                queryModel.Commented = false;//只查询未评价的订单
            }
            ObsoletePageModel <OrderInfo> orders = orderService.GetOrders <OrderInfo>(queryModel);
            var productService     = ServiceProvider.Instance <IProductService> .Create;
            var vshopService       = ServiceProvider.Instance <IVShopService> .Create;
            var orderRefundService = ServiceProvider.Instance <IRefundService> .Create;
            var orderItems         = OrderApplication.GetOrderItemsByOrderId(orders.Models.Select(p => p.Id));
            var orderRefunds       = OrderApplication.GetOrderRefunds(orderItems.Select(p => p.Id));
            var result             = orders.Models.ToArray().Select(item =>
            {
                if (item.OrderStatus >= OrderInfo.OrderOperateStatus.WaitDelivery)
                {
                    orderService.CalculateOrderItemRefund(item.Id);
                }
                var vshop      = vshopService.GetVShopByShopId(item.ShopId);
                var _ordrefobj = orderRefundService.GetOrderRefundByOrderId(item.Id) ?? new OrderRefundInfo {
                    Id = 0
                };
                if (item.OrderStatus != OrderInfo.OrderOperateStatus.WaitDelivery && item.OrderStatus != OrderInfo.OrderOperateStatus.WaitSelfPickUp)
                {
                    _ordrefobj = new OrderRefundInfo {
                        Id = 0
                    };
                }
                int?ordrefstate = (_ordrefobj == null ? null : (int?)_ordrefobj.SellerAuditStatus);
                ordrefstate     = (ordrefstate > 4 ? (int?)_ordrefobj.ManagerConfirmStatus : ordrefstate);
                return(new
                {
                    id = item.Id,
                    status = item.OrderStatus.ToDescription(),
                    orderStatus = item.OrderStatus,
                    orderType = item.OrderType,
                    orderTypeName = item.OrderType.ToDescription(),
                    shopname = item.ShopName,
                    vshopId = vshop == null ? 0 : vshop.Id,
                    orderTotalAmount = item.OrderTotalAmount.ToString("F2"),
                    productCount = item.OrderProductQuantity,
                    commentCount = item.OrderCommentInfo.Count(),
                    pickupCode = item.PickupCode,
                    EnabledRefundAmount = item.OrderEnabledRefundAmount,
                    itemInfo = item.OrderItemInfo.Select(a =>
                    {
                        var prodata = productService.GetProduct(a.ProductId);
                        ProductTypeInfo typeInfo = ServiceProvider.Instance <ITypeService> .Create.GetType(prodata.TypeId);
                        string colorAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.ColorAlias)) ? SpecificationType.Color.ToDescription() : typeInfo.ColorAlias;
                        string sizeAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.SizeAlias)) ? SpecificationType.Size.ToDescription() : typeInfo.SizeAlias;
                        string versionAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.VersionAlias)) ? SpecificationType.Version.ToDescription() : typeInfo.VersionAlias;

                        var itemrefund = orderRefunds.Where(or => or.OrderItemId == a.Id).FirstOrDefault(d => d.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund);
                        int?itemrefstate = (itemrefund == null ? null : (int?)itemrefund.SellerAuditStatus);
                        itemrefstate = (itemrefstate > 4 ? (int?)itemrefund.ManagerConfirmStatus : itemrefstate);

                        return new
                        {
                            productId = a.ProductId,
                            productName = a.ProductName,
                            image = Core.HimallIO.GetRomoteProductSizeImage(a.ThumbnailsUrl, 1, (int)Himall.CommonModel.ImageSize.Size_350),
                            count = a.Quantity,
                            price = a.SalePrice,
                            Unit = prodata == null ? "" : prodata.MeasureUnit,
                            color = a.Color,
                            size = a.Size,
                            version = a.Version,
                            ColorAlias = colorAlias,
                            SizeAlias = sizeAlias,
                            VersionAlias = versionAlias,
                            RefundStats = itemrefstate,
                            OrderRefundId = (itemrefund == null ? 0 : itemrefund.Id),
                            EnabledRefundAmount = a.EnabledRefundAmount
                        };
                    }),
                    RefundStats = ordrefstate,
                    OrderRefundId = _ordrefobj.Id,
                    HasExpressStatus = !string.IsNullOrWhiteSpace(item.ShipOrderNumber),
                    HasAppendComment = HasAppendComment(item),
                    Invoice = item.InvoiceType.ToDescription(),
                    InvoiceValue = (int)item.InvoiceType,
                    InvoiceContext = item.InvoiceContext,
                    InvoiceTitle = item.InvoiceTitle,
                    PaymentType = item.PaymentType.ToDescription(),
                    PaymentTypeValue = (int)item.PaymentType,
                    CanRefund = (item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.WaitDelivery || item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.WaitSelfPickUp) &&
                                !item.RefundStats.HasValue && item.PaymentType != Himall.Model.OrderInfo.PaymentTypes.CashOnDelivery && item.PaymentType != Himall.Model.OrderInfo.PaymentTypes.None &&
                                (item.FightGroupCanRefund == null || item.FightGroupCanRefund == true) && ordrefstate.GetValueOrDefault().Equals(0)
                });
            });

            return(Json(new { Success = "true", AllOrderCounts = allOrderCounts, WaitingForComments = waitingForComments, WaitingForRecieve = waitingForRecieve, WaitingForPay = waitingForPay, Orders = result }));
        }
Example #15
0
        /// <summary>
        /// 订单视图列表数据
        /// 多表复杂视图通过db实现如存储过程
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public IEnumerable<Order> GetByQuery(OrderQuery query)
        {
            IEnumerable<Order> list = base.DataRepository.Get<Order>("SELECT * FROM EPORDER WHERE ProductId=@productId", new {ProductId = query.ProductId});

            return list;
        }
Example #16
0
        public object GetOrders(int?status, int pageIndex, int pageSize = 8)
        {
            CheckUserLogin();
            IShopAppletService iShopAppletService = ServiceProvider.Instance <IShopAppletService> .Create;
            var orderService = ServiceProvider.Instance <IOrderService> .Create;
            var allOrders    = orderService.GetTopOrders(int.MaxValue, CurrentUser.Id);

            //待评价
            var queryModelAll = new OrderQuery()
            {
                Status    = OrderInfo.OrderOperateStatus.Finish,
                UserId    = CurrentUser.Id,
                PageSize  = int.MaxValue,
                PageNo    = 1,
                Commented = false
            };
            var allOrderCounts     = allOrders.Count();
            var waitingForComments = orderService.GetOrders <OrderInfo>(queryModelAll).Total;
            var waitingForRecieve  = allOrders.Count(item => item.OrderStatus == OrderInfo.OrderOperateStatus.WaitReceiving); //获取待收货订单数
            var waitingForPay      = allOrders.Count(item => item.OrderStatus == OrderInfo.OrderOperateStatus.WaitPay);       //获取待支付订单数

            if (status.HasValue && status == 0)
            {
                status = null;
            }
            var queryModel = new OrderQuery()
            {
                Status   = (OrderInfo.OrderOperateStatus?)status,
                UserId   = CurrentUser.Id,
                PageSize = pageSize,
                PageNo   = pageIndex
            };

            if (queryModel.Status.HasValue && queryModel.Status.Value == OrderInfo.OrderOperateStatus.WaitReceiving)
            {
                if (queryModel.MoreStatus == null)
                {
                    queryModel.MoreStatus = new List <OrderInfo.OrderOperateStatus>()
                    {
                    };
                }
                queryModel.MoreStatus.Add(OrderInfo.OrderOperateStatus.WaitSelfPickUp);
            }
            if (status.GetValueOrDefault() == (int)OrderInfo.OrderOperateStatus.Finish)
            {
                queryModel.Commented = false;//只查询未评价的订单
            }
            ObsoletePageModel <OrderInfo> orders = orderService.GetOrders <OrderInfo>(queryModel);
            var productService     = ServiceProvider.Instance <IProductService> .Create;
            var vshopService       = ServiceProvider.Instance <IVShopService> .Create;
            var orderRefundService = ServiceProvider.Instance <IRefundService> .Create;
            var orderItems         = OrderApplication.GetOrderItemsByOrderId(orders.Models.Select(p => p.Id));
            var orderRefunds       = OrderApplication.GetOrderRefunds(orderItems.Select(p => p.Id));
            var result             = orders.Models.ToArray().Select(item =>
            {
                if (item.OrderStatus >= OrderInfo.OrderOperateStatus.WaitDelivery)
                {
                    orderService.CalculateOrderItemRefund(item.Id);
                }
                var vshop      = vshopService.GetVShopByShopId(item.ShopId);
                var _ordrefobj = orderRefundService.GetOrderRefundByOrderId(item.Id) ?? new OrderRefundInfo {
                    Id = 0
                };
                if (item.OrderStatus != OrderInfo.OrderOperateStatus.WaitDelivery && item.OrderStatus != OrderInfo.OrderOperateStatus.WaitSelfPickUp)
                {
                    _ordrefobj = new OrderRefundInfo {
                        Id = 0
                    };
                }
                int?ordrefstate = (_ordrefobj == null ? null : (int?)_ordrefobj.SellerAuditStatus);
                ordrefstate     = (ordrefstate > 4 ? (int?)_ordrefobj.ManagerConfirmStatus : ordrefstate);
                //参照PC端会员中心的状态描述信息
                string statusText = item.OrderStatus.ToDescription();
                if (item.OrderStatus == OrderInfo.OrderOperateStatus.WaitDelivery || item.OrderStatus == OrderInfo.OrderOperateStatus.WaitSelfPickUp)
                {
                    if (ordrefstate.HasValue && ordrefstate != 0 && ordrefstate != 4)
                    {
                        statusText = "退款中";
                    }
                }
                var shopInfo = ServiceProvider.Instance <IShopService> .Create.GetShop(item.ShopId);
                if (shopInfo != null)
                {
                    shopInfo.Logo = Himall.Core.HimallIO.GetRomoteImagePath(shopInfo.Logo);
                    //是否可退货、退款
                    bool IsShowReturn = (item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.WaitDelivery || item.OrderStatus == Himall.Model.OrderInfo.OrderOperateStatus.WaitSelfPickUp) &&
                                        !item.RefundStats.HasValue && item.PaymentType != Himall.Model.OrderInfo.PaymentTypes.CashOnDelivery && item.PaymentType != Himall.Model.OrderInfo.PaymentTypes.None &&
                                        (item.FightGroupCanRefund == null || item.FightGroupCanRefund == true) && ordrefstate.GetValueOrDefault().Equals(0);
                    return(new
                    {
                        PayCode = item.PayCode,
                        ShopId = item.ShopId,
                        ShopLogo = shopInfo.Logo,
                        OrderAmount = item.OrderAmount,
                        OrderId = item.Id,
                        StatusText = statusText,
                        Status = item.OrderStatus,
                        orderType = item.OrderType,
                        orderTypeName = item.OrderType.ToDescription(),
                        shopname = item.ShopName,
                        vshopId = vshop == null ? 0 : vshop.Id,
                        Amount = item.OrderTotalAmount.ToString("F2"),
                        Quantity = item.OrderProductQuantity,
                        commentCount = item.OrderCommentInfo.Count(),
                        pickupCode = item.PickupCode,
                        EnabledRefundAmount = item.OrderEnabledRefundAmount,
                        LineItems = item.OrderItemInfo.Select(a =>
                        {
                            var prodata = productService.GetProduct(a.ProductId);
                            ProductTypeInfo typeInfo = ServiceProvider.Instance <ITypeService> .Create.GetType(prodata.TypeId);
                            string colorAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.ColorAlias)) ? SpecificationType.Color.ToDescription() : typeInfo.ColorAlias;
                            string sizeAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.SizeAlias)) ? SpecificationType.Size.ToDescription() : typeInfo.SizeAlias;
                            string versionAlias = (typeInfo == null || string.IsNullOrEmpty(typeInfo.VersionAlias)) ? SpecificationType.Version.ToDescription() : typeInfo.VersionAlias;
                            var itemStatusText = "";
                            var itemrefund = orderRefunds.Where(or => or.OrderItemId == a.Id).FirstOrDefault(d => d.RefundMode != OrderRefundInfo.OrderRefundMode.OrderRefund);
                            int?itemrefstate = (itemrefund == null ? 0 : (int?)itemrefund.SellerAuditStatus);
                            itemrefstate = (itemrefstate > 4 ? (int?)itemrefund.ManagerConfirmStatus : itemrefstate);
                            if (itemrefund != null)
                            {     //默认为商家处理进度
                                if (itemrefstate == 4)
                                { //商家拒绝
                                    itemStatusText = "";
                                }
                                else
                                {
                                    itemStatusText = "售后处理中";
                                }
                            }
                            if (itemrefstate > 4)
                            {//如果商家已经处理完,则显示平台处理进度
                                if (itemrefstate == 7)
                                {
                                    itemStatusText = "退款成功";
                                }
                            }

                            var activeModel = ServiceProvider.Instance <IFightGroupService> .Create.GetActiveByProId(a.ProductId);

                            return new
                            {
                                Status = itemrefstate,
                                StatusText = itemStatusText,
                                Id = activeModel.Id,
                                productId = a.ProductId,
                                Name = a.ProductName,
                                Image = activeModel.ProductDefaultImage,
                                Amount = a.Quantity,
                                Price = a.SalePrice,
                                Unit = prodata == null ? "" : prodata.MeasureUnit,
                                SkuText = colorAlias + ":" + a.Color + " " + sizeAlias + ":" + a.Size + " " + versionAlias + ":" + a.Version,
                                color = a.Color,
                                size = a.Size,
                                version = a.Version,
                                ColorAlias = colorAlias,
                                SizeAlias = sizeAlias,
                                VersionAlias = versionAlias,
                                RefundStats = itemrefstate,
                                OrderRefundId = (itemrefund == null ? 0 : itemrefund.Id),
                                EnabledRefundAmount = a.EnabledRefundAmount,
                                IsShowRefund = IsShowReturn,
                                IsShowAfterSale = IsShowReturn,
                                SalePrice = iShopAppletService.GetSkuSalePrice(a.SkuId, a.ProductId)
                            };
                        }),
                        RefundStats = ordrefstate,
                        OrderRefundId = _ordrefobj.Id,
                        IsShowLogistics = !string.IsNullOrWhiteSpace(item.ShipOrderNumber),
                        ShipOrderNumber = item.ShipOrderNumber,
                        IsShowCreview = item.OrderStatus == OrderInfo.OrderOperateStatus.Finish,
                        IsShowPreview = false,
                        Invoice = item.InvoiceType.ToDescription(),
                        InvoiceValue = (int)item.InvoiceType,
                        InvoiceContext = item.InvoiceContext,
                        InvoiceTitle = item.InvoiceTitle,
                        PaymentType = item.PaymentType.ToDescription(),
                        PaymentTypeValue = (int)item.PaymentType,
                        IsShowClose = (item.OrderStatus == OrderInfo.OrderOperateStatus.WaitPay),
                        IsShowFinishOrder = (item.OrderStatus == OrderInfo.OrderOperateStatus.WaitReceiving),
                        IsShowRefund = IsShowReturn,
                        IsShowReturn = IsShowReturn,
                        IsShowTakeCodeQRCode = !string.IsNullOrWhiteSpace(item.PickupCode),
                        OrderDate = item.OrderDate,
                        SupplierId = 0,
                        ShipperName = string.Empty,
                        StoreName = item.ShopName,
                        IsShowCertification = false,
                        CreviewText = !HasAppendComment(item) ? "评价订单" : "追加评论",
                        ProductCommentPoint = 0
                    });
                }
                else
                {
                    return(null);
                }
            });

            return(Json(new { Status = "OK", AllOrderCounts = allOrderCounts, WaitingForComments = waitingForComments, WaitingForRecieve = waitingForRecieve, WaitingForPay = waitingForPay, Data = result }));
        }
Example #17
0
        private static string BuildOrdersQuery(OrderQuery query)
        {
            if (null == query)
            {
                throw new ArgumentNullException("query");
            }
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("SELECT OrderId FROM Ecshop_Orders WHERE 1 = 1 ", new object[0]);
            if (query.OrderId != string.Empty && query.OrderId != null)
            {
                stringBuilder.AppendFormat(" AND OrderId = '{0}'", DataHelper.CleanSearchString(query.OrderId));
            }
            else
            {
                if (query.PaymentType.HasValue)
                {
                    stringBuilder.AppendFormat(" AND PaymentTypeId = '{0}'", query.PaymentType.Value);
                }
                if (query.GroupBuyId.HasValue)
                {
                    stringBuilder.AppendFormat(" AND GroupBuyId = {0}", query.GroupBuyId.Value);
                }
                if (!string.IsNullOrEmpty(query.ProductName))
                {
                    stringBuilder.AppendFormat(" AND OrderId IN (SELECT OrderId FROM Ecshop_OrderItems WHERE ItemDescription LIKE '%{0}%')", DataHelper.CleanSearchString(query.ProductName));
                }
                if (!string.IsNullOrEmpty(query.ShipTo))
                {
                    stringBuilder.AppendFormat(" AND ShipTo LIKE '%{0}%'", DataHelper.CleanSearchString(query.ShipTo));
                }
                if (query.RegionId.HasValue)
                {
                    stringBuilder.AppendFormat(" AND ShippingRegion like '%{0}%'", DataHelper.CleanSearchString(RegionHelper.GetFullRegion(query.RegionId.Value, ",")));
                }
                if (!string.IsNullOrEmpty(query.UserName))
                {
                    stringBuilder.AppendFormat(" AND  UserName  = '******' ", DataHelper.CleanSearchString(query.UserName));
                }
                if (query.Status == OrderStatus.History)
                {
                    stringBuilder.AppendFormat(" AND OrderStatus != {0} AND OrderStatus != {1} AND OrderStatus != {2} AND OrderDate < '{3}'", new object[]
                    {
                        1,
                        4,
                        9,
                        DateTime.Now.AddMonths(-3)
                    });
                }
                else
                {
                    if (query.Status == OrderStatus.BuyerAlreadyPaid)
                    {
                        stringBuilder.AppendFormat(" AND (OrderStatus = {0} OR (OrderStatus = 1 AND Gateway = 'ecdev.plugins.payment.podrequest'))", (int)query.Status);
                    }
                    else
                    {
                        if (query.Status != OrderStatus.All)
                        {
                            stringBuilder.AppendFormat(" AND OrderStatus = {0}", (int)query.Status);
                        }
                    }
                }
                if (query.StartDate.HasValue)
                {
                    stringBuilder.AppendFormat(" AND datediff(dd,'{0}',OrderDate)>=0", DataHelper.GetSafeDateTimeFormat(query.StartDate.Value));
                }
                if (query.EndDate.HasValue)
                {
                    stringBuilder.AppendFormat(" AND datediff(dd,'{0}',OrderDate)<=0", DataHelper.GetSafeDateTimeFormat(query.EndDate.Value));
                }
                if (query.ShippingModeId.HasValue)
                {
                    stringBuilder.AppendFormat(" AND ShippingModeId = {0}", query.ShippingModeId.Value);
                }
                if (query.IsPrinted.HasValue)
                {
                    stringBuilder.AppendFormat(" AND ISNULL(IsPrinted, 0)={0}", query.IsPrinted.Value);
                }
            }
            if (!string.IsNullOrEmpty(query.SortBy))
            {
                stringBuilder.AppendFormat(" ORDER BY {0} {1}", DataHelper.CleanSearchString(query.SortBy), query.SortOrder.ToString());
            }
            return(stringBuilder.ToString());
        }
Example #18
0
        private OrderQuery GetOrderQuery()
        {
            int        num3;
            int        num4;
            OrderQuery query = new OrderQuery();

            query.wid = this.wid;
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["OrderId"]))
            {
                query.OrderId = Globals.UrlDecode(this.Page.Request.QueryString["OrderId"]);
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["ProductName"]))
            {
                query.ProductName = Globals.UrlDecode(this.Page.Request.QueryString["ProductName"]);
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["ShipTo"]))
            {
                query.ShipTo = Globals.UrlDecode(this.Page.Request.QueryString["ShipTo"]);
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["UserName"]))
            {
                query.UserName = Globals.UrlDecode(this.Page.Request.QueryString["UserName"]);
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["StartDate"]))
            {
                query.StartDate = new DateTime?(DateTime.Parse(this.Page.Request.QueryString["StartDate"]));
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["GroupBuyId"]))
            {
                query.GroupBuyId = new int?(int.Parse(this.Page.Request.QueryString["GroupBuyId"]));
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["EndDate"]))
            {
                query.EndDate = new DateTime?(DateTime.Parse(this.Page.Request.QueryString["EndDate"]).AddMilliseconds(86399.0));
            }
            query.OrderItemsStatus = OrderStatus.ApplyForRefund;
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["IsPrinted"]))
            {
                int num = 0;
                if (int.TryParse(this.Page.Request.QueryString["IsPrinted"], out num))
                {
                    query.IsPrinted = new int?(num);
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["ModeId"]))
            {
                int num2 = 0;
                if (int.TryParse(this.Page.Request.QueryString["ModeId"], out num2))
                {
                    query.ShippingModeId = new int?(num2);
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["region"]) && int.TryParse(this.Page.Request.QueryString["region"], out num3))
            {
                query.RegionId = new int?(num3);
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["UserId"]) && int.TryParse(this.Page.Request.QueryString["UserId"], out num4))
            {
                query.UserId = new int?(num4);
            }
            int result = 0;

            if (int.TryParse(base.Request.QueryString["orderType"], out result) && (result > 0))
            {
                query.Type = new OrderQuery.OrderType?((OrderQuery.OrderType)result);
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["StoreName"]))
            {
                query.StoreName = Globals.UrlDecode(this.Page.Request.QueryString["StoreName"]);
            }
            query.PageIndex = this.pager.PageIndex;
            query.PageSize  = this.pager.PageSize;
            query.SortBy    = "OrderDate";
            query.SortOrder = SortAction.Desc;
            return(query);
        }
Example #19
0
        /// <summary>
        /// 定制化查询
        /// 类型:微信,线上
        /// 分页情况
        /// </summary>
        /// <param name="MOQuery"></param>
        /// <returns></returns>
        public ActionResult AjaxMemberOrder(MemberSaleOrderVMQuery MOQuery)
        {
            var svc  = Service;
            var OSvc = ORSService;

            Collection <MemberSaleOrderVM> MasterModel = new Collection <MemberSaleOrderVM>();
            long   id          = -1;
            string OrderSource = "wechat";

            //获取查看用户编号
            if (Request.Form["FanId"] != null)
            {
                if (!long.TryParse(Request.Form["FanId"].ToString(), out id))
                {
                    id = -1;
                }
            }
            //获取订单来源
            //wechat--web
            if (Request.Form["OrderSource"] != null)
            {
                OrderSource = Request.Form["OrderSource"].ToString();
            }

            #region 微信端订单
            if (OrderSource == "wechat")
            {
                var WeChatOrderQuery = new SaleOrderQuery
                {
                    FanIDs         = new long[] { id },
                    Take           = PageSize,
                    Skip           = MOQuery.Skip,
                    OrderField     = "CreatedAt",
                    OrderDirection = OrderDirection.Asc
                };
                var WeChatOrderList = svc.SelectOrEmpty(WeChatOrderQuery);
                if (WeChatOrderList != null && WeChatOrderList.Any())
                {
                    MemberSaleOrderVM ItemModel = new MemberSaleOrderVM();
                    var DMetholds = GetDeliveryMethods();
                    foreach (var item in WeChatOrderList)
                    {
                        ItemModel                  = new MemberSaleOrderVM();
                        ItemModel.Code             = item.Code;
                        ItemModel.Amount           = item.Amount;
                        ItemModel.CreateTime       = item.CreatedAt;
                        ItemModel.DeliveryFee      = item.DeliveryFee;
                        ItemModel.DeliveryCode     = item.DeliveryCode;
                        ItemModel.DeliveryMethodID = item.DeliveryMethodID ?? -1;
                        foreach (var DItem in DMetholds)
                        {
                            if (DItem.ID == ItemModel.DeliveryMethodID)
                            {
                                ItemModel.DeliveryMethodName = DItem.Name;
                                break;
                            }
                        }
                        ItemModel.Status      = item.State ?? -1;
                        ItemModel.StatusName  = ((OrderState)ItemModel.Status).GetDescription();
                        ItemModel.OrderSource = "微信商城";

                        MasterModel.Add(ItemModel);
                    }
                }

                ViewData["Pagination"] = Pagination.FromQuery(WeChatOrderQuery);
            }
            #endregion

            #region 线上商城订单

            else if (OrderSource == "web")
            {
                var relatedQuery = new MemberRelatedQuery
                {
                    FanIDs = new long[] { id }
                };
                var relatedMember = svc.SelectOrEmpty(relatedQuery).FirstOrDefault();
                //如果有关联,则获取关联信息
                if (relatedMember != null)
                {
                    //临时记录线上商城订单信息
                    //线上商城订单信息需要拼接,故而需要临时信息
                    Collection <MemberSaleOrderVM> WebMasterModel = new Collection <MemberSaleOrderVM>();

                    var WebOrderQuery = new OrderQuery
                    {
                        CustomerIDs    = new long[] { relatedMember.CustomerID ?? -1 },
                        Take           = PageSize,
                        Skip           = MOQuery.Skip,
                        OrderField     = "CreatedAt",
                        OrderDirection = OrderDirection.Asc
                    };
                    var WebOrderList = OSvc.SelectOrEmpty(WebOrderQuery);
                    if (WebOrderList != null && WebOrderList.Any())
                    {
                        MemberSaleOrderVM ItemModel = new MemberSaleOrderVM();
                        int    idCount = WebOrderList.Count();
                        long[] ids     = new long[idCount];
                        int    idIndex = 0;
                        foreach (var item in WebOrderList)
                        {
                            ItemModel             = new MemberSaleOrderVM();
                            ItemModel.Code        = item.Code;
                            ItemModel.CreateTime  = item.CreatedAt;
                            ItemModel.OrderSource = "在线商城";
                            ItemModel.OrderId     = item.ID;
                            ids[idIndex++]        = ItemModel.OrderId ?? -1;

                            WebMasterModel.Add(ItemModel);
                        }

                        var WebFundQuery = new OrderFundQuery
                        {
                            IDs = ids
                        };
                        var WebFundList = OSvc.SelectOrEmpty(WebFundQuery);
                        if (WebFundList != null)
                        {
                            for (int i = 0; i < WebMasterModel.Count(); i++)
                            {
                                for (int j = 0; j < WebFundList.Count(); j++)
                                {
                                    if (WebMasterModel[i].OrderId == WebFundList.ToList()[j].ID)
                                    {
                                        WebMasterModel[i].Amount      = WebFundList.ToList()[j].PayableAmount;
                                        WebMasterModel[i].DeliveryFee = WebFundList.ToList()[j].DeliveryFee;
                                    }
                                }

                                MasterModel.Add(WebMasterModel[i]);
                            }
                        }
                    }

                    ViewData["Pagination"] = Pagination.FromQuery(WebOrderQuery);
                }
                else//保证在未绑定的情况下,页面的一致性
                {
                    var WebOrderQuery = new OrderQuery
                    {
                        CustomerIDs = new long[] { -1 },
                        Take        = PageSize,
                    };

                    ViewData["Pagination"] = Pagination.FromQuery(WebOrderQuery);
                }
            }

            #endregion

            ViewData["CId"] = id;

            return(View("Member/MemberOrderList", MasterModel));
        }
Example #20
0
 public abstract DbQueryResult GetSendGoodsOrders(OrderQuery query);
Example #21
0
        /// <summary>
        /// 根据微信端客户信息获取绑定的主系统信息(如果已绑定)
        /// </summary>
        /// <param name="FanList">微信端客户列表</param>
        /// <returns>会员完整信息</returns>
        private ICollection <MemberMasterVM> AttachMemberWebInfo(IEnumerable <Fan> FanList)
        {
            Collection <MemberMasterVM> VM = new Collection <MemberMasterVM>();
            var OSvc = ORSService;
            var svc  = Service;

            if (FanList != null && FanList.Any())
            {
                #region 微信端订单数量信息

                var    idSets = FanList.Select(c => c.ID ?? 0);
                long[] fanids = new long[idSets.Count()];
                for (int i = 0; i < fanids.Length; i++)
                {
                    fanids[i] = idSets.ToList()[i];
                }

                //获取微信端客户订单情况
                var weChatOrderQuery = new SaleOrderQuery
                {
                    FanIDs = fanids,
                    State  = (int)OrderState.Finished
                };
                var weChatOrder = svc.SelectOrEmpty(weChatOrderQuery);

                #endregion

                #region 获取微信端客户绑定主系统情况

                var relateQuery = new MemberRelatedQuery
                {
                    FanIDs = fanids
                };

                //memberSet 微信端和主系统绑定记录 id-fanid-customerid
                var memberSet = svc.SelectOrEmpty(relateQuery).OrderBy(c => c.FanID);

                #endregion

                #region 绑定信息不为空,则获取对应绑定的主系统上的基本信息

                if (memberSet != null && memberSet.Any())
                {
                    var memberids = memberSet.Select(c => c.CustomerID ?? 0).Distinct().OfType <long>().ToArray();

                    var CIQuery = new CustomerIdentityQuery
                    {
                        CustomerIDs = memberids
                    };
                    //CustomerIdentity表 记录不同的登陆Code
                    var CIdentity = OSvc.SelectOrEmpty(CIQuery);//.OrderBy(c => c.CustomerID);

                    //主系统订单情况
                    var WebOrderQuery = new OrderQuery
                    {
                        CustomerIDs = memberids
                    };
                    var webOrder = OSvc.SelectOrEmpty(WebOrderQuery);

                    //主系统会员积分信息
                    //CustomerBalance表和Customer表一一对应
                    //建立在这个前提下,下文直接以关联下标代替balance下标信息
                    var balanceQuery = new CustomerBalanceQuery
                    {
                        IDs = memberids
                    };
                    var balanceSets = OSvc.SelectOrEmpty(balanceQuery);

                    MemberMasterVM item         = new MemberMasterVM();
                    int            webCount     = 0;//线上登陆方式遍历计数
                    int            relatedCount = memberSet.Count();
                    long           _FanId       = -1;
                    long           _CustomerId  = -1;

                    if (CIdentity != null && CIdentity.Any())
                    {
                        webCount = CIdentity.Count();
                    }
                    for (int i = 0; i < FanList.Count(); i++)
                    {
                        item = new MemberMasterVM();
                        item.CustomerCode = new Collection <string>();
                        //微信端基本信息
                        item.WeChatMember = FanList.ToList()[i];
                        _FanId            = item.WeChatMember.ID ?? -1;

                        var relatedItem = memberSet.Where(c => c.FanID == _FanId).FirstOrDefault();
                        _CustomerId = -1;
                        if (relatedItem != null)
                        {
                            _CustomerId = relatedItem.CustomerID ?? -1;
                        }

                        //微信端订单数量信息
                        item.WeChatOrderCount = GetWechatOrderCount(weChatOrder, _FanId);

                        //主系统订单数量信息
                        item.WebOrderCount = GetWebOrderCount(webOrder, _CustomerId);

                        //补齐系统编号到八位,显示用
                        item.DisplayID = string.Format("{0:D8}", item.WeChatMember.ID ?? 0);

                        //主系统联名登陆信息的获取----一并获取积分信息
                        item.CustomerCode = GetIdentities(CIdentity, _CustomerId);

                        //积分信息
                        item.WebCreadit = GetCredits(balanceSets, _CustomerId);

                        VM.Add(item);
                    }
                }

                #endregion

                #region 绑定信息为空,则直接将微信端用户信息绑定返回

                else
                {
                    MemberMasterVM item = new MemberMasterVM();
                    for (int i = 0; i < FanList.Count(); i++)
                    {
                        item = new MemberMasterVM();
                        //微信端用户基本信息
                        item.WeChatMember = FanList.ToList()[i];

                        //微信端订单数量信息
                        item.WeChatOrderCount = GetWechatOrderCount(weChatOrder, item.WeChatMember.ID ?? -1);

                        //补齐系统编号到八位,显示用
                        item.DisplayID = string.Format("{0:D8}", item.WeChatMember.ID ?? 0);

                        //补齐线上默认信息
                        item.CustomerCode = new Collection <string>();
                        item.CustomerCode.Add("--");
                        item.WebCreadit    = 0;
                        item.WebOrderCount = 0;

                        VM.Add(item);
                    }
                }

                #endregion

                return(VM);
            }
            else
            {
                return(null);
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            string        s              = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
            string        str2           = "";
            string        str3           = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
            string        str4           = "";
            SiteSettings  masterSettings = SettingsManager.GetMasterSettings(false);
            string        format         = "<trade><Oid>{0}</Oid><SellerUid>{1}</SellerUid><BuyerNick>{2}</BuyerNick><BuyerEmail>{3}</BuyerEmail><ReceiverName>{4}</ReceiverName><ReceiverState>{5}</ReceiverState><ReceiverCity>{6}</ReceiverCity><ReceiverDistrict>{7}</ReceiverDistrict><ReceiverAddress>{8}</ReceiverAddress><ReceiverZip>{9}</ReceiverZip><ReceiverMobile>{10}</ReceiverMobile><ReceiverPhone>{11}</ReceiverPhone><BuyerMemo>{12}</BuyerMemo><OrderMark>{13}</OrderMark><SellerMemo>{14}</SellerMemo><Nums>{15}</Nums><Price>{16}</Price><Payment>{17}</Payment><PostFee>{18}</PostFee><DiscountFee>{19}</DiscountFee><AdjustFee>{20}</AdjustFee><PaymentTs>{21}</PaymentTs><SentTs>{22}</SentTs><RefundStatus>{23}</RefundStatus><RefundAmount>{24}</RefundAmount><RefundRemark>{25}</RefundRemark><Status>{26}</Status><orders list=\"{27}\">{28}</orders></trade>";
            string        orderitemfomat = "<order><Tid>{0}</Tid><Oid>{1}</Oid><GoodsIid>{2}</GoodsIid><Title>{3}</Title><OuterId>{4}</OuterId><SKUContent>{5}</SKUContent><Nums>{6}</Nums><Price>{7}</Price><Payment>{8}</Payment></order>";
            StringBuilder builder        = new StringBuilder();

            str2 = context.Request.QueryString["action"].ToString();
            string sign      = context.Request.Form["sign"];
            string checkCode = masterSettings.CheckCode;
            string str9      = context.Request.Form["format"];

            new Dictionary <string, string>();
            SortedDictionary <string, string> tmpParas = new SortedDictionary <string, string>();

            try
            {
                string str15;
                string str17;
                string str20;
                if (string.IsNullOrEmpty(str2))
                {
                    goto Label_07D6;
                }
                string str22 = str2;
                if (str22 == null)
                {
                    goto Label_07B9;
                }
                if (!(str22 == "tradelist"))
                {
                    if (str22 == "tradedetails")
                    {
                        goto Label_0336;
                    }
                    if (str22 == "send")
                    {
                        goto Label_046D;
                    }
                    if (str22 == "mark")
                    {
                        goto Label_0613;
                    }
                    goto Label_07B9;
                }
                OrderQuery query2 = new OrderQuery();
                query2.PageSize = 100;
                OrderQuery query        = query2;
                int        totalrecords = 0;
                string     str10        = context.Request.Form["status"].Trim();
                string     str11        = context.Request.Form["buyernick"].Trim();
                string     str12        = context.Request.Form["pageindex"].Trim();
                string     str13        = context.Request.Form["starttime"].Trim();
                string     str14        = context.Request.Form["endtime"].Trim();
                if (!string.IsNullOrEmpty(str10) && (Convert.ToInt32(str10) >= 0))
                {
                    query.Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), str10, true);
                }
                else
                {
                    str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Empty_Error, "status");
                }
                if (!string.IsNullOrEmpty(str12) && (Convert.ToInt32(str12) > 0))
                {
                    query.PageIndex = Convert.ToInt32(str12);
                }
                else
                {
                    str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Empty_Error, "pageindex");
                }
                if (string.IsNullOrEmpty(str4))
                {
                    tmpParas.Add("status", str10);
                    tmpParas.Add("buyernick", str11);
                    tmpParas.Add("pageindex", str12);
                    tmpParas.Add("starttime", str13);
                    tmpParas.Add("endtime", str14);
                    tmpParas.Add("format", str9);
                    if (APIHelper.CheckSign(tmpParas, checkCode, sign))
                    {
                        if (!string.IsNullOrEmpty(str11))
                        {
                            query.UserName = str11;
                        }
                        if (!string.IsNullOrEmpty(str13))
                        {
                            query.StartDate = new DateTime?(Convert.ToDateTime(str13));
                        }
                        if (!string.IsNullOrEmpty(str14))
                        {
                            query.EndDate = new DateTime?(Convert.ToDateTime(str14));
                        }
                        builder.Append("<trade_get_response>");
                        builder.Append(this.GetOrderList(query, format, orderitemfomat, out totalrecords).ToString());
                        builder.Append("<totalrecord>" + totalrecords + "</totalrecord>");
                        builder.Append("</trade_get_response>");
                    }
                    else
                    {
                        str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Signature_Error, "sign");
                    }
                }
                else
                {
                    str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Empty_Error, "paramter");
                }
                goto Label_07C6;
Label_0336:
                str15 = "";
                if (!string.IsNullOrEmpty(context.Request.Form["tid"].Trim()))
                {
                    str15    = context.Request.Form["tid"].Trim();
                    tmpParas = new SortedDictionary <string, string>();
                    tmpParas.Add("tid", context.Request.Form["tid"]);
                    tmpParas.Add("format", str9);
                    if (APIHelper.CheckSign(tmpParas, checkCode, sign))
                    {
                        string str16 = context.Request.Form["tid"].Replace("\r\n", "\n");
                        if (!string.IsNullOrEmpty(str16))
                        {
                            str15 = str16;
                            OrderInfo orderInfo = OrderHelper.GetOrderInfo(str15);
                            builder.Append("<trade_get_response>");
                            builder.Append(this.GetOrderDetails(format, orderitemfomat, orderInfo).ToString());
                            builder.Append("</trade_get_response>");
                        }
                        else
                        {
                            str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Format_Eroor, "tid");
                        }
                    }
                    else
                    {
                        str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Signature_Error, "signature");
                    }
                }
                else
                {
                    str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Empty_Error, "tid");
                }
                goto Label_07C6;
Label_046D:
                str17 = context.Request.Form["tid"].Trim();
                string str18 = context.Request.Form["out_sid"].Trim();
                string str19 = context.Request.Form["company_code"].Trim();
                if ((!string.IsNullOrEmpty(str17) && !string.IsNullOrEmpty(str19)) && !string.IsNullOrEmpty(str18))
                {
                    tmpParas.Add("tid", str17);
                    tmpParas.Add("out_sid", str18);
                    tmpParas.Add("company_code", str19);
                    tmpParas.Add("format", str9);
                    if (APIHelper.CheckSign(tmpParas, checkCode, sign))
                    {
                        ExpressCompanyInfo express = ExpressHelper.FindNodeByCode(str19);
                        if (!string.IsNullOrEmpty(express.Name))
                        {
                            ShippingModeInfo shippingModeByCompany = SalesHelper.GetShippingModeByCompany(express.Name);
                            OrderInfo        order = OrderHelper.GetOrderInfo(str17);
                            if (order != null)
                            {
                                ApiErrorCode messageenum = this.SendOrders(order, shippingModeByCompany, str18, express);
                                if (messageenum == ApiErrorCode.Success)
                                {
                                    builder.Append("<trade_get_response>");
                                    order = OrderHelper.GetOrderInfo(str17);
                                    builder.Append(this.GetOrderDetails(format, orderitemfomat, order).ToString());
                                    builder.Append("</trade_get_response>");
                                }
                                else
                                {
                                    str4 = MessageInfo.ShowMessageInfo(messageenum, "It");
                                }
                            }
                            else
                            {
                                str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.NoExists_Error, "tid");
                            }
                        }
                        else
                        {
                            str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.NoExists_Error, "company_code");
                        }
                    }
                    else
                    {
                        str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Signature_Error, "sign");
                    }
                }
                else
                {
                    str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Empty_Error, "paramters");
                }
                goto Label_07C6;
Label_0613:
                str20 = context.Request.Form["order_mark"].Trim();
                string str21 = context.Request.Form["seller_memo"].Trim();
                if ((!string.IsNullOrEmpty(context.Request.Form["tid"].Trim()) && !string.IsNullOrEmpty(str20)) && !string.IsNullOrEmpty(str21))
                {
                    if ((Convert.ToInt32(str20) > 0) && (Convert.ToInt32(str20) < 7))
                    {
                        str15 = context.Request.Form["tid"].Trim();
                        tmpParas.Add("tid", str15);
                        tmpParas.Add("order_mark", str20);
                        tmpParas.Add("seller_memo", str21);
                        tmpParas.Add("format", str9);
                        if (APIHelper.CheckSign(tmpParas, checkCode, sign))
                        {
                            OrderInfo info5 = OrderHelper.GetOrderInfo(str15);
                            info5.ManagerMark   = new OrderMark?((OrderMark)Enum.Parse(typeof(OrderMark), str20, true));
                            info5.ManagerRemark = Globals.HtmlEncode(str21);
                            if (OrderHelper.SaveRemarkAPI(info5))
                            {
                                builder.Append("<trade_get_response>");
                                builder.Append(this.GetOrderDetails(format, orderitemfomat, info5).ToString());
                                builder.Append("</trade_get_response>");
                            }
                            else
                            {
                                str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Paramter_Error, "save is failure ");
                            }
                        }
                        else
                        {
                            str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Signature_Error, "sign");
                        }
                    }
                    else
                    {
                        str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Format_Eroor, "order_mark");
                    }
                }
                else
                {
                    str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Empty_Error, "tid or order_mark or seller_memo");
                }
                goto Label_07C6;
Label_07B9:
                str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Paramter_Error, "paramters");
Label_07C6:
                s = s + builder.ToString();
                goto Label_07FB;
Label_07D6:
                str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Paramter_Error, "sign");
            }
            catch (Exception exception)
            {
                str4 = MessageInfo.ShowMessageInfo(ApiErrorCode.Unknown_Error, exception.Message);
            }
Label_07FB:
            if (!string.IsNullOrEmpty(str4))
            {
                s = str3 + str4;
            }
            context.Response.ContentType = "text/xml";
            context.Response.Write(s);
        }
Example #23
0
        private void UserPayOrder()
        {
            if (this.Order.OrderStatus == OrderStatus.Closed)
            {
                if (!this.hasNotify)
                {
                    OrderHelper.SetExceptionOrder(this.Order.OrderId, "支付异常,请联系买家退款");
                    Messenger.OrderException(Users.GetUser(this.Order.UserId), this.Order, "订单支付异常,请联系卖家退款.订单号:" + this.Order.OrderId);
                    TradeHelper.UpdateOrderGatewayOrderId(this.Order.OrderId, this.Order.GatewayOrderId);
                }
                this.ResponseReturn(true, "");
                return;
            }
            if (this.Order.OrderStatus == OrderStatus.BuyerAlreadyPaid)
            {
                this.ResponseReturn(true, "");
                return;
            }
            int maxCount        = 0;
            int yetOrderNum     = 0;
            int currentOrderNum = 0;

            if (this.Order.GroupBuyId > 0)
            {
                GroupBuyInfo groupBuy = TradeHelper.GetGroupBuy(this.Order.GroupBuyId);
                if (groupBuy != null && groupBuy.Status == GroupBuyStatus.UnderWay)
                {
                    yetOrderNum     = TradeHelper.GetOrderCount(this.Order.GroupBuyId);
                    currentOrderNum = this.Order.GetGroupBuyOerderNumber();
                    maxCount        = groupBuy.MaxCount;
                    if (maxCount < yetOrderNum + currentOrderNum)
                    {
                        this.ResponseReturn(true, "");
                        return;
                    }
                    goto IL_0197;
                }
                this.ResponseReturn(true, "");
                return;
            }
            goto IL_0197;
IL_0197:
            if (this.Order.CheckAction(OrderActions.BUYER_PAY) && TradeHelper.UpdateOrderStatus(this.Order))
            {
                Task.Factory.StartNew(delegate
                {
                    TradeHelper.UserPayOrder(this.Order, false, true);
                    try
                    {
                        if (this.Order.FightGroupId > 0)
                        {
                            VShopHelper.SetFightGroupSuccess(this.Order.FightGroupId);
                        }
                        if (this.Order.GroupBuyId > 0 && maxCount == yetOrderNum + currentOrderNum)
                        {
                            TradeHelper.SetGroupBuyEndUntreated(this.Order.GroupBuyId);
                        }
                        if (this.Order.ParentOrderId == "-1")
                        {
                            OrderQuery orderQuery           = new OrderQuery();
                            orderQuery.ParentOrderId        = this.Order.OrderId;
                            IList <OrderInfo> listUserOrder = MemberProcessor.GetListUserOrder(this.Order.UserId, orderQuery);
                            foreach (OrderInfo item in listUserOrder)
                            {
                                OrderHelper.OrderConfirmPaySendMessage(item);
                            }
                        }
                        else
                        {
                            OrderHelper.OrderConfirmPaySendMessage(this.Order);
                        }
                    }
                    catch (Exception ex)
                    {
                        IDictionary <string, string> dictionary = new Dictionary <string, string>();
                        dictionary.Add("ErrorMessage", ex.Message);
                        dictionary.Add("StackTrace", ex.StackTrace);
                        if (ex.InnerException != null)
                        {
                            dictionary.Add("InnerException", ex.InnerException.ToString());
                        }
                        if (ex.GetBaseException() != null)
                        {
                            dictionary.Add("BaseException", ex.GetBaseException().Message);
                        }
                        if (ex.TargetSite != (MethodBase)null)
                        {
                            dictionary.Add("TargetSite", ex.TargetSite.ToString());
                        }
                        dictionary.Add("ExSource", ex.Source);
                        Globals.AppendLog(dictionary, "支付更新订单收款记录或者消息通知时出错:" + ex.Message, "", "", "UserPay");
                    }
                    this.Order.OnPayment();
                });
                this.ResponseReturn(true, "");
            }
        }
Example #24
0
 public static int GetDistributorOrderCount(OrderQuery query)
 {
     return(new OrderDao().GetDistributorOrderCount(query));
 }
Example #25
0
        private string getOrderList(HttpContext context)
        {
            int num  = 0;
            int num2 = 0;

            num  = Convert.ToInt32(context.Request["PageSize"]);
            num2 = Convert.ToInt32(context.Request["Page"]);
            int    num3  = Convert.ToInt32(context.Request["OrderStatus"]);
            string text  = null;
            string text2 = null;

            if (!string.IsNullOrWhiteSpace(context.Request["Start_Modified"]))
            {
                text = context.Request["Start_Modified"];
            }
            if (!string.IsNullOrWhiteSpace(context.Request["End_Modified"]))
            {
                text2 = context.Request["End_Modified"];
            }
            OrderQuery orderQuery = new OrderQuery();

            switch (num3)
            {
            case 0:
                orderQuery.Status = OrderStatus.WaitBuyerPay;
                goto default;

            case 1:
                orderQuery.Status = OrderStatus.BuyerAlreadyPaid;
                goto default;

            case -1:
                return("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Order><Result>1</Result><OrderCount>0</OrderCount><OrderList></OrderList></Order>");

            default:
            {
                if (!string.IsNullOrEmpty(text) && !string.IsNullOrEmpty(text2))
                {
                    orderQuery.StartDate = DateTime.Parse(text);
                    orderQuery.EndDate   = DateTime.Parse(text2);
                }
                orderQuery.PageIndex  = num2;
                orderQuery.PageSize   = num;
                orderQuery.SupplierId = 0;
                DbQueryResult orders        = OrderHelper.GetOrders(orderQuery);
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                stringBuilder.Append("<Order>");
                stringBuilder.Append($"<OrderCount>{orders.TotalRecords}</OrderCount>");
                stringBuilder.Append("<Result>1</Result>");
                stringBuilder.Append("<Cause></Cause>");
                stringBuilder.Append($"<Page>{num2}</Page>");
                stringBuilder.Append("<OrderList>");
                DataTable data = orders.Data;
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    stringBuilder.Append(string.Format("<OrderNO>{0}</OrderNO>", data.Rows[i]["OrderId"]));
                }
                stringBuilder.Append("</OrderList>");
                stringBuilder.Append("</Order>");
                return(stringBuilder.ToString());
            }
            }
        }
Example #26
0
        public ActionResult Index(string orderDate, string keywords, string orderids, DateTime?startDateTime, DateTime?endDateTime, int?orderStatus, int pageNo = 1, int pageSize = 10)
        {
            OrderInfo.OrderOperateStatus?nullable;
            ViewBag.Grant = (object)null;
            if (!string.IsNullOrEmpty(orderids) && orderids.IndexOf(',') <= 0)
            {
                ViewBag.Grant = ServiceHelper.Create <IShopBonusService>().GetByOrderId(long.Parse(orderids));
            }
            DateTime?nullable1 = startDateTime;
            DateTime?nullable2 = endDateTime;

            if (!string.IsNullOrEmpty(orderDate) && orderDate.ToLower() != "all")
            {
                string lower = orderDate.ToLower();
                string str   = lower;
                if (lower != null)
                {
                    if (str == "threemonth")
                    {
                        nullable1 = new DateTime?(DateTime.Now.AddMonths(-3));
                    }
                    else if (str == "halfyear")
                    {
                        nullable1 = new DateTime?(DateTime.Now.AddMonths(-6));
                    }
                    else if (str == "year")
                    {
                        nullable1 = new DateTime?(DateTime.Now.AddYears(-1));
                    }
                    else if (str == "yearago")
                    {
                        nullable2 = new DateTime?(DateTime.Now.AddYears(-1));
                    }
                }
            }
            if (orderStatus.HasValue)
            {
                int?nullable3 = orderStatus;
                if ((nullable3.GetValueOrDefault() != 0 ? false : nullable3.HasValue))
                {
                    orderStatus = null;
                }
            }
            OrderQuery orderQuery = new OrderQuery()
            {
                StartDate = nullable1,
                EndDate   = nullable2
            };
            OrderQuery orderQuery1 = orderQuery;
            int?       nullable4   = orderStatus;

            if (nullable4.HasValue)
            {
                nullable = new OrderInfo.OrderOperateStatus?((OrderInfo.OrderOperateStatus)nullable4.GetValueOrDefault());
            }
            else
            {
                nullable = null;
            }
            orderQuery1.Status        = nullable;
            orderQuery.UserId         = new long?(base.CurrentUser.Id);
            orderQuery.SearchKeyWords = keywords;
            orderQuery.PageSize       = pageSize;
            orderQuery.PageNo         = pageNo;
            PageModel <OrderInfo> orders     = ServiceHelper.Create <IOrderService>().GetOrders <OrderInfo>(orderQuery, null);
            PagingInfo            pagingInfo = new PagingInfo()
            {
                CurrentPage  = pageNo,
                ItemsPerPage = pageSize,
                TotalItems   = orders.Total
            };

            ViewBag.pageInfo = pagingInfo;
            ViewBag.UserId   = base.CurrentUser.Id;
            SiteSettingsInfo  siteSettings     = ServiceHelper.Create <ISiteSettingService>().GetSiteSettings();
            IShopBonusService shopBonusService = ServiceHelper.Create <IShopBonusService>();

            ViewBag.SalesRefundTimeout = siteSettings.SalesReturnTimeout;
            List <OrderInfo>             list           = orders.Models.ToList();
            ICashDepositsService         create         = Instance <ICashDepositsService> .Create;
            IEnumerable <OrderListModel> orderListModel =
                from item in list
                select new OrderListModel()
            {
                Id                 = item.Id,
                ActiveType         = item.ActiveType,
                OrderType          = item.OrderType,
                Address            = item.Address,
                CellPhone          = item.CellPhone,
                CloseReason        = item.CloseReason,
                CommisTotalAmount  = item.CommisAmount,
                DiscountAmount     = item.DiscountAmount,
                ExpressCompanyName = item.ExpressCompanyName,
                FinishDate         = item.FinishDate,
                Freight            = item.Freight,
                GatewayOrderId     = item.GatewayOrderId,
                IntegralDiscount   = item.IntegralDiscount,
                UserId             = item.UserId,
                ShopId             = item.ShopId,
                ShopName           = item.ShopName,
                ShipTo             = item.ShipTo,
                OrderTotalAmount   = item.OrderTotalAmount,
                PaymentTypeName    = item.PaymentTypeName,
                OrderStatus        = item.OrderStatus,
                RefundStats        = item.RefundStats,
                OrderCommentInfo   = item.OrderCommentInfo,
                OrderDate          = item.OrderDate,
                OrderItemList      =
                    from oItem in item.OrderItemInfo
                    select new OrderItemListModel()
                {
                    ProductId              = oItem.ProductId,
                    Color                  = oItem.Color,
                    Size                   = oItem.Size,
                    Version                = oItem.Version,
                    ProductName            = oItem.ProductName,
                    ThumbnailsUrl          = oItem.ThumbnailsUrl,
                    SalePrice              = oItem.SalePrice,
                    SkuId                  = oItem.SkuId,
                    Quantity               = oItem.Quantity,
                    CashDepositsObligation = create.GetCashDepositsObligation(oItem.ProductId)
                },
                ReceiveBonus = shopBonusService.GetGrantByUserOrder(item.Id, CurrentUser.Id)
            };
            List <long> nums = (
                from d in list
                select d.Id).ToList();

            if (nums.Count > 0)
            {
                RefundQuery refundQuery = new RefundQuery()
                {
                    OrderId     = new long?(nums[0]),
                    MoreOrderId = nums,
                    PageNo      = 1,
                    PageSize    = list.Count
                };
                List <OrderRefundInfo> orderRefundInfos = (
                    from d in ServiceHelper.Create <IRefundService>().GetOrderRefunds(refundQuery).Models
                    where (int)d.RefundMode == 1
                    select d).ToList();

                if (orderRefundInfos.Count > 0)
                {
                    foreach (OrderRefundInfo orderRefundInfo in orderRefundInfos)
                    {
                        OrderInfo orderInfo = list.FirstOrDefault((OrderInfo d) => d.Id == orderRefundInfo.OrderId);
                        if (orderInfo == null)
                        {
                            continue;
                        }
                        orderInfo.RefundStats = (int)(orderRefundInfo.SellerAuditStatus);
                    }
                }
            }
            return(View(orderListModel.ToList()));
        }
Example #27
0
 public static DbQueryResult GetOrders(OrderQuery query)
 {
     return(SalesProvider.Instance().GetOrders(query));
 }
Example #28
0
 private void UserPayOrder()
 {
     if (this.Order.OrderStatus == OrderStatus.Closed)
     {
         OrderHelper.SetExceptionOrder(this.Order.OrderId, "支付异常,请联系买家退款");
         Messenger.OrderException(Users.GetUser(this.Order.UserId), this.Order, "订单支付异常,请联系卖家退款.订单号:" + this.Order.OrderId);
     }
     else if (this.Order.OrderStatus == OrderStatus.BuyerAlreadyPaid)
     {
         if (this.Order.FightGroupId > 0)
         {
             this.toFightGroupSuccess();
         }
         else
         {
             base.Response.Write(string.Format("<p style=\"font-size:16px;\">恭喜您,订单已成功完成支付:{0}</br>支付金额:{1}<br><a href=\"{2}\">查看订单</a></p>", this.OrderId, this.Amount.ToString("F"), this.GetReturnLink(this.Order.OrderSource)));
         }
     }
     else
     {
         int maxCount        = 0;
         int yetOrderNum     = 0;
         int currentOrderNum = 0;
         if (this.Order.GroupBuyId > 0)
         {
             GroupBuyInfo groupBuy = TradeHelper.GetGroupBuy(this.Order.GroupBuyId);
             if (groupBuy == null || groupBuy.Status != GroupBuyStatus.UnderWay)
             {
                 base.Response.Write($"<p style=\"font-size:16px;\">订单为团购订单,团购活动已结束,支付失败<br><a href=\"{this.GetReturnLink(this.Order.OrderSource)}\">查看订单</a></p>");
                 return;
             }
             yetOrderNum     = TradeHelper.GetOrderCount(this.Order.GroupBuyId);
             currentOrderNum = this.Order.GetGroupBuyOerderNumber();
             maxCount        = groupBuy.MaxCount;
             if (maxCount < yetOrderNum + currentOrderNum)
             {
                 base.Response.Write($"<p style=\"font-size:16px;\">订单为团购订单,订购数量超过订购总数,支付失败<br><a href=\"{this.GetReturnLink(this.Order.OrderSource)}\">查看订单</a></p>");
                 return;
             }
         }
         if (this.Order.CheckAction(OrderActions.BUYER_PAY) && TradeHelper.UpdateOrderStatus(this.Order))
         {
             Task.Factory.StartNew(delegate
             {
                 TradeHelper.UserPayOrder(this.Order, false, true);
                 try
                 {
                     if (this.Order.FightGroupId > 0)
                     {
                         VShopHelper.SetFightGroupSuccess(this.Order.FightGroupId);
                     }
                     if (this.Order.GroupBuyId > 0 && maxCount == yetOrderNum + currentOrderNum)
                     {
                         TradeHelper.SetGroupBuyEndUntreated(this.Order.GroupBuyId);
                     }
                     if (this.Order.ParentOrderId == "-1")
                     {
                         OrderQuery orderQuery           = new OrderQuery();
                         orderQuery.ParentOrderId        = this.Order.OrderId;
                         IList <OrderInfo> listUserOrder = MemberProcessor.GetListUserOrder(this.Order.UserId, orderQuery);
                         foreach (OrderInfo item in listUserOrder)
                         {
                             OrderHelper.OrderConfirmPaySendMessage(item);
                         }
                     }
                     else
                     {
                         OrderHelper.OrderConfirmPaySendMessage(this.Order);
                     }
                 }
                 catch (Exception ex)
                 {
                     IDictionary <string, string> dictionary = new Dictionary <string, string>();
                     dictionary.Add("ErrorMessage", ex.Message);
                     dictionary.Add("StackTrace", ex.StackTrace);
                     if (ex.InnerException != null)
                     {
                         dictionary.Add("InnerException", ex.InnerException.ToString());
                     }
                     if (ex.GetBaseException() != null)
                     {
                         dictionary.Add("BaseException", ex.GetBaseException().Message);
                     }
                     if (ex.TargetSite != (MethodBase)null)
                     {
                         dictionary.Add("TargetSite", ex.TargetSite.ToString());
                     }
                     dictionary.Add("ExSource", ex.Source);
                     Globals.AppendLog(dictionary, "支付更新订单收款记录或者消息通知时出错:" + ex.Message, "", "", "UserPay");
                 }
                 this.Order.OnPayment();
             });
             if (this.Order.FightGroupId > 0)
             {
                 this.toFightGroupSuccess();
             }
             else
             {
                 base.Response.Write(string.Format("<p style=\"font-size:16px;\">恭喜您,订单已成功完成支付:{0}</br>支付金额:{1}<br><a href=\"{2}\">查看订单</a></p>", this.OrderId, this.Amount.ToString("F"), this.GetReturnLink(this.Order.OrderSource)));
             }
         }
         else if (this.Order.GroupBuyId > 0)
         {
             this.toFightGroupSuccess();
         }
         else
         {
             base.Response.Write(string.Format("<p style=\"font-size:16px;\">恭喜您,订单已成功完成支付:{0}</br>支付金额:{1}<br><a href=\"{2}\">查看订单</a></p>", this.OrderId, this.Amount.ToString("F"), this.GetReturnLink(this.Order.OrderSource)));
         }
     }
 }
Example #29
0
        private DataGridViewModel <Dictionary <string, object> > GetDataList(OrderQuery query)
        {
            DataGridViewModel <Dictionary <string, object> > dataGridViewModel = new DataGridViewModel <Dictionary <string, object> >();

            if (query != null)
            {
                DbQueryResult orders = OrderHelper.GetOrders(query);
                dataGridViewModel.rows  = DataHelper.DataTableToDictionary(orders.Data);
                dataGridViewModel.total = orders.TotalRecords;
                string[] orderIds = (from d in dataGridViewModel.rows
                                     select d["OrderId"].ToString()).ToArray();
                List <RefundInfo> refundInfos = TradeHelper.GetRefundInfos(orderIds);
                foreach (Dictionary <string, object> row in dataGridViewModel.rows)
                {
                    OrderInfo order = TradeHelper.GetOrderInfo(row["OrderId"].ToString());
                    row.Add("OrderStatusText", OrderHelper.GetOrderStatusText(order.OrderStatus, order.ShippingModeId, order.IsConfirm, order.Gateway, 0, order.PreSaleId, order.DepositDate, false, order.ItemStatus, OrderType.NormalOrder));
                    row.Add("CanConfirmOrder", order.CanConfirmOrder());
                    row.Add("canCheckTake", order.CanConfirmTakeCode());
                    row.Add("canCloseOrder", this.CanClose(order, base.CurrentSiteSetting.OpenMultStore));
                    row.Add("canOfflineReceipt", OrderHelper.CanConfirmOfflineReceipt(order, false));
                    row.Add("CanEditPrice", this.CanEditPrice(order));
                    row.Add("InvoiceTypeText", string.IsNullOrEmpty(order.InvoiceTitle) ? "" : EnumDescription.GetEnumDescription((Enum)(object)order.InvoiceType, 0));
                    bool flag = order.CanSendGoods(base.CurrentSiteSetting.OpenMultStore);
                    if (base.CurrentSiteSetting.OpenMultStore && order.StoreId != 0)
                    {
                        flag = false;
                    }
                    row.Add("canSendGoods", flag);
                    row.Add("canFinishTrade", order.OrderStatus == OrderStatus.SellerAlreadySent && order.ItemStatus == OrderItemStatus.Nomarl);
                    bool flag2 = false;
                    if (base.CurrentSiteSetting.OpenMultStore && order.CountDownBuyId == 0 && order.BundlingId == 0 && order.ItemStatus == OrderItemStatus.Nomarl && (order.OrderStatus == OrderStatus.BuyerAlreadyPaid || (order.OrderStatus == OrderStatus.WaitBuyerPay && order.Gateway == "hishop.plugins.payment.podrequest")))
                    {
                        if (order.StoreId == -1)
                        {
                            flag2 = (order.LineItems.Count > 0);
                        }
                        else if (order.StoreId > 0)
                        {
                            flag2 = !order.IsConfirm;
                        }
                        else if (order.StoreId == 0)
                        {
                            flag2 = (order.ShippingModeId != -2 && order.LineItems.Count > 0);
                        }
                    }
                    row.Add("CanAllotStore", flag2);
                    RefundInfo refundInfo = refundInfos.FirstOrDefault((RefundInfo d) => d.OrderId == order.OrderId);
                    if (refundInfo != null)
                    {
                        row.Add("IsCheckRefund", order.OrderStatus == OrderStatus.ApplyForRefund && !order.IsStoreCollect);
                        row.Add("RefundId", refundInfo.RefundId);
                    }
                    bool   flag3  = false;
                    string value  = string.Empty;
                    string value2 = string.Empty;
                    if (order.ItemStatus != 0 || order.OrderStatus == OrderStatus.ApplyForRefund)
                    {
                        if (refundInfo != null && order.OrderStatus == OrderStatus.ApplyForRefund)
                        {
                            flag3  = true;
                            value2 = "订单已申请退款";
                            value  = "/Admin/sales/RefundApplyDetail?RefundId=" + refundInfo.RefundId;
                        }
                        else
                        {
                            int            num            = 0;
                            AfterSaleTypes afterSaleTypes = AfterSaleTypes.ReturnAndRefund;
                            int            num2           = 0;
                            foreach (LineItemInfo value4 in order.LineItems.Values)
                            {
                                if (value4.ReturnInfo != null || value4.ReplaceInfo != null)
                                {
                                    ReturnInfo  returnInfo  = value4.ReturnInfo;
                                    ReplaceInfo replaceInfo = value4.ReplaceInfo;
                                    if (num == 0 || (returnInfo != null && returnInfo.HandleStatus != ReturnStatus.Refused && returnInfo.HandleStatus != ReturnStatus.Returned) || (replaceInfo != null && (replaceInfo.HandleStatus != ReplaceStatus.Refused || replaceInfo.HandleStatus != ReplaceStatus.Replaced)))
                                    {
                                        if (value4.ReturnInfo != null)
                                        {
                                            afterSaleTypes = AfterSaleTypes.ReturnAndRefund;
                                            num2           = value4.ReturnInfo.ReturnId;
                                        }
                                        else
                                        {
                                            afterSaleTypes = AfterSaleTypes.Replace;
                                            num2           = value4.ReplaceInfo.ReplaceId;
                                        }
                                    }
                                    num++;
                                }
                            }
                            if (order.ItemStatus == OrderItemStatus.HasReturnOrReplace)
                            {
                                value2 = "订单中有商品正在退货/换货中";
                            }
                            else if (order.ReturnedCount > 0)
                            {
                                value2 = "订单中有商品已退货完成";
                            }
                            else if (order.ItemStatus == OrderItemStatus.HasReplace)
                            {
                                value2 = "订单中有商品正在进行换货操作";
                            }
                            else if (order.ItemStatus == OrderItemStatus.HasReturn)
                            {
                                value2 = "订单中有商品正在进行退货操作";
                            }
                            if (num > 0)
                            {
                                flag3 = true;
                                value = ((afterSaleTypes != AfterSaleTypes.ReturnAndRefund) ? ("ReplaceApplyDetail?ReplaceId=" + num2) : ("ReturnApplyDetail?ReturnId=" + num2));
                            }
                        }
                    }
                    row.Add("IsShowRefundIcon", flag3);
                    row.Add("RefundOperUrl", value);
                    row.Add("RefundTips", value2);
                    bool flag4 = false;
                    if (order.FightGroupId > 0)
                    {
                        FightGroupInfo fightGroup = VShopHelper.GetFightGroup(order.FightGroupId);
                        if (fightGroup != null)
                        {
                            row.Add("FightGroupActivityId", fightGroup.FightGroupActivityId);
                            if (fightGroup.Status == FightGroupStatus.FightGroupIn && order.OrderStatus != OrderStatus.WaitBuyerPay && order.OrderStatus != OrderStatus.Closed)
                            {
                                flag4 = true;
                            }
                        }
                    }
                    row.Add("FightGrouping", flag4);
                    if (order.StoreId > 0)
                    {
                        row.Add("StoreName", this.GetStoreName(order.StoreId));
                    }
                    if (order.LineItems.Count <= 0)
                    {
                        if (order.UserAwardRecordsId > 0)
                        {
                            row.Add("IsAwardOrder", true);
                        }
                        else
                        {
                            row.Add("IsGiftOrder", true);
                        }
                    }
                    if (order.PreSaleId > 0 && order.OrderStatus == OrderStatus.BuyerAlreadyPaid)
                    {
                        ProductPreSaleInfo productPreSaleInfo = ProductPreSaleHelper.GetProductPreSaleInfo(order.PreSaleId);
                        if (productPreSaleInfo != null)
                        {
                            string   value3 = "";
                            DateTime dateTime;
                            if (productPreSaleInfo.DeliveryDate.HasValue)
                            {
                                dateTime = productPreSaleInfo.DeliveryDate.Value;
                                value3   = "<span>预计发货时间:" + dateTime.ToString("yyyy-MM-dd") + "</span>";
                            }
                            else
                            {
                                DateTime payDate = order.PayDate;
                                if (order.PayDate != DateTime.MinValue)
                                {
                                    dateTime = order.PayDate;
                                    dateTime = dateTime.AddDays((double)productPreSaleInfo.DeliveryDays);
                                    value3   = "<span>预计发货时间:" + dateTime.ToString("yyyy-MM-dd") + "</span>";
                                }
                            }
                            row.Add("SendGoodsTips", value3);
                        }
                    }
                }
            }
            return(dataGridViewModel);
        }
Example #30
0
        private DataGridViewModel <Dictionary <string, object> > GetOrderList(OrderQuery query)
        {
            DataGridViewModel <Dictionary <string, object> > dataGridViewModel = new DataGridViewModel <Dictionary <string, object> >();
            DbQueryResult orders = OrderHelper.GetOrders(query);

            dataGridViewModel.rows  = DataHelper.DataTableToDictionary(orders.Data);
            dataGridViewModel.total = orders.TotalRecords;
            string[] orderIds = (from d in dataGridViewModel.rows
                                 select d["OrderId"].ToString()).ToArray();
            List <RefundInfo> refundInfos = TradeHelper.GetRefundInfos(orderIds);

            foreach (Dictionary <string, object> row in dataGridViewModel.rows)
            {
                OrderInfo order = TradeHelper.GetOrderInfo(row["OrderId"].ToString());
                row.Add("OrderStatusText", OrderHelper.GetOrderStatusText(order.OrderStatus, order.ShippingModeId, order.IsConfirm, order.Gateway, 0, order.PreSaleId, order.DepositDate, false, order.ItemStatus, OrderType.NormalOrder));
                row.Add("CanConfirmOrder", order.CanConfirmOrder());
                row.Add("canCheckTake", order.CanConfirmTakeCode());
                row.Add("canCloseOrder", order.CanClose(base.CurrentSiteSetting.OpenMultStore, true));
                row.Add("canOfflineReceipt", OrderHelper.CanConfirmOfflineReceipt(order, true));
                row.Add("canSendGoods", order.CanSendGoods(base.CurrentSiteSetting.OpenMultStore));
                row.Add("canFinishTrade", order.OrderStatus == OrderStatus.SellerAlreadySent && order.ItemStatus == OrderItemStatus.Nomarl);
                row.Add("SupplierOrderTotals", order.OrderCostPrice + order.Freight);
                if (order.IsStoreCollect)
                {
                    row.Add("isShowCheckRefund", order.OrderStatus == OrderStatus.ApplyForRefund && order.StoreId == base.CurrentManager.StoreId);
                }
                row.Add("InvoiceTypeText", string.IsNullOrEmpty(order.InvoiceTitle) ? "" : EnumDescription.GetEnumDescription((Enum)(object)order.InvoiceType, 0));
                bool flag = false;
                if (order.FightGroupId > 0)
                {
                    FightGroupInfo fightGroup = VShopHelper.GetFightGroup(order.FightGroupId);
                    if (fightGroup != null)
                    {
                        row.Add("FightGroupActivityId", fightGroup.FightGroupActivityId);
                        if (fightGroup.Status == FightGroupStatus.FightGroupIn && order.OrderStatus != OrderStatus.WaitBuyerPay && order.OrderStatus != OrderStatus.Closed)
                        {
                            flag = true;
                        }
                    }
                }
                row.Add("FightGrouping", flag);
                row.Add("isGiftOrder", order.LineItems.Count <= 0);
                row["IsError"]      = order.IsError;
                row["ErrorMessage"] = order.ErrorMessage;
                RefundInfo refundInfo = refundInfos.FirstOrDefault((RefundInfo d) => d.OrderId == order.OrderId);
                if (refundInfo != null)
                {
                    row.Add("RefundId", refundInfo.RefundId);
                }
                int            num      = 0;
                int            num2     = 0;
                bool           flag2    = false;
                string         value    = "订单中有商品正在进行退货/退款";
                AfterSaleTypes?nullable = null;
                if (order.ItemStatus != 0 || order.OrderStatus == OrderStatus.ApplyForRefund)
                {
                    if (order.OrderStatus == OrderStatus.ApplyForRefund)
                    {
                        RefundInfo refundInfo2 = TradeHelper.GetRefundInfo(order.OrderId);
                        if (refundInfo2 != null)
                        {
                            flag2 = true;
                            value = "订单已申请退款";
                        }
                    }
                    else
                    {
                        int            num3           = 0;
                        AfterSaleTypes afterSaleTypes = AfterSaleTypes.ReturnAndRefund;
                        int            num4           = 0;
                        foreach (LineItemInfo value2 in order.LineItems.Values)
                        {
                            if (value2.ReturnInfo != null || value2.ReplaceInfo != null)
                            {
                                ReturnInfo  returnInfo  = value2.ReturnInfo;
                                ReplaceInfo replaceInfo = value2.ReplaceInfo;
                                if (num3 == 0 || (returnInfo != null && returnInfo.HandleStatus != ReturnStatus.Refused && returnInfo.HandleStatus != ReturnStatus.Returned) || (replaceInfo != null && (replaceInfo.HandleStatus != ReplaceStatus.Refused || replaceInfo.HandleStatus != ReplaceStatus.Replaced)))
                                {
                                    if (value2.ReturnInfo != null)
                                    {
                                        afterSaleTypes = AfterSaleTypes.ReturnAndRefund;
                                        num4           = value2.ReturnInfo.ReturnId;
                                    }
                                    else
                                    {
                                        afterSaleTypes = AfterSaleTypes.Replace;
                                        num4           = value2.ReplaceInfo.ReplaceId;
                                    }
                                }
                                num3++;
                            }
                        }
                        if (order.ItemStatus == OrderItemStatus.HasReturnOrReplace)
                        {
                            value = "订单中有商品正在退货/换货中";
                        }
                        else if (order.ItemStatus == OrderItemStatus.HasReplace)
                        {
                            value = "订单中有商品正在进行换货";
                        }
                        else if (order.ItemStatus == OrderItemStatus.HasReturn)
                        {
                            value = "订单中有商品在进行退货/退款操作";
                        }
                        else if (order.ReturnedCount > 0)
                        {
                            value = "订单中有商品已退货完成";
                        }
                        if (num3 > 0)
                        {
                            flag2    = true;
                            nullable = afterSaleTypes;
                            if (afterSaleTypes == AfterSaleTypes.ReturnAndRefund)
                            {
                                num = num4;
                            }
                            else
                            {
                                num2 = num4;
                            }
                        }
                    }
                }
                row.Add("ReturnId", num);
                row.Add("ReplaceId", num2);
                row.Add("AfterSaleType", nullable);
                row.Add("isShowRefund", flag2);
                row.Add("RefundStatus", value);
            }
            return(dataGridViewModel);
        }
Example #31
0
        public void ConfirmPay(HttpContext context)
        {
            string text = context.Request["id"];

            if (string.IsNullOrWhiteSpace(text))
            {
                throw new HidistroAshxException("错误的编号");
            }
            OrderInfo orderInfo = new OrderDao().GetOrderInfo(text);

            if (orderInfo == null)
            {
                throw new HidistroAshxException("错误的编号");
            }
            if (!orderInfo.CheckAction(OrderActions.SELLER_CONFIRM_PAY))
            {
                throw new HidistroAshxException("权限不足");
            }
            PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode("hishop.plugins.payment.bankrequest");

            if (paymentMode != null)
            {
                orderInfo.Gateway       = paymentMode.Gateway;
                orderInfo.PaymentType   = paymentMode.Name;
                orderInfo.PaymentTypeId = paymentMode.ModeId;
            }
            else
            {
                orderInfo.Gateway       = "hishop.plugins.payment.bankrequest";
                orderInfo.PaymentType   = "线下支付";
                orderInfo.PaymentTypeId = 0;
            }
            int num  = 0;
            int num2 = 0;
            int num3 = 0;

            if (orderInfo.CountDownBuyId > 0)
            {
                string empty = string.Empty;
                foreach (KeyValuePair <string, LineItemInfo> lineItem in orderInfo.LineItems)
                {
                    CountDownInfo countDownInfo = TradeHelper.CheckUserCountDown(lineItem.Value.ProductId, orderInfo.CountDownBuyId, lineItem.Value.SkuId, orderInfo.UserId, orderInfo.GetAllQuantity(true), orderInfo.OrderId, out empty, orderInfo.StoreId);
                    if (countDownInfo == null)
                    {
                        throw new HidistroAshxException(empty);
                    }
                }
            }
            if (orderInfo.FightGroupId > 0)
            {
                string empty2 = string.Empty;
                foreach (KeyValuePair <string, LineItemInfo> lineItem2 in orderInfo.LineItems)
                {
                    FightGroupActivityInfo fightGroupActivityInfo = VShopHelper.CheckUserFightGroup(lineItem2.Value.ProductId, orderInfo.FightGroupActivityId, orderInfo.FightGroupId, lineItem2.Value.SkuId, orderInfo.UserId, orderInfo.GetAllQuantity(true), orderInfo.OrderId, lineItem2.Value.Quantity, out empty2);
                    if (fightGroupActivityInfo == null)
                    {
                        throw new HidistroAshxException(empty2);
                    }
                }
            }
            if (orderInfo.GroupBuyId > 0)
            {
                GroupBuyInfo groupBuy = PromoteHelper.GetGroupBuy(orderInfo.GroupBuyId);
                if (groupBuy == null || groupBuy.Status != GroupBuyStatus.UnderWay)
                {
                    throw new HidistroAshxException("当前的订单为团购订单,此团购活动已结束,所以不能支付");
                }
                num2 = PromoteHelper.GetOrderCount(orderInfo.GroupBuyId);
                num  = groupBuy.MaxCount;
                num3 = orderInfo.GetGroupBuyOerderNumber();
                if (num < num2 + num3)
                {
                    throw new HidistroAshxException("当前的订单为团购订单,订购数量已超过订购总数,所以不能支付");
                }
            }
            if (orderInfo.PreSaleId > 0)
            {
                ProductPreSaleInfo productPreSaleInfo = ProductPreSaleHelper.GetProductPreSaleInfo(orderInfo.PreSaleId);
                if (productPreSaleInfo == null)
                {
                    throw new HidistroAshxException("预售活动不存在");
                }
                if (!orderInfo.DepositDate.HasValue && productPreSaleInfo.PreSaleEndDate < DateTime.Now)
                {
                    throw new HidistroAshxException("预售活动已结束不能支付定金,所以不能确认收款");
                }
            }
            string empty3 = string.Empty;

            switch (TradeHelper.CheckOrderBeforePay(orderInfo, out empty3))
            {
            case 1:
                throw new HidistroAshxException($"当前有商品{empty3}下架或者被删除,不能确认收款");

            case 2:
                if ((orderInfo.PreSaleId <= 0 || orderInfo.DepositDate.HasValue) && orderInfo.PreSaleId > 0)
                {
                    break;
                }
                throw new HidistroAshxException($"当前有商品{empty3}库存不足,不能确认收款");
            }
            if (OrderHelper.ConfirmPay(orderInfo))
            {
                if (orderInfo.GroupBuyId > 0 && num == num2 + num3)
                {
                    PromoteHelper.SetGroupBuyEndUntreated(orderInfo.GroupBuyId);
                }
                if (orderInfo.ParentOrderId == "-1")
                {
                    OrderQuery orderQuery = new OrderQuery();
                    orderQuery.ParentOrderId = orderInfo.OrderId;
                    IList <OrderInfo> listUserOrder = MemberProcessor.GetListUserOrder(orderInfo.UserId, orderQuery);
                    foreach (OrderInfo item in listUserOrder)
                    {
                        OrderHelper.OrderConfirmPaySendMessage(item);
                    }
                }
                else
                {
                    OrderHelper.OrderConfirmPaySendMessage(orderInfo);
                }
                base.ReturnSuccessResult(context, "成功的确认了订单收款", 0, true);
                return;
            }
            throw new HidistroAshxException("确认订单收款失败");
        }
Example #32
0
 /// <summary>
 /// Returns an collection of orders for an invoice id (key)
 ///
 /// GET /umbraco/Merchello/OrderApi/GetOrdersByInvoiceKey/{guid}
 /// </summary>
 /// <param name="id">
 /// The invoice key
 /// </param>
 /// <returns>
 /// The collection of <see cref="OrderDisplay"/>.
 /// </returns>
 public IEnumerable <OrderDisplay> GetOrdersByInvoiceKey(Guid id)
 {
     return(OrderQuery.GetByInvoiceKey(id));
 }
Example #33
0
        private OrderQuery GetDataQuery(HttpContext context)
        {
            OrderQuery orderQuery = new OrderQuery();
            string     parameter  = base.GetParameter(context, "InvoiceType", false);
            int        num;

            if (parameter.ToNullString().Trim() != "")
            {
                InvoiceType invoiceType;
                if (parameter == "0")
                {
                    OrderQuery orderQuery2 = orderQuery;
                    invoiceType = InvoiceType.Personal;
                    num         = invoiceType.GetHashCode();
                    string arg = num.ToString();
                    invoiceType = InvoiceType.Enterprise;
                    num         = invoiceType.GetHashCode();
                    orderQuery2.InvoiceTypes = $"{arg},{num.ToString()}";
                }
                else if (parameter == "2")
                {
                    OrderQuery orderQuery3 = orderQuery;
                    invoiceType = InvoiceType.Personal_Electronic;
                    num         = invoiceType.GetHashCode();
                    string arg2 = num.ToString();
                    invoiceType = InvoiceType.Enterprise_Electronic;
                    num         = invoiceType.GetHashCode();
                    orderQuery3.InvoiceTypes = $"{arg2},{num.ToString()}";
                }
                else
                {
                    OrderQuery orderQuery4 = orderQuery;
                    invoiceType = InvoiceType.VATInvoice;
                    num         = invoiceType.GetHashCode();
                    orderQuery4.InvoiceTypes = num.ToString();
                }
            }
            orderQuery.ItemStatus     = 0;
            orderQuery.IsAllOrder     = false;
            orderQuery.OrderId        = Globals.UrlDecode(base.GetParameter(context, "OrderId", false));
            orderQuery.ProductName    = Globals.UrlDecode(base.GetParameter(context, "ProductName", false));
            orderQuery.ShipTo         = Globals.UrlDecode(base.GetParameter(context, "ShipTo", false));
            orderQuery.UserName       = Globals.UrlDecode(base.GetParameter(context, "UserName", false));
            orderQuery.StartDate      = base.GetDateTimeParam(context, "StartDate");
            orderQuery.EndDate        = base.GetDateTimeParam(context, "EndDate");
            orderQuery.GroupBuyId     = base.GetIntParam(context, "GroupBuyId", true);
            orderQuery.IsPrinted      = base.GetIntParam(context, "IsPrinted", true);
            orderQuery.ShippingModeId = base.GetIntParam(context, "ShippingModeId", true);
            orderQuery.RegionId       = base.GetIntParam(context, "RegionId", true);
            if (orderQuery.RegionId.HasValue)
            {
                orderQuery.FullRegionName = RegionHelper.GetFullRegion(orderQuery.RegionId.Value, ",", true, 0);
            }
            orderQuery.SourceOrder = base.GetIntParam(context, "SourceOrder", true);
            int?intParam = base.GetIntParam(context, "SupplierId", true);

            if (intParam.HasValue)
            {
                orderQuery.SupplierId = intParam.Value;
            }
            else
            {
                orderQuery.SupplierId = -1;
            }
            int?intParam2 = base.GetIntParam(context, "OrderStatus", true);

            if (intParam2.HasValue)
            {
                int?nullable = intParam2;
                num = 999;
                if (nullable == num)
                {
                    orderQuery.TakeOnStore = true;
                    orderQuery.Status      = OrderStatus.BuyerAlreadyPaid;
                }
                else
                {
                    orderQuery.Status = (OrderStatus)intParam2.Value;
                    nullable          = intParam2;
                    num = 2;
                    if (nullable == num)
                    {
                        orderQuery.TakeOnStore = false;
                    }
                }
            }
            orderQuery.PageIndex = base.CurrentPageIndex;
            orderQuery.PageSize  = base.CurrentPageSize;
            orderQuery.SortBy    = "OrderDate";
            orderQuery.SortOrder = SortAction.Desc;
            return(orderQuery);
        }
Example #34
0
 public static DbQueryResult GetOrders(OrderQuery query)
 {
     return(new OrderDao().GetOrders(query));
 }
Example #35
0
 protected bool Equals(OrderQuery other)
 => string.Equals(CustomerID, other.CustomerID);
Example #36
0
 public async Task <IEnumerable <Order> > GetByQuery(OrderQuery query)
 {
     return(await connection.QueryAsync <Order>("GetOrderByQuery", query.Parameters, transaction : transaction, commandType : CommandType.StoredProcedure));
 }
Example #37
0
 public abstract DbQueryResult GetOrders(OrderQuery query);
Example #38
0
        private OrderQuery GetOrderQuery()
        {
            OrderQuery orderQuery = new OrderQuery();

            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["orderId"]))
            {
                orderQuery.OrderId = this.Page.Request.QueryString["orderId"];
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["shipId"]))
            {
                orderQuery.ShipId = this.Page.Request.QueryString["shipId"];
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["shipTo"]))
            {
                orderQuery.ShipTo = this.Page.Request.QueryString["shipTo"];
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["ParentOrderId"]))
            {
                orderQuery.ParentOrderId = this.Page.Request.QueryString["ParentOrderId"];
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["startDate"]))
            {
                orderQuery.StartDate = Convert.ToDateTime(this.Page.Server.UrlDecode(this.Page.Request.QueryString["startDate"]));
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["endDate"]))
            {
                orderQuery.EndDate = Convert.ToDateTime(this.Page.Server.UrlDecode(this.Page.Request.QueryString["endDate"]));
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["orderStatus"]))
            {
                int status = 0;
                if (int.TryParse(this.Page.Request.QueryString["orderStatus"], out status))
                {
                    orderQuery.Status = (OrderStatus)status;
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["itemStatus"]))
            {
                int value = 0;
                if (int.TryParse(this.Page.Request.QueryString["itemStatus"], out value))
                {
                    orderQuery.ItemStatus = value;
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["sortBy"]))
            {
                orderQuery.SortBy = this.Page.Request.QueryString["sortBy"];
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["sortOrder"]))
            {
                int sortOrder = 0;
                if (int.TryParse(this.Page.Request.QueryString["sortOrder"], out sortOrder))
                {
                    orderQuery.SortOrder = (SortAction)sortOrder;
                }
            }
            if (!string.IsNullOrEmpty(this.Page.Request.QueryString["productName"]))
            {
                orderQuery.ProductName = Globals.UrlDecode(Globals.StripAllTags(this.Page.Request.QueryString["productName"]));
            }
            orderQuery.IsServiceOrder = false;
            orderQuery.PageIndex      = this.pager.PageIndex;
            orderQuery.PageSize       = this.pager.PageSize;
            return(orderQuery);
        }
Example #39
0
 public static OrderStatisticsInfo GetUserOrdersNoPage(OrderQuery userOrder)
 {
     return new SaleStatisticDao().GetUserOrdersNoPage(userOrder);
 }