Пример #1
0
        /// <summary>
        /// 购物车方式提交的订单
        /// </summary>
        /// <param name="value">数据</param>
        private object SubmitOrderByCart(OrderSubmitOrderByCartModel value)
        {
            string cartItemIds      = value.cartItemIds;
            long   recieveAddressId = value.recieveAddressId;
            string couponIds        = value.couponIds;
            int    integral         = value.integral;

            bool   isCashOnDelivery = value.isCashOnDelivery;
            int    invoiceType      = value.invoiceType;
            string invoiceTitle     = value.invoiceTitle;
            string invoiceContext   = value.invoiceContext;
            //end
            string           orderRemarks = "";//value.orderRemarks;//订单备注
            OrderCreateModel model        = new OrderCreateModel();
            List <OrderInfo> infos        = new List <OrderInfo>();

            var orderService = ServiceProvider.Instance <IOrderService> .Create;
            IEnumerable <long> orderIds;

            model.PlatformType     = PlatformType.WeiXinSmallProg;
            model.CurrentUser      = CurrentUser;
            model.ReceiveAddressId = recieveAddressId;
            model.Integral         = integral;

            model.formId = value.formId;

            model.IsCashOnDelivery = isCashOnDelivery;
            model.Invoice          = (InvoiceType)invoiceType;
            model.InvoiceContext   = invoiceContext;
            model.InvoiceTitle     = invoiceTitle;
            //end
            CommonModel.OrderShop[] OrderShops = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderShop[]>(value.jsonOrderShops);
            model.OrderShops   = OrderShops;//用户APP选择门店自提时用到,2.5版本未支持门店自提
            model.OrderRemarks = OrderShops.Select(p => p.Remark).ToArray();
            try
            {
                var cartItemIdsArr = cartItemIds.Split(',').Select(item => long.Parse(item)).ToArray();
                //根据购物车项补充sku数据
                var cartItems = CartApplication.GetCartItems(cartItemIdsArr);
                model.SkuIds = cartItems.Select(e => e.SkuId).ToList();
                model.Counts = cartItems.Select(e => e.Quantity).ToList();

                model.CartItemIds  = cartItemIdsArr;
                model.CouponIdsStr = OrderHelper.ConvertUsedCoupon(couponIds);

                var orders = orderService.CreateOrder(model);
                orderIds = orders.Select(item => item.Id).ToArray();
                decimal orderTotals = orders.Sum(item => item.OrderTotalAmount);

                return(Json(new { Status = "OK", Message = "提交成功", OrderId = string.Join(",", orderIds), OrderTotal = orderTotals }));
            }
            catch (HimallException he)
            {
                return(Json(new { Status = "NO", Message = he.Message }));
            }
        }
Пример #2
0
        public object SubmitOrder(SmallProgSubmitOrderModel value)
        {
            CheckUserLogin();
            if (value.CapitalAmount > 0 && !string.IsNullOrEmpty(value.PayPwd))
            {
                var flag = MemberApplication.VerificationPayPwd(CurrentUser.Id, value.PayPwd);
                if (!flag)
                {
                    return(Json(ErrorResult <dynamic>("预存款支付密码错误")));
                }
            }
            if (value.fromPage == WXSmallProgFromPageType.SignBuy)
            {
                //立即购买(限时购)
                OrderSubmitOrderModel orderModel = new OrderSubmitOrderModel();
                orderModel.counts              = value.buyAmount.ToString();
                orderModel.couponIds           = value.couponCode;
                orderModel.integral            = (int)value.deductionPoints;
                orderModel.recieveAddressId    = value.shippingId;
                orderModel.skuIds              = value.productSku;
                orderModel.orderRemarks        = value.remark;
                orderModel.formId              = value.formId;
                orderModel.isCashOnDelivery    = false; //货到付款
                orderModel.invoiceType         = 0;     //发票类型
                orderModel.jsonOrderShops      = value.jsonOrderShops;
                orderModel.isStore             = value.isStore;
                orderModel.ProductType         = value.ProductType;
                orderModel.VirtualProductItems = value.VirtualProductItems;
                orderModel.Capital             = value.CapitalAmount;
                //提交
                return(SubmitOrderById(orderModel));
            }
            else if (value.fromPage == WXSmallProgFromPageType.Cart)
            {
                //购物车
                OrderSubmitOrderByCartModel cartModel = new OrderSubmitOrderByCartModel();
                cartModel.couponIds        = value.couponCode;
                cartModel.integral         = (int)value.deductionPoints;
                cartModel.recieveAddressId = value.shippingId;
                cartModel.cartItemIds      = value.cartItemIds; //
                cartModel.formId           = value.formId;
                cartModel.isCashOnDelivery = false;             //货到付款
                cartModel.invoiceType      = 0;                 //发票类型
                cartModel.jsonOrderShops   = value.jsonOrderShops;
                cartModel.Capital          = value.CapitalAmount;
                cartModel.isStore          = value.isStore;
                return(SubmitOrderByCart(cartModel));
            }

            return(Json(ErrorResult <dynamic>("提交来源异常")));
        }
