Esempio n. 1
0
        public object GetUser(string UserKey)
        {
            CheckUserLogin();
            dynamic data   = SuccessResult();
            long    userId = CurrentUser.Id;

            var member = MemberApplication.GetMember(userId);

            data.UserId    = member.Id;
            data.UserName  = member.UserName;
            data.Photo     = string.IsNullOrEmpty(member.Photo) ? "" : HimallIO.GetRomoteImagePath(member.Photo);
            data.CellPhone = member.CellPhone;

            data.QQ       = member.QQ;
            data.BirthDay = member.BirthDay;
            data.Nick     = member.Nick;
            data.RealName = member.RealName;
            data.Sex      = (int)member.Sex;


            var orderStatic = StatisticApplication.GetMemberOrderStatistic(userId, true);

            //用户所有订单
            data.AllOrders = orderStatic.OrderCount;
            //待付款订单
            data.WaitingForPay = orderStatic.WaitingForPay;
            //待发货订单
            data.WaitingForDelivery = orderStatic.WaitingForDelivery;//获取待发货订单数
            //未评论订单
            data.WaitingForComments = orderStatic.WaitingForComments;
            //待收货订单/待消费
            data.WaitingForRecieve = orderStatic.WaitingForRecieve + OrderApplication.GetWaitConsumptionOrderNumByUserId(userId);
            //待处理的售后
            data.RefundOrders    = orderStatic.RefundCount;
            data.FavoriteShop    = ShopApplication.GetUserConcernShopsCount(userId);
            data.FavoriteProduct = FavoriteApplication.GetFavoriteCountByUser(userId);
            data.Coupon          = MemberApplication.GetAvailableCouponCount(userId);
            data.Integral        = MemberIntegralApplication.GetAvailableIntegral(userId);
            data.Balance         = MemberCapitalApplication.GetBalanceByUserId(userId);


            //用户参与的团数量
            var seastatus = new List <FightGroupOrderJoinStatus>
            {
                FightGroupOrderJoinStatus.Ongoing,
                FightGroupOrderJoinStatus.JoinSuccess,
                FightGroupOrderJoinStatus.BuildFailed,
                FightGroupOrderJoinStatus.BuildSuccess
            };

            //TODO:FG 查询待优化
            data.GroupTotal = ServiceProvider.Instance <IFightGroupService> .Create.GetJoinGroups(userId, seastatus, 1, 1).Total;

            data.MyGroup = ServiceProvider.Instance <IFightGroupService> .Create.CountJoiningOrder(userId);

            data.IsOpenRechargePresent = SiteSettingApplication.SiteSettings.IsOpenRechargePresent;

            MemberApplication.AddIntegel(member);//给用户加积分//执行登录后初始化相关操作
            return(data);
        }
Esempio n. 2
0
        public ActionResult OrderShare(string orderids, string source)
        {
            if (string.IsNullOrWhiteSpace(orderids))
            {
                throw new HimallException("预约单号不能为空!");
            }
            long orderId = 0L;
            IEnumerable <long> enumerable = orderids.Split(new char[] { ',' }).Select <string, long>(delegate(string e)
            {
                if (long.TryParse(e, out orderId))
                {
                    return(orderId);
                }
                return(0L);
            });

            if (MemberIntegralApplication.OrderIsShared(enumerable))
            {
                ViewBag.IsShared = true;
            }
            ViewBag.Source   = source;
            ViewBag.OrderIds = orderids;
            List <OrderDetailView> orderDetailViews = OrderApplication.GetOrderDetailViews(enumerable);

            return(base.View(orderDetailViews));
        }
Esempio n. 3
0
        public ActionResult Index()
        {
            SignInDetailModel model = new SignInDetailModel();

            model.isCurSign = false;
            int signday = SignIn();

            if (signday > 0)
            {
                model.isCurSign = true;
            }
            model.SignConfig = signConfig;
            var signinfo = _iMemberSignInService.GetSignInInfo(CurrentUser.Id);

            model.CurSignDurationDay = signinfo.DurationDay;
            model.CurSignDaySum      = signinfo.SignDaySum;
            var member = _iMemberService.GetMember(CurrentUser.Id);

            model.UserInfo = member;
            var userInte = MemberIntegralApplication.GetMemberIntegral(member.Id);

            if (userInte != null)
            {
                model.MemberAvailableIntegrals = userInte.AvailableIntegrals;
            }
            return(View("Detail", model));
        }
Esempio n. 4
0
        public object GetUserInfo()
        {
            CheckUserLogin();
            if (CurrentUser != null)
            {
                UserMemberInfo memberInfo = CurrentUser;
                var            userInte   = MemberIntegralApplication.GetMemberIntegral(memberInfo.Id);
                var            userGrade  = MemberGradeApplication.GetMemberGradeByUserIntegral(userInte.HistoryIntegrals);

                if (!string.IsNullOrEmpty(memberInfo.Photo))
                {
                    if (memberInfo.Photo.StartsWith("http"))
                    {
                        memberInfo.Photo = memberInfo.Photo.Replace("http://wzp.duoyunfenxiao.com", "");
                    }
                }

                var data = new
                {
                    Id        = memberInfo.Id,
                    Photo     = memberInfo.Photo,
                    Nick      = memberInfo.Nick,
                    GradeName = userGrade.GradeName,
                    Sex       = memberInfo.Sex,
                    CellPhone = memberInfo.CellPhone,
                    Hobby     = memberInfo.Hobby
                };

                return(Json(new { Success = true, Data = data }));
            }
            else
            {
                return(Json(new { Success = false, Message = "未登录" }));
            }
        }
        public ActionResult Coupon(int page = 1)
        {
            int pagesize = 12;
            ObsoletePageModel <CouponInfo> coupons = _iCouponService.GetIntegralCoupons(page, pagesize);
            List <CouponInfo> datalist             = coupons.Models.ToList();

            #region 分页控制
            PagingInfo info = new PagingInfo
            {
                CurrentPage  = page,
                ItemsPerPage = pagesize,
                TotalItems   = coupons.Total
            };
            ViewBag.pageInfo = info;

            #endregion

            int MemberAvailableIntegrals = 0;
            var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
            if (userInte != null)
            {
                MemberAvailableIntegrals = userInte.AvailableIntegrals;
            }
            ViewBag.MemberAvailableIntegrals = MemberAvailableIntegrals;
            return(View(datalist));
        }
