/// <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 })); } }
/// <summary> /// 立即购买方式提交的订单 /// </summary> /// <param name="value">数据</param> private object SubmitOrderById(OrderSubmitOrderModel value) { string skuIds = value.skuIds; string counts = value.counts; 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 = string.Empty;//value.orderRemarks;//订单备注 OrderCreateModel model = new OrderCreateModel(); var orderService = ServiceProvider.Instance <IOrderService> .Create; var productService = ServiceProvider.Instance <IProductService> .Create; var skuIdArr = skuIds.Split(',').Select(item => item.ToString()); var countArr = counts.Split(',').Select(item => int.Parse(item)); model.CouponIdsStr = OrderHelper.ConvertUsedCoupon(couponIds); IEnumerable <long> orderIds; model.PlatformType = PlatformType.WeiXinSmallProg; model.CurrentUser = CurrentUser; model.ReceiveAddressId = recieveAddressId; model.SkuIds = skuIdArr; model.Counts = countArr; model.Integral = integral; model.IsCashOnDelivery = isCashOnDelivery; model.Invoice = (InvoiceType)invoiceType; model.InvoiceContext = invoiceContext; model.InvoiceTitle = invoiceTitle; model.formId = value.formId; CommonModel.OrderShop[] OrderShops = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderShop[]>(value.jsonOrderShops); model.OrderShops = OrderShops;//用户APP选择门店自提时用到,2.5版本未支持门店自提 model.OrderRemarks = OrderShops.Select(p => p.Remark).ToArray(); //end try { //处理限时购 if (skuIdArr.Count() == 1) { var skuid = skuIdArr.ElementAt(0); if (!string.IsNullOrWhiteSpace(skuid)) { var sku = productService.GetSku(skuid); bool isltmbuy = ServiceProvider.Instance <ILimitTimeBuyService> .Create.IsLimitTimeMarketItem(sku.ProductId); model.IslimitBuy = isltmbuy;//标识为限时购计算价格按限时购价格核算 } } var orders = orderService.CreateOrder(model); orderIds = orders.Select(item => item.Id).ToArray(); decimal orderTotals = orders.Sum(item => item.OrderTotalAmount); //orderIds = orderService.CreateOrder(CurrentUser.Id, skuIdArr, countArr, recieveAddressId, PlatformType); AddVshopBuyNumber(orderIds);//添加微店购买数量 return(Json(new { Status = "OK", Message = "提交成功", OrderId = string.Join(",", orderIds), OrderTotal = orderTotals })); } catch (HimallException he) { return(Json(new { Status = "NO", Message = he.Message })); } }
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 = "提交订单异常" })); } }
public object PostSubmitOrder(OrderSubmitOrderModel 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 skuIds = value.skuIds; string counts = value.counts; 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; string str = string.Empty; OrderCreateModel model = new OrderCreateModel(); IOrderService create1 = Instance <IOrderService> .Create; IProductService create2 = Instance <IProductService> .Create; IEnumerable <string> source = Enumerable.Select <string, string>((IEnumerable <string>)skuIds.Split(','), (Func <string, string>)(item => item.ToString())); IEnumerable <int> enumerable = Enumerable.Select <string, int>((IEnumerable <string>)counts.Split(','), (Func <string, int>)(item => int.Parse(item))); model.CouponIdsStr = OrderHelper.ConvertUsedCoupon(couponIds); model.PlatformType = PlatformType.Android; model.CurrentUser = this.CurrentUser; model.ReceiveAddressId = recieveAddressId; model.SkuIds = source; model.Counts = enumerable; 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))); model.IsShopbranchOrder = true; try { if (Enumerable.Count <string>(source) == 1) { string skuId = Enumerable.ElementAt <string>(source, 0); if (!string.IsNullOrWhiteSpace(skuId)) { bool flag = Instance <ILimitTimeBuyService> .Create.IsLimitTimeMarketItem(create2.GetSku(skuId).ProductId); model.IslimitBuy = flag; } } List <OrderInfo> order = create1.CreateOrder(model); IEnumerable <long> orderIds = (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)); this.AddVshopBuyNumber(orderIds); return((object)this.Json(new { Success = "true", OrderIds = orderIds, RealTotalIsZero = num == new Decimal(0) })); } catch (HimallException ex) { return((object)this.Json(new { Success = "false", Msg = ex.Message })); } catch (Exception ex) { return((object)this.Json(new { Success = "false", Msg = "提交订单异常" })); } }
/// <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 = "提交订单异常" })); } }