Пример #3
0
        public object SubmitOrder(SmallProgSubmitOrderModel value)
        {
            CheckUserLogin();
            if (value.fromPage == WXSmallProgFromPageType.SignBuy)
            {
                //立即购买(限时购)
                OrderSubmitOrderModel orderModel = new OrderSubmitOrderModel();
                orderModel.counts           = value.buyAmount.ToString();
                orderModel.couponIds        = value.couponCode;
                orderModel.integral         = (int)value.deductionPoints;
                orderModel.recieveAddressId = value.shippingId;
                orderModel.skuIds           = value.productSku;
                orderModel.orderRemarks     = value.remark;
                orderModel.formId           = value.formId;
                orderModel.isCashOnDelivery = false; //货到付款
                orderModel.invoiceType      = 0;     //发票类型
                orderModel.jsonOrderShops   = value.jsonOrderShops;
                //提交
                return(SubmitOrderById(orderModel));
            }
            else if (value.fromPage == WXSmallProgFromPageType.Cart)
            {
                //购物车
                OrderSubmitOrderByCartModel cartModel = new OrderSubmitOrderByCartModel();
                cartModel.couponIds        = value.couponCode;
                cartModel.integral         = (int)value.deductionPoints;
                cartModel.recieveAddressId = value.shippingId;
                cartModel.cartItemIds      = value.cartItemIds; //
                cartModel.formId           = value.formId;
                cartModel.isCashOnDelivery = false;             //货到付款
                cartModel.invoiceType      = 0;                 //发票类型
                cartModel.jsonOrderShops   = value.jsonOrderShops;
                return(SubmitOrderByCart(cartModel));
            }

            return(Json(new { Status = "NO", Message = "提交来源异常" }));
        }