Esempio n. 6
0
        public JsonResult <Result <dynamic> > GetIntegralRecordList(string openId, int pageNo = 1, int pageSize = 10)
        {
            CheckUserLogin();
            IntegralRecordQuery query = new IntegralRecordQuery
            {
                UserId   = CurrentUserId,
                PageNo   = pageNo,
                PageSize = pageSize
            };
            var list = MemberIntegralApplication.GetIntegralRecordList(query);

            if (list.Models != null)
            {
                var recordlist = list.Models.Select(a =>
                {
                    var actions = ServiceProvider.Instance <IMemberIntegralService> .Create.GetIntegralRecordAction(a.Id);
                    return(new
                    {
                        Id = a.Id,
                        MemberId = a.MemberId,
                        UserName = a.UserName,
                        TypeName = (a.TypeId == MemberIntegralInfo.IntegralType.WeiActivity) ? a.ReMark : a.TypeId.ToDescription(),
                        Integral = a.Integral,
                        RecordDate = ((DateTime)a.RecordDate).ToString("yyyy-MM-dd HH:mm:ss"),
                        ReMark = GetRemarkFromIntegralType(a.TypeId, actions, a.ReMark)
                    });
                });
                return(JsonResult <dynamic>(recordlist));
            }

            return(JsonResult <dynamic>(new int[0]));
        }
Esempio n. 7
0
        /// <summary>
        /// 侧边我的资产
        /// </summary>
        /// <returns></returns>
        public ActionResult MyAsset()
        {
            MyAssetViewModel result = new Models.MyAssetViewModel();

            result.MyCouponCount = 0;
            result.isLogin       = CurrentUser != null;
            ViewBag.isLogin      = result.isLogin ? "true" : "false";
            //用户积分
            result.MyMemberIntegral = result.isLogin ? MemberIntegralApplication.GetAvailableIntegral(CurrentUser.Id) : 0;
            //关注商品
            result.MyConcernsProducts = result.isLogin ? _iProductService.GetUserAllConcern(CurrentUser.Id, 10) : new List <Entities.FavoriteInfo>();
            //优惠卷
            var coupons = result.isLogin ? _iCouponService.GetAllUserCoupon(CurrentUser.Id).ToList() : new List <UserCouponInfo>();

            coupons               = coupons == null ? new List <UserCouponInfo>() : coupons;
            result.MyCoupons      = coupons;
            result.MyCouponCount += result.MyCoupons.Count();

            //红包
            result.MyShopBonus    = ShopBonusApplication.GetShopBounsByUser(CurrentUser.Id);
            result.MyCouponCount += result.MyShopBonus.Count();

            //浏览的商品
            var browsingPro = result.isLogin ? BrowseHistrory.GetBrowsingProducts(10, CurrentUser == null ? 0 : CurrentUser.Id) : new List <ProductBrowsedHistoryModel>();

            result.MyBrowsingProducts = browsingPro;
            ViewBag.Keyword           = SiteSettings.Keyword;
            return(View(result));
        }
Esempio n. 8
0
        public ActionResult Coupon(int page = 1)
        {
            if (CurrentUser == null)
            {
                string url       = Request.GetDisplayUrl();
                string returnurl = System.Web.HttpUtility.HtmlEncode(url);
                return(RedirectToAction("", "Login", new { area = "Web", returnUrl = returnurl }));
            }
            int pagesize = 12;
            QueryPageModel <Entities.CouponInfo> coupons  = _iCouponService.GetIntegralCoupons(page, pagesize);
            List <Entities.CouponInfo>           datalist = coupons.Models.ToList();

            #region 分页控制
            PagingInfo info = new PagingInfo
            {
                CurrentPage  = page,
                ItemsPerPage = pagesize,
                TotalItems   = coupons.Total
            };
            ViewBag.pageInfo = info;

            #endregion

            int MemberAvailableIntegrals = 0;
            var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
            if (userInte != null)
            {
                MemberAvailableIntegrals = userInte.AvailableIntegrals;
            }
            ViewBag.MemberAvailableIntegrals = MemberAvailableIntegrals;
            ViewBag.Keyword = SiteSettings.Keyword;
            return(View(datalist));
        }
Esempio n. 9
0
        public ActionResult OrderShare(string orderids, string source)
        {
            if (string.IsNullOrWhiteSpace(orderids))
            {
                throw new MallException("订单号不能为空!");
            }
            long orderId = 0;
            var  ids     = orderids.Split(',').Select(e =>
            {
                if (long.TryParse(e, out orderId))
                {
                    return(orderId);
                }
                else
                {
                    return(0);
                }
            }
                                                      );

            if (MemberIntegralApplication.OrderIsShared(ids))
            {
                ViewBag.IsShared = true;
            }
            ViewBag.Source   = source;
            ViewBag.OrderIds = orderids;
            var orders = OrderApplication.GetOrderDetailViews(ids);

            return(View(orders));
        }
