コード例 #1
0
        public ActionResult _CreateRecord(long giftId)
        {
            //获取默认邮寄地址
            MailAddress mailAddress         = null;
            IEnumerable <MailAddress> mails = new MailAddressService().GetsOfUser(UserContext.CurrentUser.UserId);

            //从数据库中取实体,取不到则创建
            mailAddress = mails.Count() > 0 ? mails.First() : MailAddress.New();
            var mailAddressEditModel = mailAddress.AsEditModel();

            //创建兑换记录的EditModel
            IUser     currentUser     = UserContext.CurrentUser;
            PointGift gift            = pointMallService.GetGift(giftId);
            var       recordEditModel = new RecordEditModel();

            recordEditModel.Address     = mailAddressEditModel.Address ?? string.Empty;
            recordEditModel.Addressee   = mailAddressEditModel.Addressee ?? string.Empty;
            recordEditModel.PostCode    = mailAddressEditModel.PostCode ?? string.Empty;
            recordEditModel.Tel         = mailAddressEditModel.Tel ?? string.Empty;
            recordEditModel.GiftId      = giftId;
            recordEditModel.Payer       = currentUser.DisplayName;
            recordEditModel.PayerUserId = currentUser.UserId;
            recordEditModel.GiftName    = gift.Name;
            ViewData["recordEditModel"] = recordEditModel;

            return(View(mailAddressEditModel));
        }
コード例 #2
0
        public ActionResult _CreateRecord(RecordEditModel recordEditModel)
        {
            PointGiftExchangeRecord record = recordEditModel.AsPointGiftExchangeRecord();

            if (record.PointGift == null)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "找不到商品")));
            }

            if (!record.PointGift.IsEnabled)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "该商品已下架,不允许兑换!")));
            }

            if (record.Number <= 0)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "兑换数量必须为正整数!")));
            }

            var user = DIContainer.Resolve <UserService>().GetUser(recordEditModel.PayerUserId);

            var totalPrice = record.Number * record.PointGift.Price;

            record.Price = totalPrice;
            if (totalPrice > user.TradePoints)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "你没有这么多积分!")));
            }

            pointMallService.CreateRecord(record);

            if (record.RecordId <= 0)
            {
                return(Json(new StatusMessageData(StatusMessageType.Error, "兑换商品失败!")));
            }

            //兑换数增加
            record.PointGift.ExchangedCount += record.Number;
            pointMallService.UpdateGift(record.PointGift);
            return(Json(new StatusMessageData(StatusMessageType.Success, "兑换商品成功!")));
        }