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)); }
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, "兑换商品成功!"))); }