Browse Source

Added Code property to Product.

pull/49/head
gdlcf88 6 years ago
parent
commit
b087d76e68
  1. 2
      modules/EasyAbp.EShop.Baskets/common.props
  2. 2
      modules/EasyAbp.EShop.Orders/common.props
  3. 2
      modules/EasyAbp.EShop.Payments/common.props
  4. 2
      modules/EasyAbp.EShop.Products/common.props
  5. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductDto.cs
  6. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductDto.cs
  7. 19
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs
  8. 13
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductCodeDuplicatedException.cs
  9. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/cs.json
  10. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json
  11. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pl.json
  12. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pt-BR.json
  13. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/sl.json
  14. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/tr.json
  15. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/vi.json
  16. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hans.json
  17. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hant.json
  18. 11
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/Product.cs
  19. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/Index.cshtml
  20. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateEditProductViewModel.cs
  21. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/index.js
  22. 2
      modules/EasyAbp.EShop.Stores/common.props
  23. 2903
      samples/EasyMall/aspnet-core/src/EasyMall.EntityFrameworkCore.DbMigrations/Migrations/20200525082759_AddedCodePropertyToProduct.Designer.cs
  24. 22
      samples/EasyMall/aspnet-core/src/EasyMall.EntityFrameworkCore.DbMigrations/Migrations/20200525082759_AddedCodePropertyToProduct.cs
  25. 3
      samples/EasyMall/aspnet-core/src/EasyMall.EntityFrameworkCore.DbMigrations/Migrations/EasyMallMigrationsDbContextModelSnapshot.cs

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

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

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

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

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

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

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

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

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

@ -23,6 +23,9 @@ namespace EasyAbp.EShop.Products.Products.Dtos
[DisplayName("ProductCategory")]
public ICollection<Guid> CategoryIds { get; set; }
[DisplayName("ProductCode")]
public string Code { get; set; }
[Required]
[DisplayName("ProductDisplayName")]
public string DisplayName { get; set; }

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductDto.cs

@ -13,6 +13,8 @@ namespace EasyAbp.EShop.Products.Products.Dtos
public ICollection<Guid> CategoryIds { get; set; }
public string Code { get; set; }
public string DisplayName { get; set; }
public InventoryStrategy InventoryStrategy { get; set; }

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

@ -59,11 +59,13 @@ namespace EasyAbp.EShop.Products.Products
public override async Task<ProductDto> CreateAsync(CreateUpdateProductDto input)
{
await CheckCreatePolicyAsync();
var product = MapToEntity(input);
TryToSetTenantId(product);
await CheckProductCodeUniqueAsync(product);
await UpdateProductAttributesAsync(product, input);
await Repository.InsertAsync(product, autoSave: true);
@ -77,6 +79,19 @@ namespace EasyAbp.EShop.Products.Products
return MapToGetOutputDto(product);
}
private async Task CheckProductCodeUniqueAsync(Product product)
{
if (product.Code.IsNullOrEmpty())
{
return;
}
if (await _repository.FindAsync(x => x.Code == product.Code && x.Id != product.Id) != null)
{
throw new ProductCodeDuplicatedException(product.Code);
}
}
protected virtual async Task CheckProductDetailAvailableAsync(Guid currentProductId, Guid desiredProductDetailId)
{
var otherOwner = await _repository.FindAsync(x =>
@ -108,6 +123,8 @@ namespace EasyAbp.EShop.Products.Products
MapToEntity(input, product);
await CheckProductCodeUniqueAsync(product);
await UpdateProductAttributesAsync(product, input);
await Repository.UpdateAsync(product, autoSave: true);

13
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductCodeDuplicatedException.cs

@ -0,0 +1,13 @@
using System;
using Volo.Abp;
namespace EasyAbp.EShop.Products.Products
{
public class ProductCodeDuplicatedException : BusinessException
{
public ProductCodeDuplicatedException(string code) : base(
message: $"Product code {code} is duplicate.")
{
}
}
}

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

@ -7,6 +7,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

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

@ -8,6 +8,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

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

@ -7,6 +7,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

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

@ -7,6 +7,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

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

@ -8,6 +8,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

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

@ -8,6 +8,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

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

@ -7,6 +7,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

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

@ -8,6 +8,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

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

@ -8,6 +8,7 @@
"ProductProductTypeId": "ProductProductTypeId",
"ProductDetailId": "ProductDetailId",
"ProductProductStoreId": "ProductProductStoreId",
"ProductCode": "ProductCode",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailProductId": "ProductDetailProductId",
"ProductDetailProductSkuId": "ProductDetailProductSkuId",

11
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/Product.cs

@ -12,6 +12,9 @@ namespace EasyAbp.EShop.Products.Products
public virtual Guid ProductDetailId { get; protected set; }
[CanBeNull]
public virtual string Code { get; protected set; }
[NotNull]
public virtual string DisplayName { get; protected set; }
@ -42,17 +45,19 @@ namespace EasyAbp.EShop.Products.Products
Guid id,
Guid productTypeId,
Guid productDetailId,
string displayName,
[CanBeNull] string code,
[NotNull] string displayName,
InventoryStrategy inventoryStrategy,
bool isPublished,
bool isStatic,
bool isHidden,
string mediaResources,
[CanBeNull] string mediaResources,
int displayOrder
) :base(id)
) : base(id)
{
ProductTypeId = productTypeId;
ProductDetailId = productDetailId;
Code = code?.Trim();
DisplayName = displayName;
InventoryStrategy = inventoryStrategy;
IsPublished = isPublished;

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/Index.cshtml

@ -43,6 +43,7 @@
<tr>
<th>@L["Actions"]</th>
<th>@L["ProductProductTypeId"]</th>
<th>@L["ProductCode"]</th>
<th>@L["ProductDisplayName"]</th>
<th>@L["ProductInventoryStrategy"]</th>
<th>@L["ProductMediaResources"]</th>

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/ViewModels/CreateEditProductViewModel.cs

@ -24,6 +24,9 @@ namespace EasyAbp.EShop.Products.Web.Pages.EShop.Products.Products.Product.ViewM
[Display(Name = "ProductCategory")]
public List<Guid> CategoryIds { get; set; }
[Display(Name = "ProductCode")]
public string Code { get; set; }
[Required]
[Display(Name = "ProductDisplayName")]
public string DisplayName { get; set; }

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/Pages/EShop/Products/Products/Product/index.js

@ -51,6 +51,7 @@ $(function () {
}
},
{ data: "productTypeId" },
{ data: "code" },
{ data: "displayName" },
{ data: "inventoryStrategy" },
{ data: "mediaResources" },

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

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

2903
samples/EasyMall/aspnet-core/src/EasyMall.EntityFrameworkCore.DbMigrations/Migrations/20200525082759_AddedCodePropertyToProduct.Designer.cs

File diff suppressed because it is too large

22
samples/EasyMall/aspnet-core/src/EasyMall.EntityFrameworkCore.DbMigrations/Migrations/20200525082759_AddedCodePropertyToProduct.cs

@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace EasyMall.Migrations
{
public partial class AddedCodePropertyToProduct : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "Code",
table: "ProductsProducts",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Code",
table: "ProductsProducts");
}
}
}

3
samples/EasyMall/aspnet-core/src/EasyMall.EntityFrameworkCore.DbMigrations/Migrations/EasyMallMigrationsDbContextModelSnapshot.cs

@ -571,6 +571,9 @@ namespace EasyMall.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("Code")
.HasColumnType("nvarchar(max)");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasColumnName("ConcurrencyStamp")

Loading…
Cancel
Save