Esempio n. 10
0
        public JsonResult GetCouponList(int page = 1, int pagesize = 10)
        {
            QueryPageModel <CouponInfo> coupons = _iCouponService.GetIntegralCoupons(page, pagesize);

            Mapper.CreateMap <CouponInfo, CouponGetIntegralCouponModel>();
            QueryPageModel <CouponGetIntegralCouponModel> result = new QueryPageModel <CouponGetIntegralCouponModel>();

            result.Total = coupons.Total;
            if (result.Total > 0)
            {
                var datalist = coupons.Models.ToList();
                var objlist  = new List <CouponGetIntegralCouponModel>();
                foreach (var item in datalist)
                {
                    var tmp = Mapper.Map <CouponGetIntegralCouponModel>(item);
                    tmp.ShowIntegralCover = HimallIO.GetRomoteImagePath(item.IntegralCover);
                    var vshopobj = _iVShopService.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 = Core.HimallIO.GetRomoteImagePath(vshopobj.WXLogo);
                            }
                        }
                    }
                    if (string.IsNullOrWhiteSpace(tmp.ShowIntegralCover))
                    {
                        var siteset = SiteSettingApplication.SiteSettings;
                        tmp.ShowIntegralCover = HimallIO.GetRomoteImagePath(siteset.WXLogo);
                    }
                    objlist.Add(tmp);
                }
                result.Models = objlist.ToList();
            }

            int MemberAvailableIntegrals = 0;

            //用户积分与等级
            if (CurrentUser != null)
            {
                //登录后处理会员积分
                var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
                MemberAvailableIntegrals = userInte.AvailableIntegrals;
            }

            var _result = new
            {
                success = true,
                MemberAvailableIntegrals = MemberAvailableIntegrals,
                data = result.Models
            };

            return(Json(_result, JsonRequestBehavior.AllowGet));
        }
Esempio n. 11
0
        public JsonResult ReceiveCoupons(long couponId, long shopId)
        {
            var service = _iCouponService;
            var model   = service.GetCouponInfo(shopId, couponId);

            if (CurrentUser == null)
            {
                return(Json(new Result {
                    success = false, msg = "请登录后领取", status = -1
                }));
            }
            if (model.EndTime < DateTime.Now.Date)
            {
                return(Json(new Result {
                    success = false, msg = "此优惠券已过期", status = -2
                }));
            }
            var max = service.GetUserReceiveCoupon(couponId, CurrentUser.Id);

            if (model.PerMax != 0 && max >= model.PerMax)
            {
                return(Json(new Result {
                    success = false, msg = "每人最多领取" + model.PerMax + "张该类型的优惠券", status = -3
                }));
            }
            var record = service.GetRecordCountByCoupon(couponId);

            if (record >= model.Num)
            {
                return(Json(new Result {
                    success = false, msg = "优惠券已领完", status = -3
                }));
            }

            if (model.ReceiveType == Entities.CouponInfo.CouponReceiveType.IntegralExchange)
            {
                var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
                if (userInte.AvailableIntegrals < model.NeedIntegral)
                {
                    return(Json(new Result {
                        success = false, msg = "积分不足", status = -4
                    }));
                }
            }
            Entities.CouponRecordInfo info = new Entities.CouponRecordInfo();
            info.UserId   = CurrentUser.Id;
            info.UserName = CurrentUser.UserName;
            info.ShopId   = shopId;
            info.CouponId = couponId;
            service.AddCouponRecord(info);
            return(Json(new Result {
                success = true, msg = "领取成功", status = 1
            }));
        }
Esempio n. 12
0
        //领取优惠券
        public object PostAcceptCoupon(CouponAcceptCouponModel value)
        {
            CheckUserLogin();
            long vshopId       = value.vshopId;
            long couponId      = value.couponId;
            var  couponService = ServiceProvider.Instance <ICouponService> .Create;
            var  couponInfo    = couponService.GetCouponInfo(couponId);

            if (couponInfo.EndTime < DateTime.Now)
            {
                //已经失效
                return(ErrorResult("优惠券已经过期.", 2));
            }
            CouponRecordQuery crQuery = new CouponRecordQuery();

            crQuery.CouponId = couponId;
            crQuery.UserId   = CurrentUser.Id;
            QueryPageModel <CouponRecordInfo> pageModel = couponService.GetCouponRecordList(crQuery);

            if (couponInfo.PerMax != 0 && pageModel.Total >= couponInfo.PerMax)
            {
                //达到个人领取最大张数
                return(ErrorResult("达到个人领取最大张数,不能再领取.", 3));
            }
            crQuery = new CouponRecordQuery()
            {
                CouponId = couponId
            };
            pageModel = couponService.GetCouponRecordList(crQuery);
            if (pageModel.Total >= couponInfo.Num)
            {
                //达到领取最大张数
                return(ErrorResult("此优惠券已经领完了.", 4));
            }
            if (couponInfo.ReceiveType == CouponInfo.CouponReceiveType.IntegralExchange)
            {
                var integral = MemberIntegralApplication.GetAvailableIntegral(CurrentUserId);
                if (integral < couponInfo.NeedIntegral)
                {
                    return(ErrorResult("积分不足 " + couponInfo.NeedIntegral.ToString(), 5));
                }
            }
            CouponRecordInfo couponRecordInfo = new CouponRecordInfo()
            {
                CouponId = couponId,
                UserId   = CurrentUser.Id,
                UserName = CurrentUser.UserName,
                ShopId   = couponInfo.ShopId
            };

            couponService.AddCouponRecord(couponRecordInfo);
            return(SuccessResult("", 1));
        }