Пример #4
0
        public object PostSubmitOrderByCart(OrderSubmitOrderByCartModel value)
        {
            CheckUserLogin();
            if (value.CapitalAmount > 0 && !string.IsNullOrEmpty(value.PayPwd))
            {
                var flag = MemberApplication.VerificationPayPwd(CurrentUser.Id, value.PayPwd);
                if (!flag)
                {
                    throw new MallApiException("预存款支付密码错误");
                }
            }

            string cartItemIds = value.cartItemIds;
            long recieveAddressId = value.recieveAddressId;
            string couponIds = value.couponIds;
            int integral = value.integral;

            bool isCashOnDelivery = value.isCashOnDelivery;
            int invoiceType = value.invoiceType;
            string invoiceTitle = value.invoiceTitle;
            string invoiceContext = value.invoiceContext;


            IEnumerable<long> orderIds;

           
            CommonModel.OrderShop[] OrderShops = Newtonsoft.Json.JsonConvert.DeserializeObject<OrderShop[]>(value.jsonOrderShops);

            OrderPostModel model = new OrderPostModel();
            model.CurrentUser = CurrentUser;
            model.PlatformType = PlatformType.Android.GetHashCode();
            model.IsShopbranchOrder = true;
            model.RecieveAddressId = recieveAddressId;
            model.Integral = integral;
            model.Capital = value.CapitalAmount;
            model.IsCashOnDelivery = isCashOnDelivery;
            //model.InvoiceType = invoiceType;
            //model.InvoiceContext = invoiceContext;
            //model.InvoiceTitle = invoiceTitle;
            //model.InvoiceCode = value.invoiceCode;
            model.OrderShops = OrderShops;//用户APP选择门店自提时用到,2.5版本未支持门店自提
            model.CartItemIds = cartItemIds;
            model.IsShopbranchOrder = true;
            if (model.OrderShops == null || model.OrderShops.Count() < 1)
            {
                throw new MallApiException("订单信息错误");
            }
            try
            {
                var cartItemIdsArr = cartItemIds.Split(',').Where(d => !string.IsNullOrWhiteSpace(d)).Select(item => long.Parse(item)).ToArray();
                //根据购物车项补充sku数据
                var cartItems = CartApplication.GetCartItems(cartItemIdsArr);
                List<OrderSku> skus = new List<OrderSku>();
                foreach (var _item in cartItems)
                {
                    OrderSku _tmp = new OrderSku();
                    _tmp.SkuId = _item.SkuId;
                    _tmp.Count = _item.Quantity;
                    skus.Add(_tmp);
                }

                model.CouponIds = couponIds;
                model.OrderShops[0].OrderSkus = skus.ToArray();
                var result = OrderApplication.SubmitOrder(model, value.PayPwd);
                orderIds = result.OrderIds;
                decimal orderTotals = result.OrderTotal;
                var _result = new { success = true, OrderIds = orderIds, RealTotalIsZero = orderTotals == 0 };
                return _result;
            }
            catch (MallException he)
            {
                return ErrorResult(he.Message);
            }
            catch (Exception ex)
            {
                return ErrorResult("提交订单异常");
            }
        }
        public object PostSubmitOrderByCart(OrderSubmitOrderByCartModel value)
        {
            this.CheckUserLogin();
            if (value.CapitalAmount > new Decimal(0) && !string.IsNullOrEmpty(value.PayPwd) && !MemberApplication.VerificationPayPwd(this.CurrentUser.Id, value.PayPwd))
            {
                return((object)this.Json(new
                {
                    Success = "false",
                    Msg = "预付款支付密码错误"
                }));
            }
            string           cartItemIds      = value.cartItemIds;
            long             recieveAddressId = value.recieveAddressId;
            string           couponIds        = value.couponIds;
            int              integral         = value.integral;
            bool             isCashOnDelivery = value.isCashOnDelivery;
            int              invoiceType      = value.invoiceType;
            string           invoiceTitle     = value.invoiceTitle;
            string           invoiceContext   = value.invoiceContext;
            OrderCreateModel model            = new OrderCreateModel();
            IOrderService    create           = Instance <IOrderService> .Create;

            model.PlatformType     = PlatformType.Android;
            model.CurrentUser      = this.CurrentUser;
            model.ReceiveAddressId = recieveAddressId;
            model.Integral         = integral;
            model.Capital          = value.CapitalAmount;
            model.IsCashOnDelivery = isCashOnDelivery;
            model.Invoice          = (InvoiceType)invoiceType;
            model.InvoiceContext   = invoiceContext;
            model.InvoiceTitle     = invoiceTitle;
            model.InvoiceCode      = value.invoiceCode;
            OrderShop[] orderShopArray = JsonConvert.DeserializeObject <OrderShop[]>(value.jsonOrderShops);
            model.OrderShops   = orderShopArray;
            model.OrderRemarks = (IEnumerable <string>)Enumerable.ToArray <string>(Enumerable.Select <OrderShop, string>((IEnumerable <OrderShop>)orderShopArray, (Func <OrderShop, string>)(p => p.Remark)));
            try
            {
                long[] numArray = Enumerable.ToArray <long>(Enumerable.Select <string, long>(Enumerable.Where <string>((IEnumerable <string>)cartItemIds.Split(','), (Func <string, bool>)(d => !string.IsNullOrWhiteSpace(d))), (Func <string, long>)(item => long.Parse(item))));
                IQueryable <ShoppingCartItem> cartItems = CartApplication.GetCartItems((IEnumerable <long>)numArray);
                model.SkuIds       = (IEnumerable <string>)Enumerable.ToList <string>((IEnumerable <string>)Queryable.Select <ShoppingCartItem, string>(cartItems, (Expression <Func <ShoppingCartItem, string> >)(e => e.SkuId)));
                model.Counts       = (IEnumerable <int>)Enumerable.ToList <int>((IEnumerable <int>)Queryable.Select <ShoppingCartItem, int>(cartItems, (Expression <Func <ShoppingCartItem, int> >)(e => e.Quantity)));
                model.CartItemIds  = numArray;
                model.CouponIdsStr = OrderHelper.ConvertUsedCoupon(couponIds);
                List <OrderInfo>   order      = create.CreateOrder(model);
                IEnumerable <long> enumerable = (IEnumerable <long>)Enumerable.ToArray <long>(Enumerable.Select <OrderInfo, long>((IEnumerable <OrderInfo>)order, (Func <OrderInfo, long>)(item => item.Id)));
                Decimal            num        = Enumerable.Sum <OrderInfo>((IEnumerable <OrderInfo>)order, (Func <OrderInfo, Decimal>)(item => item.OrderTotalAmount));
                string             str        = "false";
                if (num == new Decimal(0))
                {
                    str = "true";
                }
                return((object)this.Json(new
                {
                    Success = "true",
                    OrderIds = enumerable,
                    RealTotalIsZero = str
                }));
            }
            catch (HimallException ex)
            {
                return((object)this.Json(new
                {
                    Success = "false",
                    Msg = ex.Message
                }));
            }
            catch (Exception ex)
            {
                return((object)this.Json(new
                {
                    Success = "false",
                    Msg = "提交订单异常"
                }));
            }
        }
