Ejemplo n.º 1
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));
        }
Ejemplo n.º 2
0
        public object GetCanBuy(long id, int count)
        {
            CheckUserLogin();
            var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
            //礼品信息
            var giftdata = GiftApplication.GetById(id);

            if (giftdata == null)
            {
                return(Json(ErrorResult <bool>("礼品不存在!", code: -2)));
            }
            if (giftdata.GetSalesStatus != Mall.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)));
            }
            return(Json(new { success = true, msg = "可以购买!", code = 1 }));
        }
Ejemplo n.º 3
0
        public object GetList(int pageNo = 1, int pageSize = 10)
        {
            //礼品数据
            GiftQuery query = new GiftQuery();

            query.skey     = "";
            query.status   = Mall.Entities.GiftInfo.GiftSalesStatus.Normal;
            query.PageSize = pageSize;
            query.PageNo   = pageNo;
            QueryPageModel <GiftModel> gifts = GiftApplication.GetGifts(query);
            var list = gifts.Models.ToList();

            foreach (var item in list)
            {
                item.DefaultShowImage = MallIO.GetRomoteImagePath(item.GetImage(ImageSize.Size_350));
            }
            return(Json(new
            {
                Gifts = list,
                Total = gifts.Total,
                MaxPage = GetMaxPage(gifts.Total, pageSize)
            }));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 确认订单信息并提交
        /// </summary>
        /// <param name="id"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public ActionResult SubmitOrder(long id, long?regionId, int count = 1)
        {
            #region 礼品信息判断
            //礼品信息
            var giftdata = GiftApplication.GetGift(id);
            if (giftdata == null)
            {
                throw new HimallException("错误的礼品编号!");
            }
            #endregion
            var data         = new GiftOrderConfirmPageModel();
            var gorditemlist = new List <GiftOrderItemInfo>();
            var gorditem     = new GiftOrderItemInfo(); //补充订单项
            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;
            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);

            //用户地址
            data.ShipAddress = GetShippingAddress(regionId);

            //顶部信息 Logo
            ViewBag.Logo = SiteSettingApplication.SiteSettings.Logo;//获取Logo
            ViewBag.Step = 2;

            ViewBag.Keyword = SiteSettings.Keyword;
            return(View(data));
        }
Ejemplo n.º 5
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 }));
        }
Ejemplo n.º 6
0
        public object GetIndexData(string openId = "")
        {
            //轮播图
            dynamic result  = new System.Dynamic.ExpandoObject();
            var     slidads = SlideApplication.GetSlidAds(0, Entities.SlideAdInfo.SlideAdType.AppGifts).ToList();

            foreach (var item in slidads)
            {
                item.ImageUrl = MallIO.GetRomoteImagePath(item.ImageUrl);
            }
            result.SlideAds = slidads;

            //大转盘刮刮卡
            var malllist = new List <IntegralMallAdInfo>();
            var robj     = GiftApplication.GetAdInfo(IntegralMallAdInfo.AdActivityType.Roulette, IntegralMallAdInfo.AdShowPlatform.APP);

            if (robj != null)
            {
                //robj.LinkUrl = Request.RequestUri.Scheme + "://" + Request.RequestUri.Authority + "/m-wap/BigWheel/index/" + robj.ActivityId;
                robj.LinkUrl = "/m-wap/BigWheel/index/" + robj.ActivityId;
                malllist.Add(robj);
            }
            var cobj = GiftApplication.GetAdInfo(IntegralMallAdInfo.AdActivityType.ScratchCard, IntegralMallAdInfo.AdShowPlatform.APP);

            if (cobj != null)
            {
                //cobj.LinkUrl = Request.RequestUri.Scheme + "://" + Request.RequestUri.Authority + "/m-wap/ScratchCard/index/" + cobj.ActivityId;
                cobj.LinkUrl = "/m-wap/ScratchCard/index/" + cobj.ActivityId;
                malllist.Add(cobj);
            }
            result.WeiActives = malllist;

            //首页礼品
            GiftQuery query = new GiftQuery();

            query.skey     = "";
            query.status   = Mall.Entities.GiftInfo.GiftSalesStatus.Normal;
            query.PageSize = 4;
            query.PageNo   = 1;
            QueryPageModel <GiftModel> gifts = GiftApplication.GetGifts(query);

            result.HomeGiftses  = gifts.Models.ToList();
            result.HasMoreGifts = gifts.Total > 4;
            foreach (var item in result.HomeGiftses)
            {
                item.DefaultShowImage = MallIO.GetRomoteImagePath(item.GetImage(ImageSize.Size_350));
            }

            //积分优惠券
            var coupons = CouponApplication.GetIntegralCoupons(1, 3);

            //   Mapper.CreateMap<CouponInfo, CouponGetIntegralCouponModel>();
            if (coupons.Models.Count > 0)
            {
                var datalist = coupons.Models.ToList();
                var objlist  = new List <CouponGetIntegralCouponModel>();
                foreach (var item in datalist)
                {
                    var tmp = item.Map <CouponGetIntegralCouponModel>();
                    tmp.ShowIntegralCover = MallIO.GetRomoteImagePath(item.IntegralCover);
                    var vshopobj = VshopApplication.GetVShopByShopId(tmp.ShopId);
                    if (vshopobj != null)
                    {
                        tmp.VShopId = vshopobj.Id;
                        //优惠价封面为空时,取微店Logo,微店Logo为空时,取商城微信Logo
                        if (string.IsNullOrWhiteSpace(tmp.ShowIntegralCover))
                        {
                            if (!string.IsNullOrWhiteSpace(vshopobj.WXLogo))
                            {
                                tmp.ShowIntegralCover = MallIO.GetRomoteImagePath(vshopobj.WXLogo);
                            }
                        }
                    }
                    if (string.IsNullOrWhiteSpace(tmp.ShowIntegralCover))
                    {
                        var siteset = SiteSettingApplication.SiteSettings;
                        tmp.ShowIntegralCover = MallIO.GetRomoteImagePath(siteset.WXLogo);
                    }
                    objlist.Add(tmp);
                }
                result.IntegralCoupons        = objlist.ToList();
                result.HasMoreIntegralCoupons = coupons.Total > 3;
            }

            result.HasLogined = false;

            //用户积分与等级
            if (CurrentUser != null)
            {
                //登录后处理会员积分
                var userInte  = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
                var userGrade = MemberGradeApplication.GetMemberGradeByUserIntegral(userInte.HistoryIntegrals);
                result.MemberAvailableIntegrals = userInte.AvailableIntegrals;
                result.MemberGradeName          = userGrade.GradeName;
                result.HasLogined = true;
            }
            return(Json(result));
        }