Esempio n. 13
0
        public JsonResult Coupon()
        {
            int  memberIntegral = 0; List <Coupon> baseCoupons = new List <Coupon>();
            long shopId = CurrentSellerManager != null ? CurrentSellerManager.ShopId : 0;

            if (CurrentUser != null)
            {
                memberIntegral = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id).AvailableIntegrals;

                //优惠卷
                var coupons = CouponApplication.GetAllUserCoupon(CurrentUser.Id).ToList();
                coupons = coupons == null ? new List <UserCouponInfo>() : coupons;
                if (coupons != null)
                {
                    baseCoupons.AddRange(coupons.Select(p => new Coupon()
                    {
                        BasePrice    = p.Price,
                        BaseShopId   = p.ShopId,
                        BaseShopName = p.ShopName,
                        BaseType     = p.BaseType,
                        OrderAmount  = p.OrderAmount
                    }));
                }

                //红包
                var shopBonus = ShopBonusApplication.GetCanUseDetailByUserId(CurrentUser.Id);
                shopBonus = shopBonus == null ? new List <ShopBonusReceiveInfo>() : shopBonus;
                if (shopBonus != null)
                {
                    baseCoupons.AddRange(shopBonus.Select(p => {
                        var grant = _iShopBonusService.GetGrant(p.BonusGrantId);
                        var bonus = _iShopBonusService.GetShopBonus(grant.ShopBonusId);
                        var shop  = ShopApplication.GetShop(bonus.ShopId);

                        return(new Coupon()
                        {
                            BasePrice = p.Price,
                            BaseShopId = shop.Id,
                            BaseShopName = shop.ShopName,
                            BaseType = p.BaseType,
                            UseState = bonus.UseState,
                            UsrStatePrice = bonus.UsrStatePrice
                        });
                    }));
                }
            }
            return(Json(new
            {
                memberIntegral = memberIntegral,
                baseCoupons = baseCoupons,
                shopId = shopId
            }, true));
        }
Esempio n. 14
0
        //领取优惠券
        public object PostAcceptCoupon(CouponAcceptCouponModel value)
        {
            CheckUserLogin();
            long vshopId       = value.vshopId;
            long couponId      = value.couponId;
            var  couponService = ServiceProvider.Instance <ICouponService> .Create;
            var  couponInfo    = couponService.GetCouponInfo(couponId);

            if (couponInfo.EndTime < DateTime.Now)
            {//已经失效
                return(Json(new { Status = 2, Success = "false", ErrorMsg = "优惠券已经过期." }));
            }
            CouponRecordQuery crQuery = new CouponRecordQuery();

            crQuery.CouponId = couponId;
            crQuery.UserId   = CurrentUser.Id;
            ObsoletePageModel <CouponRecordInfo> pageModel = couponService.GetCouponRecordList(crQuery);

            if (couponInfo.PerMax != 0 && pageModel.Total >= couponInfo.PerMax)
            {//达到个人领取最大张数
                return(Json(new { Status = 3, Success = "false", ErrorMsg = "达到个人领取最大张数,不能再领取." }));
            }
            crQuery = new CouponRecordQuery()
            {
                CouponId = couponId
            };
            pageModel = couponService.GetCouponRecordList(crQuery);
            if (pageModel.Total >= couponInfo.Num)
            {//达到领取最大张数
                return(Json(new { Status = 4, Success = "false", ErrorMsg = "此优惠券已经领完了." }));
            }
            if (couponInfo.ReceiveType == Himall.Model.CouponInfo.CouponReceiveType.IntegralExchange)
            {
                var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUserId);
                if (userInte.AvailableIntegrals < couponInfo.NeedIntegral)
                {
                    //积分不足
                    return(Json(new { Status = 5, Success = "false", ErrorMsg = "积分不足 " + couponInfo.NeedIntegral.ToString() }));
                }
            }
            CouponRecordInfo couponRecordInfo = new CouponRecordInfo()
            {
                CouponId = couponId,
                UserId   = CurrentUser.Id,
                UserName = CurrentUser.UserName,
                ShopId   = couponInfo.ShopId
            };

            couponService.AddCouponRecord(couponRecordInfo);
            return(Json(new { Status = 1, Success = "true" }));//执行成功
        }