Пример #6
0
        /// <summary>
        /// 购物车方式提交的订单
        /// </summary>
        /// <param name="value">数据</param>
        public object PostSubmitOrderByCart(OrderSubmitOrderByCartModel value)
        {
            CheckUserLogin();
            string cartItemIds      = value.cartItemIds;
            long   recieveAddressId = value.recieveAddressId;
            string couponIds        = value.couponIds;
            int    integral         = value.integral;

            bool   isCashOnDelivery = value.isCashOnDelivery;
            int    invoiceType      = value.invoiceType;
            string invoiceTitle     = value.invoiceTitle;
            string invoiceContext   = value.invoiceContext;
            //end
            string           orderRemarks = "";//value.orderRemarks;//订单备注
            OrderCreateModel model        = new OrderCreateModel();
            var orderService = ServiceProvider.Instance <IOrderService> .Create;
            IEnumerable <long> orderIds;

            model.PlatformType     = PlatformType.Android;
            model.CurrentUser      = CurrentUser;
            model.ReceiveAddressId = recieveAddressId;
            model.Integral         = integral;


            model.IsCashOnDelivery = isCashOnDelivery;
            model.Invoice          = (InvoiceType)invoiceType;
            model.InvoiceContext   = invoiceContext;
            model.InvoiceTitle     = invoiceTitle;
            //end
            CommonModel.OrderShop[] OrderShops = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderShop[]>(value.jsonOrderShops);
            model.OrderShops   = OrderShops;//用户APP选择门店自提时用到,2.5版本未支持门店自提
            model.OrderRemarks = OrderShops.Select(p => p.Remark).ToArray();
            try
            {
                var cartItemIdsArr = cartItemIds.Split(',').Select(item => long.Parse(item)).ToArray();
                //根据购物车项补充sku数据
                var cartItems = CartApplication.GetCartItems(cartItemIdsArr);
                model.SkuIds = cartItems.Select(e => e.SkuId).ToList();
                model.Counts = cartItems.Select(e => e.Quantity).ToList();

                model.CartItemIds  = cartItemIdsArr;
                model.CouponIdsStr = OrderHelper.ConvertUsedCoupon(couponIds);
                var orders = orderService.CreateOrder(model);
                orderIds = orders.Select(item => item.Id).ToArray();
                decimal orderTotals     = orders.Sum(item => item.OrderTotalAmount);
                var     realTotalIsZero = "false";
                if (orderTotals == 0)
                {
                    realTotalIsZero = "true";
                }
                return(Json(new { Success = "true", OrderIds = orderIds, RealTotalIsZero = realTotalIsZero }));
            }
            catch (HimallException he)
            {
                return(Json(new { Success = "false", Msg = he.Message }));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = "false", Msg = "提交订单异常" }));
            }
        }
Пример #7
0
        /// <summary>
        /// 购物车方式提交的订单
        /// </summary>
        /// <param name="value">数据</param>
        private object SubmitOrderByCart(OrderSubmitOrderByCartModel value)
        {
            string cartItemIds      = value.cartItemIds;
            long   recieveAddressId = value.recieveAddressId;
            string couponIds        = value.couponIds;
            int    integral         = value.integral;

            bool   isCashOnDelivery = value.isCashOnDelivery;
            int    invoiceType      = value.invoiceType;
            string invoiceTitle     = value.invoiceTitle;
            string invoiceContext   = value.invoiceContext;

            OrderCreateModel model = new OrderCreateModel();
            List <OrderInfo> infos = new List <OrderInfo>();

            var orderService = ServiceProvider.Instance <IOrderService> .Create;
            IEnumerable <long> orderIds;

            model.PlatformType     = PlatformType.WeiXinSmallProg;
            model.CurrentUser      = CurrentUser;
            model.ReceiveAddressId = recieveAddressId;
            model.Integral         = integral;

            model.formId  = value.formId;
            model.Capital = value.Capital;

            model.IsCashOnDelivery = isCashOnDelivery;
            model.Invoice          = (InvoiceType)invoiceType;
            model.InvoiceContext   = invoiceContext;
            model.InvoiceTitle     = invoiceTitle;

            if (value.isStore)
            {
                model.IsShopbranchOrder = true;
            }
            //end
            CommonModel.OrderShop[] OrderShops = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderShop[]>(value.jsonOrderShops);
            model.OrderShops   = OrderShops;//用户APP选择门店自提时用到,2.5版本未支持门店自提
            model.OrderRemarks = OrderShops.Select(p => p.Remark).ToArray();
            try
            {
                var cartItemIdsArr = cartItemIds.Split(',').Select(item => long.Parse(item)).ToArray();
                //根据购物车项补充sku数据
                var cartItems = CartApplication.GetCartItems(cartItemIdsArr);
                model.SkuIds = cartItems.Select(e => e.SkuId).ToList();
                model.Counts = cartItems.Select(e => e.Quantity).ToList();

                model.CartItemIds  = cartItemIdsArr;
                model.CouponIdsStr = CouponApplication.ConvertUsedCoupon(couponIds);

                var orders = orderService.CreateOrder(model);
                orderIds = orders.Select(item => item.Id).ToArray();
                decimal orderTotals = orders.Where(d => d.PaymentType != Entities.OrderInfo.PaymentTypes.CashOnDelivery).Sum(item => item.OrderTotalAmount);

                return(Json(new { OrderId = string.Join(",", orderIds), OrderTotal = orderTotals,
                                  RealTotalIsZero = (orderTotals - model.Capital) == 0, msg = "提交成功" }));
            }
            catch (MallException he)
            {
                return(Json(ErrorResult <dynamic>(he.Message)));
            }
        }
