Example #1
0
        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));
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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());
        }
Example #4
0
        /// <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);
        }
Example #5
0
        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());
        }
Example #7
0
        /// <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());
 }
Example #9
0
        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));
        }
Example #10
0
        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 }));
        }
Example #11
0
 public JsonResult EditShippingAddress(Entities.ShippingAddressInfo info)
 {
     info.UserId = CurrentUser.Id;
     _iShippingAddressService.UpdateShippingAddress(info);
     return(Json(new { success = true, msg = "修改成功", id = info.Id }));
 }
Example #12
0
        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));
        }