Esempio n. 15
0
        public JsonResult AcceptCoupon(long vshopid, long couponid)
        {
            var couponService = _iCouponService;
            var couponInfo    = couponService.GetCouponInfo(couponid);

            if (couponInfo.EndTime < DateTime.Now)
            {//已经失效
                return(ErrorResult("优惠券已经过期.", 2, true));
            }
            CouponRecordQuery crQuery = new CouponRecordQuery();

            crQuery.CouponId = couponid;
            crQuery.UserId   = CurrentUser.Id;
            var pageModel = couponService.GetCouponRecordList(crQuery);

            if (couponInfo.PerMax != 0 && pageModel.Total >= couponInfo.PerMax)
            {//达到个人领取最大张数
                return(Json(new { code = 3, success = false, msg = "达到个人领取最大张数,不能再领取." }));
            }
            crQuery = new CouponRecordQuery()
            {
                CouponId = couponid
            };
            pageModel = couponService.GetCouponRecordList(crQuery);
            if (pageModel.Total >= couponInfo.Num)
            {//达到领取最大张数
                return(Json(new { code = 4, success = false, msg = "此优惠券已经领完了." }));
            }
            int MemberAvailableIntegrals = 0;

            if (couponInfo.ReceiveType == Entities.CouponInfo.CouponReceiveType.IntegralExchange)
            {
                var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
                if (userInte.AvailableIntegrals < couponInfo.NeedIntegral)
                {
                    //积分不足
                    return(Json(new { code = 5, success = false, msg = "积分不足 " + couponInfo.NeedIntegral.ToString() }));
                }
                MemberAvailableIntegrals = userInte.AvailableIntegrals;
            }
            Entities.CouponRecordInfo couponRecordInfo = new Entities.CouponRecordInfo()
            {
                CouponId = couponid,
                UserId   = CurrentUser.Id,
                UserName = CurrentUser.UserName,
                ShopId   = couponInfo.ShopId
            };
            couponService.AddCouponRecord(couponRecordInfo);

            return(Json(new { code = 0, success = true, msg = "领取成功", crid = couponRecordInfo.Id, Integral_balance = MemberAvailableIntegrals }));//执行成功
        }
        public object PostOrderShareAddIntegral(OrderShareAddIntegralModel OrderIds)
        {
            this.CheckUserLogin();
            string orderids1 = OrderIds.orderids;

            if (string.IsNullOrWhiteSpace(orderids1))
            {
                throw new HimallException("订单号不能为空!");
            }
            long orderId = 0L;
            IEnumerable <long> orderids2 = Enumerable.Select <string, long>((IEnumerable <string>)orderids1.Split(','), (Func <string, long>)(e =>
            {
                if (long.TryParse(e, out orderId))
                {
                    return(orderId);
                }
                throw new HimallException("订单分享增加积分时,订单号异常!");
            }));

            if (MemberIntegralApplication.OrderIsShared(orderids2))
            {
                throw new HimallException("订单已经分享过!");
            }
            MemberIntegralRecord model = new MemberIntegralRecord();

            model.MemberId   = this.CurrentUser.Id;
            model.UserName   = this.CurrentUser.UserName;
            model.RecordDate = new DateTime?(DateTime.Now);
            model.TypeId     = MemberIntegral.IntegralType.Share;
            model.ReMark     = string.Format("订单号:{0}", (object)orderids1);
            List <MemberIntegralRecordAction> list = new List <MemberIntegralRecordAction>();

            foreach (long num in orderids2)
            {
                list.Add(new MemberIntegralRecordAction()
                {
                    VirtualItemId     = num,
                    VirtualItemTypeId = new MemberIntegral.VirtualItemType?(MemberIntegral.VirtualItemType.ShareOrder)
                });
            }
            model.Himall_MemberIntegralRecordAction = (ICollection <MemberIntegralRecordAction>)list;
            MemberIntegralApplication.AddMemberIntegralByEnum(model, MemberIntegral.IntegralType.Share);
            return((object)this.Json(new
            {
                success = true,
                msg = "晒单添加积分成功!"
            }));
        }
Esempio n. 17
0
        public object PostOrderShareAddIntegral(OrderShareAddIntegralModel OrderIds)
        {
            CheckUserLogin();
            var orderids = OrderIds.orderids;

            if (string.IsNullOrWhiteSpace(orderids))
            {
                throw new HimallException("订单号不能为空!");
            }
            long orderId = 0;
            var  ids     = orderids.Split(',').Select(e =>
            {
                if (long.TryParse(e, out orderId))
                {
                    return(orderId);
                }
                else
                {
                    throw new HimallException("订单分享增加积分时,订单号异常!");
                }
            }
                                                      );

            if (MemberIntegralApplication.OrderIsShared(ids))
            {
                throw new HimallException("订单已经分享过!");
            }
            MemberIntegralRecord record = new MemberIntegralRecord();

            record.MemberId   = CurrentUser.Id;
            record.UserName   = CurrentUser.UserName;
            record.RecordDate = DateTime.Now;
            record.TypeId     = MemberIntegral.IntegralType.Share;
            record.ReMark     = string.Format("订单号:{0}", orderids);
            List <MemberIntegralRecordAction> recordAction = new List <MemberIntegralRecordAction>();

            foreach (var id in ids)
            {
                recordAction.Add(new MemberIntegralRecordAction
                {
                    VirtualItemId     = id,
                    VirtualItemTypeId = MemberIntegral.VirtualItemType.ShareOrder
                });
            }
            record.Himall_MemberIntegralRecordAction = recordAction;
            MemberIntegralApplication.AddMemberIntegralByEnum(record, MemberIntegral.IntegralType.Share);
            return(Json(new { success = true, msg = "晒单添加积分成功!" }));
        }
Esempio n. 18
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 }));
        }
Esempio n. 19
0
        public JsonResult OrderShareAddIntegral(string orderids)
        {
            if (string.IsNullOrWhiteSpace(orderids))
            {
                throw new MallException("订单号不能为空!");
            }
            long orderId = 0;
            var  ids     = orderids.Split(',').Select(e =>
            {
                if (long.TryParse(e, out orderId))
                {
                    return(orderId);
                }
                else
                {
                    throw new MallException("订单分享增加积分时,订单号异常!");
                }
            }
                                                      );

            if (MemberIntegralApplication.OrderIsShared(ids))
            {
                throw new MallException("订单已经分享过!");
            }
            Mall.Entities.MemberIntegralRecordInfo record = new Mall.Entities.MemberIntegralRecordInfo();
            record.MemberId   = CurrentUser.Id;
            record.UserName   = CurrentUser.UserName;
            record.RecordDate = DateTime.Now;
            record.TypeId     = Mall.Entities.MemberIntegralInfo.IntegralType.Share;
            record.ReMark     = string.Format("订单号:{0}", orderids);
            List <Mall.Entities.MemberIntegralRecordActionInfo> recordAction = new List <Mall.Entities.MemberIntegralRecordActionInfo>();

            foreach (var id in ids)
            {
                recordAction.Add(new Mall.Entities.MemberIntegralRecordActionInfo
                {
                    VirtualItemId     = id,
                    VirtualItemTypeId = Mall.Entities.MemberIntegralInfo.VirtualItemType.ShareOrder
                });
            }
            record.MemberIntegralRecordActionInfo = recordAction;
            MemberIntegralApplication.AddMemberIntegralByEnum(record, Mall.Entities.MemberIntegralInfo.IntegralType.Share);
            return(SuccessResult("晒单添加积分成功!"));
        }