Ejemplo n.º 7
0
        public object GetGiftDetail(long id)
        {
            GiftsDetailModel result = new GiftsDetailModel();
            var data = GiftApplication.GetById(id);

            // Mapper.CreateMap<Entities.GiftInfo, GiftsDetailModel>();
            result = data.Map <GiftsDetailModel>();
            if (data == null)
            {
                throw new Exception("礼品信息无效!");
            }
            result.EndDateStr = data.EndDate.ToString("yyyy-MM-dd HH:mm:ss");
            string tmpdefaultimg = result.GetImage(ImageSize.Size_100);

            result.DefaultShowImage = MallIO.GetRomoteImagePath(tmpdefaultimg);
            result.Images           = new List <string>();
            result.Description      = result.Description.Replace("src=\"/Storage/", "src=\"" + Core.MallIO.GetRomoteImagePath("/Storage/") + "/");

            //补充图片信息
            for (var _n = 1; _n < 6; _n++)
            {
                string _imgpath = data.ImagePath + "/" + _n.ToString() + ".png";
                if (MallIO.ExistFile(_imgpath))
                {
                    var tmp = MallIO.GetRomoteImagePath(result.GetImage(ImageSize.Size_500, _n));
                    result.Images.Add(tmp);
                }
            }

            #region 礼品是否可兑
            result.CanBuy = true;
            //礼品信息
            if (result.CanBuy)
            {
                if (result.GetSalesStatus != Mall.Entities.GiftInfo.GiftSalesStatus.Normal)
                {
                    result.CanBuy       = false;
                    result.CanNotBuyDes = "礼品" + result.ShowSalesStatus;
                }
            }

            if (result.CanBuy)
            {
                //库存判断
                if (result.StockQuantity < 1)
                {
                    result.CanBuy       = false;
                    result.CanNotBuyDes = "已兑完";
                }
            }

            if (result.CanBuy)
            {
                //积分数
                if (result.NeedIntegral < 1)
                {
                    result.CanBuy       = false;
                    result.CanNotBuyDes = "礼品信息错误";
                }
            }
            #endregion

            #region 用户信息判断

            if (result.CanBuy && CurrentUser != null)
            {
                //限购数量
                if (result.LimtQuantity > 0)
                {
                    int ownbuynumber = GiftsOrderApplication.GetOwnBuyQuantity(CurrentUser.Id, id);
                    if (ownbuynumber >= result.LimtQuantity)
                    {
                        result.CanBuy       = false;
                        result.CanNotBuyDes = "限兑数量已满";
                    }
                }
                if (result.CanBuy)
                {
                    var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUserId);
                    if (userInte.AvailableIntegrals < result.NeedIntegral)
                    {
                        result.CanBuy       = false;
                        result.CanNotBuyDes = "积分不足";
                    }
                }
            }
            #endregion
            return(Json(result));
        }