Пример #8
0
        /// <summary>
        /// 购物车方式提交的订单
        /// </summary>
        /// <param name="value">数据</param>
        public object PostSubmitOrderByCart(OrderSubmitOrderByCartModel value)
        {
            CheckUserLogin();
            if (value.CapitalAmount > 0 && !string.IsNullOrEmpty(value.PayPwd))
            {
                var flag = MemberApplication.VerificationPayPwd(CurrentUser.Id, value.PayPwd);
                if (!flag)
                {
                    return(ErrorResult("预存款支付密码错误"));
                }
            }
            string cartItemIds      = value.cartItemIds;
            long   recieveAddressId = value.recieveAddressId;
            string couponIds        = value.couponIds;
            int    integral         = value.integral;

            decimal capitalAmount = value.CapitalAmount;

            bool   isCashOnDelivery = value.isCashOnDelivery;
            int    invoiceType      = value.invoiceType;
            string invoiceTitle     = value.invoiceTitle;
            string invoiceContext   = value.invoiceContext;
            string invoiceCode      = value.invoiceCode;

            OrderCreateModel model = new OrderCreateModel();
            var orderService       = ServiceProvider.Instance <IOrderService> .Create;
            IEnumerable <long> orderIds;

            model.PlatformType     = PlatformType.Android;
            model.CurrentUser      = CurrentUser;
            model.ReceiveAddressId = recieveAddressId;
            model.Integral         = integral;

            model.Capital = capitalAmount;//预存款

            model.IsCashOnDelivery = isCashOnDelivery;
            model.Invoice          = (InvoiceType)invoiceType;
            model.InvoiceContext   = invoiceContext;
            model.InvoiceTitle     = invoiceTitle;
            model.InvoiceCode      = invoiceCode;
            //end
            CommonModel.OrderShop[] OrderShops = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderShop[]>(value.jsonOrderShops);
            model.OrderShops   = OrderShops;//用户APP选择门店自提时用到,2.5版本未支持门店自提
            model.OrderRemarks = OrderShops.Select(p => p.Remark).ToArray();
            try
            {
                var cartItemIdsArr = cartItemIds.Split(',').Select(item => long.Parse(item)).ToArray();
                //根据购物车项补充sku数据
                var cartItems = CartApplication.GetCartItems(cartItemIdsArr);
                model.SkuIds = cartItems.Select(e => e.SkuId).ToList();
                model.Counts = cartItems.Select(e => e.Quantity).ToList();

                model.CartItemIds  = cartItemIdsArr;
                model.CouponIdsStr = CouponApplication.ConvertUsedCoupon(couponIds);
                var orders = orderService.CreateOrder(model);
                orderIds = orders.Select(item => item.Id).ToArray();
                decimal orderTotals = orders.Where(d => d.PaymentType != Entities.OrderInfo.PaymentTypes.CashOnDelivery).Sum(item => item.OrderTotalAmount);
                return(new { success = true, OrderIds = orderIds, RealTotalIsZero = orderTotals == 0 });
            }
            catch (HimallException he)
            {
                return(ErrorResult(he.Message));
            }
            catch (Exception ex)
            {
                return(ErrorResult("提交订单异常"));
            }
        }