Esempio n. 20
0
        public JsonResult OrderShareAddIntegral(string orderids)
        {
            if (string.IsNullOrWhiteSpace(orderids))
            {
                throw new HimallException("预约单号不能为空!");
            }
            long orderId = 0L;
            IEnumerable <long> enumerable = orderids.Split(new char[] { ',' }).Select <string, long>(delegate(string e)
            {
                if (!long.TryParse(e, out orderId))
                {
                    throw new HimallException("预约单分享增加积分时,预约单号异常!");
                }
                return(orderId);
            });

            if (MemberIntegralApplication.OrderIsShared(enumerable))
            {
                throw new HimallException("预约单已经分享过!");
            }
            MemberIntegralRecord model = new MemberIntegralRecord
            {
                MemberId   = base.CurrentUser.Id,
                UserName   = base.CurrentUser.UserName,
                RecordDate = new DateTime?(DateTime.Now),
                TypeId     = MemberIntegral.IntegralType.Share,
                ReMark     = string.Format("预约单号:{0}", orderids)
            };
            List <MemberIntegralRecordAction> list = new List <MemberIntegralRecordAction>();

            foreach (long num in enumerable)
            {
                MemberIntegralRecordAction item = new MemberIntegralRecordAction
                {
                    VirtualItemId     = num,
                    VirtualItemTypeId = MemberIntegral.VirtualItemType.ShareOrder
                };
                list.Add(item);
            }
            model.Himall_MemberIntegralRecordAction = list;
            MemberIntegralApplication.AddMemberIntegralByEnum(model, MemberIntegral.IntegralType.Share);
            return(base.Json(new { success = true, msg = "晒单添加积分成功!" }));
        }
Esempio n. 21
0
        /// <summary>
        /// 积分商城
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            IntegralMallPageModel result = new IntegralMallPageModel();

            //Logo
            ViewBag.Logo = SiteSettings.Logo;

            //优惠券数据
            result.CouponPageSize = 6;
            QueryPageModel <Entities.CouponInfo> coupons = _iCouponService.GetIntegralCoupons(1, result.CouponPageSize);

            result.CouponList    = coupons.Models.ToList();
            result.CouponTotal   = coupons.Total;
            result.CouponMaxPage = GetMaxPage(result.CouponTotal, result.CouponPageSize);

            //礼品数据
            result.GiftPageSize = 12;
            GiftQuery query = new GiftQuery();

            query.skey     = "";
            query.status   = GiftInfo.GiftSalesStatus.Normal;
            query.PageSize = result.GiftPageSize;
            query.PageNo   = 1;
            QueryPageModel <GiftModel> gifts = _iGiftService.GetGifts(query);

            result.GiftList    = gifts.Models.ToList();
            result.GiftTotal   = gifts.Total;
            result.GiftMaxPage = GetMaxPage(result.GiftTotal, result.GiftPageSize);

            if (CurrentUser != null)
            {
                //登录后处理会员积分
                var userInte  = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
                var userGrade = MemberGradeApplication.GetMemberGradeByUserIntegral(userInte.HistoryIntegrals);
                result.MemberAvailableIntegrals = userInte.AvailableIntegrals;
                result.MemberGradeName          = userGrade.GradeName;
            }
            ViewBag.Keyword = SiteSettings.Keyword;

            return(View(result));
        }
Esempio n. 22
0
        // GET: Web/UserIntegral
        public ActionResult Index(int?type, int pageSize = 10, int pageNo = 1)
        {
            var model = _iMemberIntegralService.GetIntegralChangeRule();

            ViewBag.IntegralPerMoney = model == null ? 0 : model.IntegralPerMoney;

            ViewBag.Integral = MemberIntegralApplication.GetAvailableIntegral(CurrentUser.Id);
            Mall.Entities.MemberIntegralInfo.IntegralType?integralType = null;
            if (type.HasValue)
            {
                integralType = (Mall.Entities.MemberIntegralInfo.IntegralType)type.Value;
            }
            var query = new IntegralRecordQuery()
            {
                IntegralType = integralType, UserId = CurrentUser.Id, PageNo = pageNo, PageSize = pageSize
            };
            var result = _iMemberIntegralService.GetIntegralRecordListForWeb(query);
            var list   = result.Models.Select(item => {
                var actions = _iMemberIntegralService.GetIntegralRecordAction(item.Id);
                return(new MemberIntegralRecordInfo
                {
                    Id = item.Id,
                    UserName = item.UserName,
                    RecordDate = item.RecordDate,
                    Integral = item.Integral,
                    TypeId = item.TypeId,
                    ReMark = GetRemarkFromIntegralType(item.TypeId, actions, item.ReMark)
                });
            });
            PagingInfo info = new PagingInfo
            {
                CurrentPage  = pageNo,
                ItemsPerPage = pageSize,
                TotalItems   = result.Total
            };

            ViewBag.pageInfo = info;
            ViewBag.Keyword  = string.IsNullOrWhiteSpace(SiteSettings.SearchKeyword) ? SiteSettings.Keyword : SiteSettings.SearchKeyword;
            ViewBag.Keywords = SiteSettings.HotKeyWords;
            return(View(list));
        }
