예제 #1
0
        /// <summary>
        /// 获取用户优惠券列表
        /// </summary>
        /// <returns></returns>
        public JsonResult <Result <dynamic> > GetLoadCoupon()
        {
            CheckUserLogin();
            var userCouponList = CouponApplication.GetUserCouponList(CurrentUser.Id);
            var shopBonus      = GetBonusList();

            if (userCouponList != null || shopBonus != null)
            {
                //优惠券
                var couponlist = new Object();
                if (userCouponList != null)
                {
                    couponlist = userCouponList.ToArray().Select(a => new
                    {
                        UserId          = a.UserId,
                        ShopId          = a.ShopId,
                        CouponId        = a.CouponId,
                        Price           = a.Price,
                        PerMax          = a.PerMax,
                        OrderAmount     = a.OrderAmount,
                        ShowOrderAmount = a.OrderAmount,
                        Num             = a.Num,
                        StartTime       = a.StartTime.ToString(),
                        EndTime         = a.EndTime.ToString(),
                        CreateTime      = a.CreateTime.ToString(),
                        CouponName      = a.CouponName,
                        UseStatus       = a.UseStatus,
                        UseTime         = a.UseTime.HasValue ? a.UseTime.ToString() : null,
                        VShop           = GetVShop(a.ShopId),
                        ShopName        = a.ShopName,
                        Remark          = a.Remark,
                        UseArea         = a.UseArea
                    });
                }
                else
                {
                    couponlist = null;
                }
                //代金红包
                var userBonus = new List <dynamic>();
                if (shopBonus != null)
                {
                    userBonus = shopBonus.Select(item =>
                    {
                        var bonusService    = ServiceProvider.Instance <IShopBonusService> .Create;
                        var grant           = bonusService.GetGrant(item.BonusGrantId);
                        var bonus           = bonusService.GetShopBonus(grant.ShopBonusId);
                        var shop            = ShopApplication.GetShop(bonus.ShopId);
                        var vShop           = VshopApplication.GetVShopByShopId(shop.Id);
                        var Price           = item.Price;
                        var showOrderAmount = bonus.UsrStatePrice > 0 ? bonus.UsrStatePrice : item.Price;
                        if (bonus.UseState != Entities.ShopBonusInfo.UseStateType.FilledSend)
                        {
                            showOrderAmount = item.Price;
                        }
                        var Logo     = string.Empty;
                        long VShopId = 0;
                        if (vShop != null)
                        {
                            Logo    = Core.HimallIO.GetRomoteImagePath(vShop.StrLogo);
                            VShopId = vShop.Id;
                        }

                        var State = (int)item.State;
                        if (item.State != ShopBonusReceiveInfo.ReceiveState.Use && bonus.DateEnd < DateTime.Now)
                        {
                            State = (int)ShopBonusReceiveInfo.ReceiveState.Expired;
                        }
                        var BonusDateEnd    = bonus.BonusDateEnd.ToString("yyyy-MM-dd");
                        dynamic obj         = new System.Dynamic.ExpandoObject();
                        obj.Price           = Price;
                        obj.ShowOrderAmount = showOrderAmount;
                        obj.Logo            = Logo;
                        obj.VShopId         = VShopId;
                        obj.State           = State;
                        obj.BonusDateEnd    = BonusDateEnd;
                        obj.ShopName        = shop.ShopName;
                        obj.DateEnd         = bonus.DateEnd;
                        return(obj);
                    }).ToList();
                }
                else
                {
                    shopBonus = null;
                }
                //优惠券
                int NoUseCouponCount = 0;
                int UseCouponCount   = 0;
                if (userCouponList != null)
                {
                    NoUseCouponCount = userCouponList.Count(item => (item.EndTime > DateTime.Now && item.UseStatus == CouponRecordInfo.CounponStatuses.Unuse));
                    UseCouponCount   = userCouponList.Count() - NoUseCouponCount;
                }
                //红包
                int NoUseBonusCount = 0;
                int UseBonusCount   = 0;
                if (shopBonus != null)
                {
                    var nusv = ShopBonusReceiveInfo.ReceiveState.NotUse.GetHashCode();
                    NoUseBonusCount = userBonus.Count(r => r.State == nusv && r.DateEnd > DateTime.Now);
                    UseBonusCount   = userBonus.Count() - NoUseBonusCount;
                }

                int UseCount    = UseCouponCount + UseBonusCount;
                int NotUseCount = NoUseCouponCount + NoUseBonusCount;

                var result = new
                {
                    success    = true,
                    NoUseCount = NotUseCount,
                    UserCount  = UseCount,
                    Coupon     = couponlist,
                    Bonus      = userBonus
                };
                return(JsonResult <dynamic>(result));
            }
            else
            {
                throw new Himall.Core.HimallException("没有领取记录!");
            }
        }