diff --git a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml index 7227efc4..051be9b3 100644 --- a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml +++ b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml @@ -1,9 +1,8 @@ @page -@using EasyAbp.EShop.Plugins.Baskets @using EasyAbp.EShop.Plugins.Baskets.Localization +@using EasyAbp.EShop.Plugins.Baskets.Permissions @using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Mvc.Localization -@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form @using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal @using Volo.Abp.Settings @inject IHtmlLocalizer L @@ -29,11 +28,19 @@ $(document).ready(function() { if (@(Model.ServerSide ? "true" : "false")) return; + + var basketItems = JSON.parse(localStorage.getItem(localStorageItemKey)) || []; + var index = basketItems.findIndex(x => x.id === '@Model.Id'); - function generateClientSideData(basketItems) { - var basketItemService = easyAbp.eShop.plugins.baskets.basketItems.basketItem; - - basketItemService.generateClientSideData({ items: [ basketItems[index] ] }, { + $('#ViewModel_Quantity').val(basketItems[index].quantity); + + var $form = $("form"); + $form.off('submit'); + $form.on('submit', function(e){ + e.preventDefault(); + var service = easyAbp.eShop.plugins.baskets.basketItems.basketItem; + basketItems[index].quantity = parseInt($form.serializeFormToObject().viewModel.quantity); + service.generateClientSideData({ items: [ basketItems[index] ] }, { success: function (responseText, statusText, xhr, form) { localStorage.setItem(localStorageItemKey, JSON.stringify(basketItems)); $form.trigger('abp-ajax-success', @@ -45,39 +52,6 @@ }) } }); - } - - var basketItems = JSON.parse(localStorage.getItem(localStorageItemKey)) || []; - var index = basketItems.findIndex(x => x.id === '@Model.Id'); - - $('#ViewModel_Quantity').val(basketItems[index].quantity); - - var $form = $("form"); - $form.off('submit'); - $form.on('submit', function(e){ - e.preventDefault(); - var orderService = easyAbp.eShop.orders.orders.order; - basketItems[index].quantity = parseInt($form.serializeFormToObject().viewModel.quantity); - if (abp.currentUser.isAuthenticated) { - orderService.checkCreate({ - storeId: basketItems[index].storeId, - orderLines: [{ - productId: basketItems[index].productId, - productSkuId: basketItems[index].productSkuId, - quantity: basketItems[index].quantity - }] - }, { - success: function (responseText, statusText, xhr, form) { - if (responseText.canCreate) { - generateClientSideData(basketItems); - } else { - abp.message.error(l('@BasketsErrorCodes.CheckCreateOrderFailed', responseText.reason)); - } - } - }); - } else { - generateClientSideData(basketItems); - } }); }); \ No newline at end of file diff --git a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml.cs b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml.cs index ff5ebc11..c6d5a5fc 100644 --- a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml.cs +++ b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml.cs @@ -1,16 +1,12 @@ using System; -using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; -using EasyAbp.EShop.Orders.Orders; -using EasyAbp.EShop.Orders.Orders.Dtos; using Microsoft.AspNetCore.Mvc; using EasyAbp.EShop.Plugins.Baskets.BasketItems; using EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos; using EasyAbp.EShop.Plugins.Baskets.Permissions; using EasyAbp.EShop.Plugins.Baskets.Web.Pages.EShop.Plugins.Baskets.BasketItems.BasketItem.ViewModels; using Microsoft.AspNetCore.Authorization; -using Volo.Abp; using Volo.Abp.Settings; namespace EasyAbp.EShop.Plugins.Baskets.Web.Pages.EShop.Plugins.Baskets.BasketItems.BasketItem @@ -31,15 +27,11 @@ namespace EasyAbp.EShop.Plugins.Baskets.Web.Pages.EShop.Plugins.Baskets.BasketIt [BindProperty] public EditBasketItemViewModel ViewModel { get; set; } - private readonly IOrderAppService _orderAppService; - private readonly IBasketItemAppService _basketItemAppService; + private readonly IBasketItemAppService _service; - public EditModalModel( - IOrderAppService orderAppService, - IBasketItemAppService basketItemAppService) + public EditModalModel(IBasketItemAppService service) { - _orderAppService = orderAppService; - _basketItemAppService = basketItemAppService; + _service = service; } public virtual async Task OnGetAsync() @@ -52,38 +44,14 @@ namespace EasyAbp.EShop.Plugins.Baskets.Web.Pages.EShop.Plugins.Baskets.BasketIt return; } - var dto = await _basketItemAppService.GetAsync(Id); + var dto = await _service.GetAsync(Id); ViewModel = ObjectMapper.Map(dto); } public virtual async Task OnPostAsync() { - var item = await _basketItemAppService.GetAsync(Id); - var dto = ObjectMapper.Map(ViewModel); - - var checkCreateOrderResult = await _orderAppService.CheckCreateAsync(new CheckCreateOrderInput - { - StoreId = item.StoreId, - OrderLines = new List - { - new() - { - ProductId = item.ProductId, - ProductSkuId = item.ProductSkuId, - Quantity = ViewModel.Quantity - } - } - }); - - if (!checkCreateOrderResult.CanCreate) - { - throw new BusinessException(BasketsErrorCodes.CheckCreateOrderFailed) - .WithData("reason", checkCreateOrderResult.Reason); - } - - await _basketItemAppService.UpdateAsync(Id, dto); - + await _service.UpdateAsync(Id, dto); return NoContent(); } }