Esempio n. 23
0
        public ActionResult Index(long id)
        {
            WeiActivityModel activityModel = WeiActivityApplication.GetActivityModelByBigWheel(id);

            activityModel.userId             = curUserId;
            activityModel.participationCount = GetParticipationCount(activityModel);
            consumePoint = activityModel.consumePoint;

            ViewBag.Integrals = MemberIntegralApplication.GetAvailableIntegral(curUserId);

            //TODO:改成统一的方式取 Token
            try
            {
                var settings = SiteSettingApplication.SiteSettings;
                var token    = AccessTokenContainer.TryGetToken(settings.WeixinAppId, settings.WeixinAppSecret);
                var qrTicket = Senparc.Weixin.MP.AdvancedAPIs.QrCode.QrCodeApi.Create(token, 86400, 7758259).ticket;
                ViewBag.QRTicket = qrTicket;
            }
            catch { }
            return(View(activityModel));
        }
Esempio n. 24
0
        /// <summary>
        /// 是否可领取优惠券
        /// </summary>
        /// <param name="vshopId"></param>
        /// <param name="couponId"></param>
        /// <returns></returns>
        private int Receive(long vshopId, long couponId)
        {
            if (CurrentUser != null && CurrentUser.Id > 0)//未登录不可领取
            {
                var couponService = ServiceProvider.Instance <ICouponService> .Create;
                var couponInfo    = couponService.GetCouponInfo(couponId);
                if (couponInfo.EndTime < DateTime.Now)
                {
                    return(2);                                  //已经失效
                }
                CouponRecordQuery crQuery = new CouponRecordQuery();
                crQuery.CouponId = couponId;
                crQuery.UserId   = CurrentUser.Id;
                QueryPageModel <CouponRecordInfo> pageModel = couponService.GetCouponRecordList(crQuery);
                if (couponInfo.PerMax != 0 && pageModel.Total >= couponInfo.PerMax)
                {
                    return(3);                                                               //达到个人领取最大张数
                }
                crQuery = new CouponRecordQuery()
                {
                    CouponId = couponId
                };
                pageModel = couponService.GetCouponRecordList(crQuery);
                if (pageModel.Total >= couponInfo.Num)
                {
                    return(4);                                  //达到领取最大张数
                }
                if (couponInfo.ReceiveType == CouponInfo.CouponReceiveType.IntegralExchange)
                {
                    var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUserId);
                    if (userInte.AvailableIntegrals < couponInfo.NeedIntegral)
                    {
                        return(5);                                                      //积分不足
                    }
                }

                return(1);//可正常领取
            }
            return(0);
        }
Esempio n. 25
0
        /// <summary>
        /// 个人中心主页
        /// </summary>
        /// <returns></returns>
        public new JsonResult <Result <dynamic> > GetUser()
        {
            CheckUserLogin();
            dynamic         d                  = new System.Dynamic.ExpandoObject();
            long            id                 = CurrentUser.Id;
            var             member             = MemberApplication.GetMember(id);
            DistributorInfo currentDistributor = DistributionApplication.GetDistributor(member.Id);

            d.UserName  = member.UserName;                                                                     //用户名
            d.RealName  = member.RealName;                                                                     //真实姓名
            d.Nick      = member.Nick;                                                                         //昵称
            d.UserId    = member.Id.ToString();
            d.CellPhone = member.CellPhone;                                                                    //绑定的手机号码
            d.Photo     = String.IsNullOrEmpty(member.Photo) ? "" : HimallIO.GetRomoteImagePath(member.Photo); //头像

            var statistic = StatisticApplication.GetMemberOrderStatistic(id, true);

            d.AllOrders          = statistic.OrderCount;
            d.WaitingForPay      = statistic.WaitingForPay;
            d.WaitingForRecieve  = statistic.WaitingForRecieve + OrderApplication.GetWaitConsumptionOrderNumByUserId(id);
            d.WaitingForDelivery = statistic.WaitingForDelivery;
            d.WaitingForComments = statistic.WaitingForComments;
            d.RefundOrders       = statistic.RefundCount;

            d.FavoriteShop    = ShopApplication.GetUserConcernShopsCount(member.Id);   //收藏的店铺数
            d.FavoriteProduct = FavoriteApplication.GetFavoriteCountByUser(member.Id); //收藏的商品数

            d.Counpon = MemberApplication.GetAvailableCouponCount(id);

            d.Integral = MemberIntegralApplication.GetAvailableIntegral(member.Id); //我的积分
            d.Balance  = MemberCapitalApplication.GetBalanceByUserId(member.Id);    //我的资产
            d.IsOpenRechargePresent = SiteSettingApplication.SiteSettings.IsOpenRechargePresent;
            var phone = SiteSettingApplication.SiteSettings.SitePhone;

            d.ServicePhone  = string.IsNullOrEmpty(phone) ? "" : phone;
            d.IsDistributor = (currentDistributor != null && currentDistributor.DistributionStatus == (int)DistributorStatus.Audited);
            return(JsonResult <dynamic>(d));
        }
Esempio n. 26
0
        private user_list_model UserMemberInfoMapDTO(Entities.MemberInfo data)
        {
            user_list_model result = null;

            if (data != null)
            {
                result = new user_list_model();
                var ui = MemberIntegralApplication.GetMemberIntegral(data.Id);
                if (ui == null)
                {
                    ui = new Himall.Entities.MemberIntegralInfo
                    {
                        MemberId           = data.Id,
                        AvailableIntegrals = 0,
                        HistoryIntegrals   = 0
                    };
                }
                result.uid          = (int)data.Id;
                result.user_name    = data.UserName;
                result.created      = data.CreateDate;
                result.real_name    = data.RealName;
                result.mobile       = data.CellPhone;
                result.email        = data.Email;
                result.avatar       = Himall.Core.HimallIO.GetRomoteImagePath(data.Photo);
                result.sex          = data.Sex.ToDescription();
                result.birthday     = data.BirthDay;
                result.state        = "";
                result.city         = "";
                result.district     = "";
                result.town         = "";
                result.address      = "";
                result.points       = ui.AvailableIntegrals;
                result.trade_count  = data.OrderNumber;
                result.trade_amount = data.NetAmount;
            }
            return(result);
        }
