public object PostUpdateAddress(ShippingAddressOperaAddressPModel value) { CheckUserLogin(); Entities.ShippingAddressInfo shippingAddr = new Entities.ShippingAddressInfo(); shippingAddr.UserId = CurrentUser.Id; shippingAddr.Id = value.shippingId; shippingAddr.RegionId = value.regionId; shippingAddr.Address = value.address; shippingAddr.Phone = value.cellphone; shippingAddr.ShipTo = value.shipTo; shippingAddr.Latitude = value.lat; shippingAddr.Longitude = value.lng; shippingAddr.AddressDetail = value.addressDetail; try { ServiceProvider.Instance <IShippingAddressService> .Create.UpdateShippingAddress(shippingAddr); if (value.isDefault) { ServiceProvider.Instance <IShippingAddressService> .Create.SetDefaultShippingAddress(shippingAddr.Id, CurrentUserId); } } catch (Exception ex) { return(Json(ErrorResult <long>(ex.Message))); } return(Json(shippingAddr.Id)); }
/// <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); }
public object PostEditShippingAddress(ShippingAddressEditModel value) { if (value.shopbranchid == 0) { throw new MallException("获取门店ID失败"); } long shopBranchId = value.shopbranchid; CheckUserLogin(); Entities.ShippingAddressInfo shippingAddr = new Entities.ShippingAddressInfo(); shippingAddr.UserId = CurrentUser.Id; shippingAddr.Id = value.id; shippingAddr.RegionId = value.regionId; shippingAddr.Address = value.address; shippingAddr.Phone = value.phone; shippingAddr.ShipTo = value.shipTo; shippingAddr.Longitude = value.longitude; shippingAddr.Latitude = value.latitude; var shopBranchInfo = ServiceProvider.Instance <IShopBranchService> .Create.GetShopBranchById(shopBranchId); if (shopBranchInfo != null && shopBranchInfo.IsStoreDelive) { if (shopBranchInfo.ServeRadius > 0) { string form = string.Format("{0},{1}", shippingAddr.Latitude, shippingAddr.Longitude); //收货地址的经纬度 if (form.Length <= 1) //地址不含经纬度的不可配送 { throw new MallApiException("收货地址经纬度获取失败"); } double Distances = ServiceProvider.Instance <IShopBranchService> .Create.GetLatLngDistancesFromAPI(form, string.Format("{0},{1}", shopBranchInfo.Latitude, shopBranchInfo.Longitude)); if (Distances > shopBranchInfo.ServeRadius)//距离超过配送距离的不可配送,距离计算失败不可配送 { throw new MallApiException("距离超过门店配送距离的不可配送"); } } } else { throw new MallApiException("门店不提供配送服务"); } try { ServiceProvider.Instance <IShippingAddressService> .Create.UpdateShippingAddress(shippingAddr); } catch (Exception ex) { throw new MallApiException(ex.Message); } return(SuccessResult()); }
/// <summary> /// 获取收货地址 /// </summary> /// <param name="regionId"></param> /// <returns></returns> private Entities.ShippingAddressInfo GetShippingAddress(long?regionId) { Entities.ShippingAddressInfo result = null; if (regionId != null) { result = ShippingAddressApplication.GetUserShippingAddress((long)regionId); } else { result = ShippingAddressApplication.GetDefaultUserShippingAddressByUserId(CurrentUser.Id); } return(result); }
public object GetConfirmOrder(long id, int count, long?regionId = null) { CheckUserLogin(); if (count < 1) { count = 1; } //Checkout dynamic data = new System.Dynamic.ExpandoObject(); List <GiftOrderItemDtoModel> gorditemlist = new List <GiftOrderItemDtoModel>(); GiftOrderItemDtoModel gorditem; //订单项 //礼品信息 var giftdata = GiftApplication.GetById(id); if (giftdata == null) { throw new Exception("错误的礼品编号!"); } 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 = MallIO.GetRomoteProductSizeImage(gorditem.ImagePath, 1, ImageSize.Size_100.GetHashCode()); } gorditemlist.Add(gorditem); data.GiftList = gorditemlist; data.GiftValueTotal = (decimal)gorditemlist.Sum(d => d.Quantity * d.GiftValue); data.TotalAmount = (int)gorditemlist.Sum(d => d.SaleIntegral * d.Quantity); //用户地址 Entities.ShippingAddressInfo shipdata = GetShippingAddress(regionId); if (shipdata != null) { // Mapper.CreateMap<Entities.ShippingAddressInfo, ShippingAddressDtoModel>(); ShippingAddressDtoModel shipobj = shipdata.Map <ShippingAddressDtoModel>(); shipobj.Address = shipobj.Address + " " + shipdata.AddressDetail; data.ShipAddress = shipobj; } return(Json(data)); }
public object PostEditShippingAddress(ShippingAddressEditModel value) { CheckUserLogin(); Entities.ShippingAddressInfo shippingAddr = new Entities.ShippingAddressInfo(); shippingAddr.UserId = CurrentUser.Id; shippingAddr.Id = value.id; shippingAddr.RegionId = value.regionId; shippingAddr.Address = value.address; shippingAddr.Phone = value.phone; shippingAddr.ShipTo = value.shipTo; shippingAddr.Longitude = value.longitude; shippingAddr.Latitude = value.latitude; shippingAddr.AddressDetail = value.addressDetail; ServiceProvider.Instance <IShippingAddressService> .Create.UpdateShippingAddress(shippingAddr); return(SuccessResult()); }
/// <summary> /// 获取收货地址 /// </summary> /// <param name="regionId"></param> /// <returns></returns> private Entities.ShippingAddressInfo GetShippingAddress(long?regionId) { Entities.ShippingAddressInfo result = null; var _iShippingAddressService = ServiceApplication.Create <IShippingAddressService>(); if (regionId != null) { result = _iShippingAddressService.GetUserShippingAddress((long)regionId); } else { if (CurrentUser != null) { result = _iShippingAddressService.GetDefaultUserShippingAddressByUserId(CurrentUser.Id); } } return(result); }
public object PostAddShippingAddress(ShippingAddressAddModel value) { CheckUserLogin(); Entities.ShippingAddressInfo shippingAddr = new Entities.ShippingAddressInfo(); shippingAddr.UserId = CurrentUser.Id; shippingAddr.RegionId = value.regionId; shippingAddr.Address = value.address; shippingAddr.Phone = value.phone; shippingAddr.ShipTo = value.shipTo; shippingAddr.Latitude = value.latitude; shippingAddr.Longitude = value.longitude; shippingAddr.AddressDetail = value.addressDetail; try { ServiceProvider.Instance <IShippingAddressService> .Create.AddShippingAddress(shippingAddr); } catch (Exception ex) { return(ErrorResult(ex.Message)); } return(SuccessResult()); }
public JsonResult OrderSubmit(long id, long regionId, int count) { Result result = new Result() { success = false, msg = "未知错误", status = 0 }; bool isdataok = true; if (count < 1) { isdataok = false; result.success = false; result.msg = "错误的兑换数量!"; result.status = -8; return(Json(result)); } //Checkout List <GiftOrderItemModel> gorditemlist = new List <GiftOrderItemModel>(); #region 礼品信息判断 //礼品信息 GiftInfo giftdata = _iGiftService.GetById(id); if (giftdata == null) { isdataok = false; result.success = false; result.msg = "礼品不存在!"; result.status = -2; return(Json(result)); } if (giftdata.GetSalesStatus != GiftInfo.GiftSalesStatus.Normal) { isdataok = false; result.success = false; result.msg = "礼品已失效!"; result.status = -2; return(Json(result)); } //库存判断 if (count > giftdata.StockQuantity) { isdataok = false; result.success = false; result.msg = "礼品库存不足,仅剩 " + giftdata.StockQuantity.ToString() + " 件!"; result.status = -3; return(Json(result)); } //积分数 if (giftdata.NeedIntegral < 1) { isdataok = false; result.success = false; result.msg = "礼品关联等级信息有误或礼品积分数据有误!"; result.status = -5; return(Json(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.status = -4; return(Json(result)); } } var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id); if (giftdata.NeedIntegral * count > userInte.AvailableIntegrals) { isdataok = false; result.success = false; result.msg = "积分不足!"; result.status = -6; return(Json(result)); } if (giftdata.NeedGrade > 0) { //等级判定 if (!MemberGradeApplication.IsAllowGrade(CurrentUser.Id, giftdata.NeedGrade)) { isdataok = false; result.success = false; result.msg = "用户等级不足!"; result.status = -6; return(Json(result)); } } #endregion Entities.ShippingAddressInfo shipdata = GetShippingAddress(regionId); if (shipdata == null) { isdataok = false; result.success = false; result.msg = "错误的收货人地址信息!"; result.status = -6; return(Json(result)); } if (isdataok) { gorditemlist.Add(new GiftOrderItemModel { GiftId = giftdata.Id, Counts = count }); GiftOrderModel createorderinfo = new GiftOrderModel(); createorderinfo.Gifts = gorditemlist; createorderinfo.CurrentUser = CurrentUser; createorderinfo.ReceiveAddress = shipdata; Himall.Entities.GiftOrderInfo orderdata = _iGiftsOrderService.CreateOrder(createorderinfo); result.success = true; result.msg = orderdata.Id.ToString(); result.status = 1; } return(Json(result)); }
public object PostSubmitOrder(GiftConfirmOrderModel value) { CheckUserLogin(); long id = value.ID; var addressId = value.AddressId; if (addressId < 1) { return(Json(ErrorResult <bool>("错误的收货地址!", code: -8))); } int count = value.Count; if (count < 1) { return(Json(ErrorResult <bool>("错误的兑换数量!", code: -8))); } List <GiftOrderItemModel> gorditemlist = new List <GiftOrderItemModel>(); var curUser = MemberApplication.GetMember(CurrentUser.Id); if (curUser == null) { return(Json(ErrorResult <bool>("用户登录错误!", code: -6))); } var userInte = MemberIntegralApplication.GetMemberIntegral(curUser.Id); //礼品信息 var giftdata = GiftApplication.GetById(id); if (giftdata == null) { return(Json(ErrorResult <bool>("礼品不存在!", code: -2))); } if (giftdata.GetSalesStatus != Entities.GiftInfo.GiftSalesStatus.Normal) { return(Json(ErrorResult <bool>("礼品已失效!", code: -2))); } //库存判断 if (count > giftdata.StockQuantity) { return(Json(ErrorResult <bool>("礼品库存不足,仅剩 " + giftdata.StockQuantity.ToString() + " 件!", code: -3))); } //积分数 if (giftdata.NeedIntegral < 1) { return(Json(ErrorResult <bool>("礼品关联等级信息有误或礼品积分数据有误!", code: -5))); } //限购数量 if (giftdata.LimtQuantity > 0) { int ownbuynumber = GiftsOrderApplication.GetOwnBuyQuantity(CurrentUser.Id, id); if (ownbuynumber + count > giftdata.LimtQuantity) { return(Json(ErrorResult <bool>("超过礼品限兑数量!", code: -4))); } } if (giftdata.NeedIntegral * count > userInte.AvailableIntegrals) { return(Json(ErrorResult <bool>("积分不足!", code: -6))); } //等级判定 if (!MemberGradeApplication.IsAllowGrade(CurrentUser.Id, giftdata.NeedGrade)) { return(Json(ErrorResult <bool>("用户等级不足!", code: -6))); } Entities.ShippingAddressInfo shipdata = GetShippingAddress(addressId); if (shipdata == null) { return(Json(ErrorResult <bool>("错误的收货人地址信息!", code: -6))); } gorditemlist.Add(new GiftOrderItemModel { GiftId = giftdata.Id, Counts = count }); GiftOrderModel createorderinfo = new GiftOrderModel(); createorderinfo.Gifts = gorditemlist; createorderinfo.CurrentUser = curUser; createorderinfo.ReceiveAddress = shipdata; var orderdata = GiftsOrderApplication.CreateOrder(createorderinfo); return(Json(new { success = true, msg = orderdata.Id.ToString(), code = 1 })); }
public JsonResult EditShippingAddress(Entities.ShippingAddressInfo info) { info.UserId = CurrentUser.Id; _iShippingAddressService.UpdateShippingAddress(info); return(Json(new { success = true, msg = "修改成功", id = info.Id })); }
public object PostAddWXAddress(ShippingAddressOperaAddressPModel value) { CheckUserLogin(); try { if (string.IsNullOrWhiteSpace(value.address)) { throw new MallException("请填写详细地址"); } if (value.regionId <= 0 && (string.IsNullOrWhiteSpace(value.city) || string.IsNullOrWhiteSpace(value.county))) { throw new MallException("参数错误"); } if (value.regionId <= 0) { var _region = ServiceProvider.Instance <IRegionService> .Create.GetRegionByName(value.county, Region.RegionLevel.County); if (_region != null) { value.regionId = _region.Id; } } if (value.regionId <= 0) { throw new MallException("错误的地区信息"); } } catch (Exception ex) { return(Json(ErrorResult <long>(ex.Message))); } #region 如果存在相同地址就返回 var shoppingAddress = ServiceProvider.Instance <IShippingAddressService> .Create.GetUserShippingAddressByUserId(CurrentUser.Id); var _tmp = shoppingAddress.FirstOrDefault(d => d.RegionId == value.regionId && d.Address == value.address); if (_tmp != null) { return(Json(_tmp.Id)); } #endregion Entities.ShippingAddressInfo shippingAddr = new Entities.ShippingAddressInfo(); shippingAddr.UserId = CurrentUser.Id; shippingAddr.RegionId = value.regionId; shippingAddr.Address = value.address; shippingAddr.Phone = value.cellphone; shippingAddr.ShipTo = value.shipTo; shippingAddr.Latitude = value.lat; shippingAddr.Longitude = value.lng; shippingAddr.AddressDetail = value.addressDetail; try { ServiceProvider.Instance <IShippingAddressService> .Create.AddShippingAddress(shippingAddr); if (value.isDefault) { ServiceProvider.Instance <IShippingAddressService> .Create.SetDefaultShippingAddress(shippingAddr.Id, CurrentUserId); } } catch (Exception ex) { return(Json(ErrorResult <long>(ex.Message))); } return(Json(shippingAddr.Id)); }