Browse Source

Close #66: Replace SerializedAttributeOptionIds with AttributeOptionIds in sku DTOs.

pull/87/head v0.3.5
gdlcf88 6 years ago
parent
commit
dab0a4ca52
  1. 2
      integration/EasyAbp.EShop/common.props
  2. 2
      modules/EasyAbp.EShop.Baskets/common.props
  3. 2
      modules/EasyAbp.EShop.Orders/common.props
  4. 4
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/NewOrderGenerator.cs
  5. 2
      modules/EasyAbp.EShop.Payments/common.props
  6. 2
      modules/EasyAbp.EShop.Products/common.props
  7. 5
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductSkuDto.cs
  8. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductSkuDto.cs
  9. 9
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/EShopProductsApplicationModule.cs
  10. 17
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs
  11. 21
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductsApplicationAutoMapperProfile.cs
  12. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/cs.json
  13. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json
  14. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pl.json
  15. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pt-BR.json
  16. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/sl.json
  17. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/tr.json
  18. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/vi.json
  19. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hans.json
  20. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hant.json
  21. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/ProductSku/CreateModal.cshtml.cs
  22. 5
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/ProductSku/index.js
  23. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs
  24. 2
      modules/EasyAbp.EShop.Stores/common.props

2
integration/EasyAbp.EShop/common.props

@ -1,7 +1,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>0.3.4</Version> <Version>0.3.5</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn> <NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors> <Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Baskets/common.props

@ -1,7 +1,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>0.3.4</Version> <Version>0.3.5</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn> <NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors> <Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Orders/common.props

@ -1,7 +1,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>0.3.4</Version> <Version>0.3.5</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn> <NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors> <Authors>EasyAbp Team</Authors>

4
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/NewOrderGenerator.cs