Esempio n. 27
0
        public ActionResult Index(long id)
        {
            //TODO:改成统一的方式取 Token
            var settings = SiteSettingApplication.SiteSettings;

            if (settings.IsOpenH5)
            {
                var token = AccessTokenContainer.TryGetAccessToken(settings.WeixinAppId, settings.WeixinAppSecret);

                SceneHelper helper   = new SceneHelper();
                var         qrTicket = QrCodeApi.Create(token, 86400, 7758258, Senparc.Weixin.MP.QrCode_ActionName.QR_LIMIT_SCENE, null).ticket;

                ViewBag.QRTicket = qrTicket;
            }

            WeiActivityModel activityModel = WeiActivityApplication.GetActivityModel(id);

            activityModel.userId             = curUserId;
            activityModel.winModel           = AddWinInfo(activityModel);
            activityModel.winModel.integrals = MemberIntegralApplication.GetAvailableIntegral(curUserId);
            activityModel.participationCount = GetParticipationCount(activityModel);
            consumePoint = activityModel.consumePoint;
            return(View(activityModel));
        }
Esempio n. 28
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));
        }
Esempio n. 29
0
        /// <summary>
        /// 首页
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            //轮播图
            GiftsIndexModel result  = new GiftsIndexModel();
            var             slidads = SlideApplication.GetSlidAds(0, Entities.SlideAdInfo.SlideAdType.AppGifts).ToList();

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

            //大转盘刮刮卡
            var robj = _iGiftService.GetAdInfo(IntegralMallAdInfo.AdActivityType.Roulette, IntegralMallAdInfo.AdShowPlatform.APP);

            if (robj != null)
            {
                robj.LinkUrl = "/m-wap/BigWheel/index/" + robj.ActivityId;
                result.WeiActives.Add(robj);
            }
            var cobj = _iGiftService.GetAdInfo(IntegralMallAdInfo.AdActivityType.ScratchCard, IntegralMallAdInfo.AdShowPlatform.APP);

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

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

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

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

            //积分优惠券
            var coupons = _iCouponService.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 = Mapper.Map <CouponGetIntegralCouponModel>(item);
                    tmp.ShowIntegralCover = HimallIO.GetRomoteImagePath(item.IntegralCover);
                    var vshopobj = _iVShopService.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 = HimallIO.GetRomoteImagePath(vshopobj.WXLogo);
                            }
                        }
                    }
                    if (string.IsNullOrWhiteSpace(tmp.ShowIntegralCover))
                    {
                        var siteset = SiteSettingApplication.SiteSettings;
                        tmp.ShowIntegralCover = HimallIO.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(View(result));
        }
Esempio n. 30
0
        public JsonResult CanBuy(long id, int count)
        {
            Result result   = new Result();
            bool   isdataok = true;

            if (CurrentUser == null)
            {
                isdataok       = false;
                result.success = false;
                result.msg     = "您还未登录!";
                result.status  = -1;
                return(Json(result));
            }


            #region 礼品信息判断
            //礼品信息
            GiftInfo giftdata = _iGiftService.GetById(id);
            if (isdataok)
            {
                if (giftdata == null)
                {
                    isdataok       = false;
                    result.success = false;
                    result.msg     = "礼品不存在!";
                    result.status  = -2;
                }
            }

            if (isdataok)
            {
                if (giftdata.GetSalesStatus != GiftInfo.GiftSalesStatus.Normal)
                {
                    isdataok       = false;
                    result.success = false;
                    result.msg     = "礼品已失效!";
                    result.status  = -2;
                }
            }

            if (isdataok)
            {
                //库存判断
                if (count > giftdata.StockQuantity)
                {
                    isdataok       = false;
                    result.success = false;
                    result.msg     = "礼品库存不足,仅剩 " + giftdata.StockQuantity.ToString() + " 件!";
                    result.status  = -3;
                }
            }

            if (isdataok)
            {
                //积分数
                if (giftdata.NeedIntegral < 1)
                {
                    isdataok       = false;
                    result.success = false;
                    result.msg     = "礼品关联等级信息有误或礼品积分数据有误!";
                    result.status  = -5;
                    return(Json(result));
                }
            }

            #endregion

            #region 用户信息判断

            if (isdataok)
            {
                //限购数量
                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;
                    }
                }
            }

            if (isdataok)
            {
                var userInte = MemberIntegralApplication.GetMemberIntegral(CurrentUser.Id);
                if (giftdata.NeedIntegral * count > userInte.AvailableIntegrals)
                {
                    isdataok       = false;
                    result.success = false;
                    result.msg     = "积分不足!";
                    result.status  = -6;
                }
            }

            if (isdataok && giftdata.NeedGrade > 0)
            {
                //等级判定
                if (!MemberGradeApplication.IsAllowGrade(CurrentUser.Id, giftdata.NeedGrade))
                {
                    isdataok       = false;
                    result.success = false;
                    result.msg     = "用户等级不足!";
                    result.status  = -6;
                }
            }
            #endregion

            if (isdataok)
            {
                result.success = true;
                result.msg     = "可以购买!";
                result.status  = 1;
            }

            return(Json(result));
        }