/// <summary> /// 确认订单信息 /// </summary> /// <param name="id"></param> /// <param name="count"></param> /// <returns></returns> public GiftOrderConfirmPageModel ConfirmOrder(GiftConfirmOrder value) { if (value.Count < 1) { value.Count = 1; } var id = value.ID; var regionId = value.RegionId; var count = value.Count; //Checkout GiftOrderConfirmPageModel data = new GiftOrderConfirmPageModel(); List <GiftOrderItemDtoModel> gorditemlist = new List <GiftOrderItemDtoModel>(); GiftOrderItemDtoModel gorditem; //订单项 #region 礼品信息判断 //礼品信息 GiftInfo giftdata = _iGiftService.GetById(id); if (giftdata == null) { throw new Exception("错误的礼品编号!"); } #endregion gorditem = new GiftOrderItemDtoModel(); //补充订单项 gorditem.GiftId = giftdata.Id; gorditem.GiftName = giftdata.GiftName; gorditem.GiftValue = giftdata.GiftValue; gorditem.ImagePath = giftdata.ImagePath; gorditem.OrderId = 0; gorditem.Quantity = count; gorditem.SaleIntegral = giftdata.NeedIntegral; if (!string.IsNullOrWhiteSpace(gorditem.ImagePath)) { gorditem.DefaultImage = HimallIO.GetRomoteProductSizeImage(gorditem.ImagePath, 1, ImageSize.Size_100.GetHashCode()); } gorditemlist.Add(gorditem); data.GiftList = gorditemlist; data.GiftValueTotal = (decimal)data.GiftList.Sum(d => d.Quantity * d.GiftValue); data.TotalAmount = (int)data.GiftList.Sum(d => d.SaleIntegral * d.Quantity); //用户地址 Entities.ShippingAddressInfo shipdata = GetShippingAddress(regionId); if (shipdata != null) { Mapper.CreateMap <Entities.ShippingAddressInfo, ShippingAddressDtoModel>(); ShippingAddressDtoModel shipobj = Mapper.Map <ShippingAddressDtoModel>(shipdata); shipobj.Address = shipobj.Address + " " + shipdata.AddressDetail; data.ShipAddress = shipobj; } data.success = true; return(data); }
/// <summary> /// 提交并处理订单 /// </summary> /// <param name="id"></param> /// <param name="regionId"></param> /// <param name="count"></param> /// <returns></returns> public Result SubmitOrder(GiftConfirmOrder value) { Result result = new Result() { success = false, msg = "未知错误", code = -1 }; bool isdataok = true; long id = value.ID; var regionId = value.RegionId; if (regionId < 1) { result.success = false; result.msg = "错误的收货地址!"; result.code = -8; return(result); } int count = value.Count; if (count < 1) { isdataok = false; result.success = false; result.msg = "错误的兑换数量!"; result.code = -8; return(result); } if (CurrentUser == null) { isdataok = false; result.success = false; result.msg = "用户未登录!"; result.code = -6; return(result); } //Checkout List <GiftOrderItemModel> gorditemlist = new List <GiftOrderItemModel>(); var curUser = _iMemberService.GetMember(CurrentUser.Id); if (curUser == null) { isdataok = false; result.success = false; result.msg = "用户登录错误!"; result.code = -6; return(result); } var userInte = MemberIntegralApplication.GetMemberIntegral(curUser.Id); #region 礼品信息判断 //礼品信息 GiftInfo giftdata = _iGiftService.GetById(id); if (giftdata == null) { isdataok = false; result.success = false; result.msg = "礼品不存在!"; result.code = -2; return(result); } if (giftdata.GetSalesStatus != GiftInfo.GiftSalesStatus.Normal) { isdataok = false; result.success = false; result.msg = "礼品已失效!"; result.code = -2; return(result); } //库存判断 if (count > giftdata.StockQuantity) { isdataok = false; result.success = false; result.msg = "礼品库存不足,仅剩 " + giftdata.StockQuantity.ToString() + " 件!"; result.code = -3; return(result); } //积分数 if (giftdata.NeedIntegral < 1) { isdataok = false; result.success = false; result.msg = "礼品关联等级信息有误或礼品积分数据有误!"; result.code = -5; return(result); } #endregion #region 用户信息判断 //限购数量 if (giftdata.LimtQuantity > 0) { int ownbuynumber = _iGiftsOrderService.GetOwnBuyQuantity(CurrentUser.Id, id); if (ownbuynumber + count > giftdata.LimtQuantity) { isdataok = false; result.success = false; result.msg = "超过礼品限兑数量!"; result.code = -4; return(result); } } if (giftdata.NeedIntegral * count > userInte.AvailableIntegrals) { isdataok = false; result.success = false; result.msg = "积分不足!"; result.code = -6; return(result); } //等级判定 if (!MemberGradeApplication.IsAllowGrade(CurrentUser.Id, giftdata.NeedGrade)) { isdataok = false; result.success = false; result.msg = "用户等级不足!"; result.code = -6; return(result); } #endregion Entities.ShippingAddressInfo shipdata = GetShippingAddress(regionId); if (shipdata == null) { isdataok = false; result.success = false; result.msg = "错误的收货人地址信息!"; result.code = -6; return(result); } if (isdataok) { gorditemlist.Add(new GiftOrderItemModel { GiftId = giftdata.Id, Counts = count }); GiftOrderModel createorderinfo = new GiftOrderModel(); createorderinfo.Gifts = gorditemlist; createorderinfo.CurrentUser = curUser; createorderinfo.ReceiveAddress = shipdata; Himall.Entities.GiftOrderInfo orderdata = _iGiftsOrderService.CreateOrder(createorderinfo); result.success = true; result.msg = orderdata.Id.ToString(); result.code = 1; } return(result); }