@ -94,11 +94,9 @@ namespace EasyAbp.EShop.Orders.Orders
protected virtual Task<string> GenerateSkuDescriptionAsync(ProductDto product, ProductSkuDto productSku) protected virtual Task<string> GenerateSkuDescriptionAsync(ProductDto product, ProductSkuDto productSku)
{ {
var attributeOptionIds = _jsonSerializer.Deserialize<Guid[]>(productSku.SerializedAttributeOptionIds);
var names = new Collection<string[]>(); var names = new Collection<string[]>();
foreach (var attributeOptionId in attributeOptionIds) foreach (var attributeOptionId in productSku.AttributeOptionIds)
{ {
names.Add(product.ProductAttributes.SelectMany( names.Add(product.ProductAttributes.SelectMany(
attribute => attribute.ProductAttributeOptions.Where(option => option.Id == attributeOptionId), attribute => attribute.ProductAttributeOptions.Where(option => option.Id == attributeOptionId),

2
modules/EasyAbp.EShop.Payments/common.props

@ -1,7 +1,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>0.3.4</Version> <Version>0.3.5</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn> <NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors> <Authors>EasyAbp Team</Authors>

2
modules/EasyAbp.EShop.Products/common.props

@ -1,7 +1,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>0.3.4</Version> <Version>0.3.5</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn> <NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors> <Authors>EasyAbp Team</Authors>

5
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductSkuDto.cs

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
@ -37,7 +38,7 @@ namespace EasyAbp.EShop.Products.Products.Dtos
public class CreateProductSkuDto : UpdateProductSkuDto public class CreateProductSkuDto : UpdateProductSkuDto
{ {
[Required] [Required]
[DisplayName("ProductSkuSerializedAttributeOptionIds")] [DisplayName("ProductSkuAttributeOptionIds")]
public string SerializedAttributeOptionIds { get; set; } public List<Guid> AttributeOptionIds { get; set; }
} }
} }

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductSkuDto.cs

@ -1,11 +1,12 @@
using System; using System;
using System.Collections.Generic;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
public class ProductSkuDto : FullAuditedEntityDto<Guid> public class ProductSkuDto : FullAuditedEntityDto<Guid>
{ {
public string SerializedAttributeOptionIds { get; set; } public List<Guid> AttributeOptionIds { get; set; }
public string Code { get; set; } public string Code { get; set; }

9
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/EShopProductsApplicationModule.cs

@ -17,10 +17,15 @@ namespace EasyAbp.EShop.Products
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
context.Services.AddAutoMapperObjectMapper<EShopProductsApplicationModule>();
Configure<AbpAutoMapperOptions>(options => Configure<AbpAutoMapperOptions>(options =>
{ {
options.AddMaps<EShopProductsApplicationModule>(validate: true); options.Configurators.Add(abpAutoMapperConfigurationContext =>
{
var profile = abpAutoMapperConfigurationContext.ServiceProvider
.GetRequiredService<ProductsApplicationAutoMapperProfile>();
abpAutoMapperConfigurationContext.MapperConfiguration.AddProfile(profile);
});
}); });
} }
} }

17
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs

@ -4,7 +4,6 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using EasyAbp.EShop.Products.Authorization; using EasyAbp.EShop.Products.Authorization;
using EasyAbp.EShop.Products.ProductCategories; using EasyAbp.EShop.Products.ProductCategories;
using EasyAbp.EShop.Products.ProductDetails;
using EasyAbp.EShop.Products.Products.Dtos; using EasyAbp.EShop.Products.Products.Dtos;
using EasyAbp.EShop.Products.ProductStores; using EasyAbp.EShop.Products.ProductStores;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
@ -200,13 +199,13 @@ namespace EasyAbp.EShop.Products.Products
var product = await GetEntityByIdAsync(id); var product = await GetEntityByIdAsync(id);
var dto = MapToGetOutputDto(product); if (!product.IsPublished)
if (!dto.IsPublished)
{ {
await CheckStoreIsProductOwnerAsync(dto.Id, storeId); await CheckStoreIsProductOwnerAsync(product.Id, storeId);
} }
var dto = MapToGetOutputDto(product);
await LoadRealInventoriesAsync(product, dto, storeId); await LoadRealInventoriesAsync(product, dto, storeId);
await LoadPricesAsync(product, dto, storeId); await LoadPricesAsync(product, dto, storeId);
@ -219,13 +218,13 @@ namespace EasyAbp.EShop.Products.Products
var product = await _repository.GetAsync(x => x.Code == code); var product = await _repository.GetAsync(x => x.Code == code);
var dto = MapToGetOutputDto(product); if (!product.IsPublished)
if (!dto.IsPublished)
{ {
await CheckStoreIsProductOwnerAsync(dto.Id, storeId); await CheckStoreIsProductOwnerAsync(product.Id, storeId);
} }
var dto = MapToGetOutputDto(product);
await LoadRealInventoriesAsync(product, dto, storeId); await LoadRealInventoriesAsync(product, dto, storeId);
return dto; return dto;

21
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductsApplicationAutoMapperProfile.cs

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Linq;
using System.Collections.ObjectModel;
using EasyAbp.EShop.Products.Products; using EasyAbp.EShop.Products.Products;
using EasyAbp.EShop.Products.Products.Dtos; using EasyAbp.EShop.Products.Products.Dtos;
using EasyAbp.EShop.Products.Categories; using EasyAbp.EShop.Products.Categories;
@ -16,12 +15,13 @@ using EasyAbp.EShop.Products.ProductDetailHistories.Dtos;
using EasyAbp.EShop.Products.ProductHistories; using EasyAbp.EShop.Products.ProductHistories;
using EasyAbp.EShop.Products.ProductHistories.Dtos; using EasyAbp.EShop.Products.ProductHistories.Dtos;
using Volo.Abp.AutoMapper; using Volo.Abp.AutoMapper;
using Volo.Abp.DependencyInjection;
namespace EasyAbp.EShop.Products namespace EasyAbp.EShop.Products
{ {
public class ProductsApplicationAutoMapperProfile : Profile public class ProductsApplicationAutoMapperProfile : Profile, ISingletonDependency
{ {
public ProductsApplicationAutoMapperProfile() public ProductsApplicationAutoMapperProfile(IAttributeOptionIdsSerializer attributeOptionIdsSerializer)
{ {
/* You can configure your AutoMapper mapping configuration here. /* You can configure your AutoMapper mapping configuration here.
* Alternatively, you can split your mapping configurations * Alternatively, you can split your mapping configurations
@ -33,8 +33,12 @@ namespace EasyAbp.EShop.Products
CreateMap<ProductAttribute, ProductAttributeDto>(); CreateMap<ProductAttribute, ProductAttributeDto>();
CreateMap<ProductAttributeOption, ProductAttributeOptionDto>(); CreateMap<ProductAttributeOption, ProductAttributeOptionDto>();
CreateMap<ProductSku, ProductSkuDto>() CreateMap<ProductSku, ProductSkuDto>()
.ForSourceMember(entity => entity.SerializedAttributeOptionIds, opt => opt.DoNotValidate())
.Ignore(dto => dto.AttributeOptionIds)
.Ignore(dto => dto.DiscountedPrice) .Ignore(dto => dto.DiscountedPrice)
.Ignore(dto => dto.RealInventory); .Ignore(dto => dto.RealInventory)
.AfterMap(async (src, dest) => dest.AttributeOptionIds =
(await attributeOptionIdsSerializer.DeserializeAsync(src.SerializedAttributeOptionIds)).ToList());
CreateMap<CreateUpdateProductDto, Product>(MemberList.Source) CreateMap<CreateUpdateProductDto, Product>(MemberList.Source)
.ForSourceMember(dto => dto.StoreId, opt => opt.DoNotValidate()) .ForSourceMember(dto => dto.StoreId, opt => opt.DoNotValidate())
.ForSourceMember(dto => dto.CategoryIds, opt => opt.DoNotValidate()) .ForSourceMember(dto => dto.CategoryIds, opt => opt.DoNotValidate())
@ -45,7 +49,12 @@ namespace EasyAbp.EShop.Products
.ForSourceMember(dto => dto.StoreId, opt => opt.DoNotValidate()); .ForSourceMember(dto => dto.StoreId, opt => opt.DoNotValidate());
CreateMap<CreateUpdateProductAttributeDto, ProductAttribute>(MemberList.Source); CreateMap<CreateUpdateProductAttributeDto, ProductAttribute>(MemberList.Source);
CreateMap<CreateUpdateProductAttributeOptionDto, ProductAttributeOption>(MemberList.Source); CreateMap<CreateUpdateProductAttributeOptionDto, ProductAttributeOption>(MemberList.Source);
CreateMap<CreateProductSkuDto, ProductSku>(MemberList.Source); CreateMap<CreateProductSkuDto, ProductSku>(MemberList.Source)
.ForSourceMember(dto => dto.AttributeOptionIds, opt => opt.DoNotValidate())
.Ignore(entity => entity.SerializedAttributeOptionIds)
.AfterMap(async (src, dest) =>
dest.SetSerializedAttributeOptionIds(
await attributeOptionIdsSerializer.SerializeAsync(src.AttributeOptionIds)));
CreateMap<UpdateProductSkuDto, ProductSku>(MemberList.Source); CreateMap<UpdateProductSkuDto, ProductSku>(MemberList.Source);
CreateMap<Category, CategoryDto>(); CreateMap<Category, CategoryDto>();
CreateMap<CreateUpdateCategoryDto, Category>(MemberList.Source); CreateMap<CreateUpdateCategoryDto, Category>(MemberList.Source);

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/cs.json

@ -20,7 +20,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json

@ -21,7 +21,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pl.json

@ -20,7 +20,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pt-BR.json

@ -20,7 +20,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/sl.json

@ -21,7 +21,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/tr.json

@ -21,7 +21,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/vi.json

@ -20,7 +20,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hans.json

@ -21,7 +21,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hant.json

@ -21,7 +21,7 @@
"ProductAttributeOptionNames": "ProductAttributeOptionNames", "ProductAttributeOptionNames": "ProductAttributeOptionNames",
"ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder", "ProductAttributeOptionNamesPlaceholder": "ProductAttributeOptionNamesPlaceholder",
"ProductSku": "ProductSku", "ProductSku": "ProductSku",
"ProductSkuSerializedAttributeOptionIds": "ProductSkuSerializedAttributeOptionIds", "ProductSkuAttributeOptionIds": "ProductSkuAttributeOptionIds",
"ProductSkuCode": "ProductSkuCode", "ProductSkuCode": "ProductSkuCode",
"ProductSkuCurrency": "ProductSkuCurrency", "ProductSkuCurrency": "ProductSkuCurrency",
"ProductSkuOriginalPrice": "ProductSkuOriginalPrice", "ProductSkuOriginalPrice": "ProductSkuOriginalPrice",

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/ProductSku/CreateModal.cshtml.cs

@ -58,7 +58,7 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.ProductSku
{ {
var createDto = ObjectMapper.Map<CreateEditProductSkuViewModel, CreateProductSkuDto>(ProductSku); var createDto = ObjectMapper.Map<CreateEditProductSkuViewModel, CreateProductSkuDto>(ProductSku);
createDto.SerializedAttributeOptionIds = _jsonSerializer.Serialize(SelectedAttributeOptionIdDict.Values); createDto.AttributeOptionIds = SelectedAttributeOptionIdDict.Values.ToList();
await _productAppService.CreateSkuAsync(ProductId, StoreId, createDto); await _productAppService.CreateSkuAsync(ProductId, StoreId, createDto);

5
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/ProductSku/index.js

@ -81,9 +81,8 @@ $(function () {
for (let i in product.productSkus) { for (let i in product.productSkus) {
let sku = product.productSkus[i]; let sku = product.productSkus[i];
let options = []; let options = [];
let attributeOptionIds = JSON.parse(sku.serializedAttributeOptionIds); for (let j in sku.attributeOptionIds) {
for (let j in attributeOptionIds) { let optionId = sku.attributeOptionIds[j];
let optionId = attributeOptionIds[j];
options.push(attributeOptionNames[optionId]); options.push(attributeOptionNames[optionId]);
} }
sku.contentDescription = options.join(','); sku.contentDescription = options.join(',');

4
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs

@ -53,10 +53,10 @@ namespace EasyAbp.EShop.Products.Web
CreateMap<ProductAttributeDto, CreateEditProductAttributeViewModel>(); CreateMap<ProductAttributeDto, CreateEditProductAttributeViewModel>();
CreateMap<CreateEditProductAttributeViewModel, CreateUpdateProductAttributeDto>(); CreateMap<CreateEditProductAttributeViewModel, CreateUpdateProductAttributeDto>();
CreateMap<CreateEditProductSkuViewModel, CreateProductSkuDto>() CreateMap<CreateEditProductSkuViewModel, CreateProductSkuDto>()
.Ignore(dto => dto.SerializedAttributeOptionIds); .Ignore(dto => dto.AttributeOptionIds);
CreateMap<CreateEditProductSkuViewModel, UpdateProductSkuDto>(); CreateMap<CreateEditProductSkuViewModel, UpdateProductSkuDto>();
CreateMap<ProductSkuDto, CreateEditProductSkuViewModel>() CreateMap<ProductSkuDto, CreateEditProductSkuViewModel>()
.ForSourceMember(dto => dto.SerializedAttributeOptionIds, opt => opt.DoNotValidate()); .ForSourceMember(dto => dto.AttributeOptionIds, opt => opt.DoNotValidate());
CreateMap<ProductAttributeOptionDto, CreateEditProductAttributeOptionViewModel>(); CreateMap<ProductAttributeOptionDto, CreateEditProductAttributeOptionViewModel>();
CreateMap<CreateEditProductAttributeOptionViewModel, CreateUpdateProductAttributeOptionDto>(); CreateMap<CreateEditProductAttributeOptionViewModel, CreateUpdateProductAttributeOptionDto>();
CreateMap<CategoryDto, CreateUpdateCategoryDto>(); CreateMap<CategoryDto, CreateUpdateCategoryDto>();

2
modules/EasyAbp.EShop.Stores/common.props

@ -1,7 +1,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<Version>0.3.4</Version> <Version>0.3.5</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn> <NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors> <Authors>EasyAbp Team</Authors>

Loading…
Cancel
Save