mirror of https://github.com/EasyAbp/EShop.git
69 changed files with 11171 additions and 37 deletions
@ -0,0 +1,33 @@ |
|||
using System; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos |
|||
{ |
|||
[Serializable] |
|||
public class CouponTemplateDto : FullAuditedEntityDto<Guid> |
|||
{ |
|||
public Guid? StoreId { get; set; } |
|||
|
|||
public CouponType CouponType { get; set; } |
|||
|
|||
public string UniqueName { get; set; } |
|||
|
|||
public string DisplayName { get; set; } |
|||
|
|||
public string Description { get; set; } |
|||
|
|||
public TimeSpan? UsableDuration { get; set; } |
|||
|
|||
public DateTime? UsableBeginTime { get; set; } |
|||
|
|||
public DateTime? UsableEndTime { get; set; } |
|||
|
|||
public decimal ConditionAmount { get; set; } |
|||
|
|||
public decimal DiscountAmount { get; set; } |
|||
|
|||
public bool IsCrossProductAllowed { get; set; } |
|||
|
|||
public bool IsUnscoped { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
using System; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos |
|||
{ |
|||
[Serializable] |
|||
public class CouponTemplateScopeDto : FullAuditedEntityDto<Guid> |
|||
{ |
|||
public Guid StoreId { get; set; } |
|||
|
|||
public Guid? ProductId { get; set; } |
|||
|
|||
public Guid? ProductSkuId { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel; |
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos |
|||
{ |
|||
[Serializable] |
|||
public class CreateUpdateCouponTemplateDto |
|||
{ |
|||
public Guid? StoreId { get; set; } |
|||
|
|||
public CouponType CouponType { get; set; } |
|||
|
|||
public string UniqueName { get; set; } |
|||
|
|||
public string DisplayName { get; set; } |
|||
|
|||
public string Description { get; set; } |
|||
|
|||
public TimeSpan? UsableDuration { get; set; } |
|||
|
|||
public DateTime? UsableBeginTime { get; set; } |
|||
|
|||
public DateTime? UsableEndTime { get; set; } |
|||
|
|||
public decimal ConditionAmount { get; set; } |
|||
|
|||
public decimal DiscountAmount { get; set; } |
|||
|
|||
public bool IsCrossProductAllowed { get; set; } |
|||
|
|||
public bool IsUnscoped { get; set; } |
|||
|
|||
public List<CreateUpdateCouponTemplateScopeDto> Scopes { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
using System; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos |
|||
{ |
|||
[Serializable] |
|||
public class CreateUpdateCouponTemplateScopeDto |
|||
{ |
|||
public Guid StoreId { get; set; } |
|||
|
|||
public Guid? ProductId { get; set; } |
|||
|
|||
public Guid? ProductSkuId { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
using System; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos; |
|||
using Volo.Abp.Application.Dtos; |
|||
using Volo.Abp.Application.Services; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates |
|||
{ |
|||
public interface ICouponTemplateAppService : |
|||
ICrudAppService< |
|||
CouponTemplateDto, |
|||
Guid, |
|||
PagedAndSortedResultRequestDto, |
|||
CreateUpdateCouponTemplateDto, |
|||
CreateUpdateCouponTemplateDto> |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
using System; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons.Dtos |
|||
{ |
|||
[Serializable] |
|||
public class CouponDto : FullAuditedEntityDto<Guid> |
|||
{ |
|||
public Guid CouponTemplateId { get; set; } |
|||
|
|||
public Guid UserId { get; set; } |
|||
|
|||
public Guid? OrderId { get; set; } |
|||
|
|||
public DateTime? UsableBeginTime { get; set; } |
|||
|
|||
public DateTime? UsableEndTime { get; set; } |
|||
|
|||
public DateTime? UsedTime { get; set; } |
|||
|
|||
public decimal? DiscountedAmount { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
using System; |
|||
using System.ComponentModel; |
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons.Dtos |
|||
{ |
|||
[Serializable] |
|||
public class CreateUpdateCouponDto |
|||
{ |
|||
public Guid CouponTemplateId { get; set; } |
|||
|
|||
public Guid UserId { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
using System; |
|||
using EasyAbp.EShop.Plugins.Coupons.Coupons.Dtos; |
|||
using Volo.Abp.Application.Dtos; |
|||
using Volo.Abp.Application.Services; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons |
|||
{ |
|||
public interface ICouponAppService : |
|||
ICrudAppService< |
|||
CouponDto, |
|||
Guid, |
|||
PagedAndSortedResultRequestDto, |
|||
CreateUpdateCouponDto, |
|||
CreateUpdateCouponDto> |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
using System; |
|||
using EasyAbp.EShop.Plugins.Coupons.Permissions; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos; |
|||
using Volo.Abp.Application.Dtos; |
|||
using Volo.Abp.Application.Services; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates |
|||
{ |
|||
public class CouponTemplateAppService : CrudAppService<CouponTemplate, CouponTemplateDto, Guid, PagedAndSortedResultRequestDto, CreateUpdateCouponTemplateDto, CreateUpdateCouponTemplateDto>, |
|||
ICouponTemplateAppService |
|||
{ |
|||
protected override string GetPolicyName { get; set; } = CouponsPermissions.CouponTemplate.Default; |
|||
protected override string GetListPolicyName { get; set; } = CouponsPermissions.CouponTemplate.Default; |
|||
protected override string CreatePolicyName { get; set; } = CouponsPermissions.CouponTemplate.Create; |
|||
protected override string UpdatePolicyName { get; set; } = CouponsPermissions.CouponTemplate.Update; |
|||
protected override string DeletePolicyName { get; set; } = CouponsPermissions.CouponTemplate.Delete; |
|||
|
|||
private readonly ICouponTemplateRepository _repository; |
|||
|
|||
public CouponTemplateAppService(ICouponTemplateRepository repository) : base(repository) |
|||
{ |
|||
_repository = repository; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
using System; |
|||
using EasyAbp.EShop.Plugins.Coupons.Permissions; |
|||
using EasyAbp.EShop.Plugins.Coupons.Coupons.Dtos; |
|||
using Volo.Abp.Application.Dtos; |
|||
using Volo.Abp.Application.Services; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons |
|||
{ |
|||
public class CouponAppService : CrudAppService<Coupon, CouponDto, Guid, PagedAndSortedResultRequestDto, CreateUpdateCouponDto, CreateUpdateCouponDto>, |
|||
ICouponAppService |
|||
{ |
|||
protected override string GetPolicyName { get; set; } = CouponsPermissions.Coupon.Default; |
|||
protected override string GetListPolicyName { get; set; } = CouponsPermissions.Coupon.Default; |
|||
protected override string CreatePolicyName { get; set; } = CouponsPermissions.Coupon.Create; |
|||
protected override string UpdatePolicyName { get; set; } = CouponsPermissions.Coupon.Update; |
|||
protected override string DeletePolicyName { get; set; } = CouponsPermissions.Coupon.Delete; |
|||
|
|||
private readonly ICouponRepository _repository; |
|||
|
|||
public CouponAppService(ICouponRepository repository) : base(repository) |
|||
{ |
|||
_repository = repository; |
|||
} |
|||
} |
|||
} |
|||
@ -1,7 +1,42 @@ |
|||
{ |
|||
"culture": "en", |
|||
"texts": { |
|||
"ManageYourProfile": "Manage your profile", |
|||
"SamplePageMessage": "A sample page for the Coupons module" |
|||
"ManageYourProfile": "Manage your profile", |
|||
"SamplePageMessage": "A sample page for the Coupons module", |
|||
"Permission:CouponTemplate": "CouponTemplate", |
|||
"Permission:Create": "Create", |
|||
"Permission:Update": "Update", |
|||
"Permission:Delete": "Delete", |
|||
"Menu:CouponTemplate": "MenuCouponTemplate", |
|||
"CouponTemplate": "CouponTemplate", |
|||
"CouponTemplateStoreId": "CouponTemplateStoreId", |
|||
"CouponTemplateCouponType": "CouponTemplateCouponType", |
|||
"CouponTemplateUniqueName": "CouponTemplateUniqueName", |
|||
"CouponTemplateDisplayName": "CouponTemplateDisplayName", |
|||
"CouponTemplateDescription": "CouponTemplateDescription", |
|||
"CouponTemplateUsableDuration": "CouponTemplateUsableDuration", |
|||
"CouponTemplateUsableBeginTime": "CouponTemplateUsableBeginTime", |
|||
"CouponTemplateUsableEndTime": "CouponTemplateUsableEndTime", |
|||
"CouponTemplateConditionAmount": "CouponTemplateConditionAmount", |
|||
"CouponTemplateDiscountAmount": "CouponTemplateDiscountAmount", |
|||
"CouponTemplateIsCrossProductAllowed": "CouponTemplateIsCrossProductAllowed", |
|||
"CouponTemplateIsUnscoped": "CouponTemplateIsUnscoped", |
|||
"CreateCouponTemplate": "CreateCouponTemplate", |
|||
"EditCouponTemplate": "EditCouponTemplate", |
|||
"CouponTemplateDeletionConfirmationMessage": "Are you sure to delete the couponTemplate {0}?", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"Permission:Coupon": "Coupon", |
|||
"Menu:Coupon": "MenuCoupon", |
|||
"Coupon": "Coupon", |
|||
"CouponCouponTemplateId": "CouponCouponTemplateId", |
|||
"CouponUserId": "CouponUserId", |
|||
"CouponOrderId": "CouponOrderId", |
|||
"CouponUsableBeginTime": "CouponUsableBeginTime", |
|||
"CouponUsableEndTime": "CouponUsableEndTime", |
|||
"CouponUsedTime": "CouponUsedTime", |
|||
"CouponDiscountedAmount": "CouponDiscountedAmount", |
|||
"CreateCoupon": "CreateCoupon", |
|||
"EditCoupon": "EditCoupon", |
|||
"CouponDeletionConfirmationMessage": "Are you sure to delete the coupon {0}?" |
|||
} |
|||
} |
|||
@ -1,6 +1,40 @@ |
|||
{ |
|||
"culture": "pl-PL", |
|||
"texts": { |
|||
|
|||
"Permission:CouponTemplate": "CouponTemplate", |
|||
"Permission:Create": "Create", |
|||
"Permission:Update": "Update", |
|||
"Permission:Delete": "Delete", |
|||
"Menu:CouponTemplate": "MenuCouponTemplate", |
|||
"CouponTemplate": "CouponTemplate", |
|||
"CouponTemplateStoreId": "CouponTemplateStoreId", |
|||
"CouponTemplateCouponType": "CouponTemplateCouponType", |
|||
"CouponTemplateUniqueName": "CouponTemplateUniqueName", |
|||
"CouponTemplateDisplayName": "CouponTemplateDisplayName", |
|||
"CouponTemplateDescription": "CouponTemplateDescription", |
|||
"CouponTemplateUsableDuration": "CouponTemplateUsableDuration", |
|||
"CouponTemplateUsableBeginTime": "CouponTemplateUsableBeginTime", |
|||
"CouponTemplateUsableEndTime": "CouponTemplateUsableEndTime", |
|||
"CouponTemplateConditionAmount": "CouponTemplateConditionAmount", |
|||
"CouponTemplateDiscountAmount": "CouponTemplateDiscountAmount", |
|||
"CouponTemplateIsCrossProductAllowed": "CouponTemplateIsCrossProductAllowed", |
|||
"CouponTemplateIsUnscoped": "CouponTemplateIsUnscoped", |
|||
"CreateCouponTemplate": "CreateCouponTemplate", |
|||
"EditCouponTemplate": "EditCouponTemplate", |
|||
"CouponTemplateDeletionConfirmationMessage": "Are you sure to delete the couponTemplate {0}?", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"Permission:Coupon": "Coupon", |
|||
"Menu:Coupon": "MenuCoupon", |
|||
"Coupon": "Coupon", |
|||
"CouponCouponTemplateId": "CouponCouponTemplateId", |
|||
"CouponUserId": "CouponUserId", |
|||
"CouponOrderId": "CouponOrderId", |
|||
"CouponUsableBeginTime": "CouponUsableBeginTime", |
|||
"CouponUsableEndTime": "CouponUsableEndTime", |
|||
"CouponUsedTime": "CouponUsedTime", |
|||
"CouponDiscountedAmount": "CouponDiscountedAmount", |
|||
"CreateCoupon": "CreateCoupon", |
|||
"EditCoupon": "EditCoupon", |
|||
"CouponDeletionConfirmationMessage": "Are you sure to delete the coupon {0}?" |
|||
} |
|||
} |
|||
@ -1,6 +1,40 @@ |
|||
{ |
|||
"culture": "pt-BR", |
|||
"texts": { |
|||
|
|||
"Permission:CouponTemplate": "CouponTemplate", |
|||
"Permission:Create": "Create", |
|||
"Permission:Update": "Update", |
|||
"Permission:Delete": "Delete", |
|||
"Menu:CouponTemplate": "MenuCouponTemplate", |
|||
"CouponTemplate": "CouponTemplate", |
|||
"CouponTemplateStoreId": "CouponTemplateStoreId", |
|||
"CouponTemplateCouponType": "CouponTemplateCouponType", |
|||
"CouponTemplateUniqueName": "CouponTemplateUniqueName", |
|||
"CouponTemplateDisplayName": "CouponTemplateDisplayName", |
|||
"CouponTemplateDescription": "CouponTemplateDescription", |
|||
"CouponTemplateUsableDuration": "CouponTemplateUsableDuration", |
|||
"CouponTemplateUsableBeginTime": "CouponTemplateUsableBeginTime", |
|||
"CouponTemplateUsableEndTime": "CouponTemplateUsableEndTime", |
|||
"CouponTemplateConditionAmount": "CouponTemplateConditionAmount", |
|||
"CouponTemplateDiscountAmount": "CouponTemplateDiscountAmount", |
|||
"CouponTemplateIsCrossProductAllowed": "CouponTemplateIsCrossProductAllowed", |
|||
"CouponTemplateIsUnscoped": "CouponTemplateIsUnscoped", |
|||
"CreateCouponTemplate": "CreateCouponTemplate", |
|||
"EditCouponTemplate": "EditCouponTemplate", |
|||
"CouponTemplateDeletionConfirmationMessage": "Are you sure to delete the couponTemplate {0}?", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"Permission:Coupon": "Coupon", |
|||
"Menu:Coupon": "MenuCoupon", |
|||
"Coupon": "Coupon", |
|||
"CouponCouponTemplateId": "CouponCouponTemplateId", |
|||
"CouponUserId": "CouponUserId", |
|||
"CouponOrderId": "CouponOrderId", |
|||
"CouponUsableBeginTime": "CouponUsableBeginTime", |
|||
"CouponUsableEndTime": "CouponUsableEndTime", |
|||
"CouponUsedTime": "CouponUsedTime", |
|||
"CouponDiscountedAmount": "CouponDiscountedAmount", |
|||
"CreateCoupon": "CreateCoupon", |
|||
"EditCoupon": "EditCoupon", |
|||
"CouponDeletionConfirmationMessage": "Are you sure to delete the coupon {0}?" |
|||
} |
|||
} |
|||
@ -1,6 +1,41 @@ |
|||
{ |
|||
"culture": "sl", |
|||
"texts": { |
|||
"ManageYourProfile": "Upravljajte svojim profilom" |
|||
"ManageYourProfile": "Upravljajte svojim profilom", |
|||
"Permission:CouponTemplate": "CouponTemplate", |
|||
"Permission:Create": "Create", |
|||
"Permission:Update": "Update", |
|||
"Permission:Delete": "Delete", |
|||
"Menu:CouponTemplate": "MenuCouponTemplate", |
|||
"CouponTemplate": "CouponTemplate", |
|||
"CouponTemplateStoreId": "CouponTemplateStoreId", |
|||
"CouponTemplateCouponType": "CouponTemplateCouponType", |
|||
"CouponTemplateUniqueName": "CouponTemplateUniqueName", |
|||
"CouponTemplateDisplayName": "CouponTemplateDisplayName", |
|||
"CouponTemplateDescription": "CouponTemplateDescription", |
|||
"CouponTemplateUsableDuration": "CouponTemplateUsableDuration", |
|||
"CouponTemplateUsableBeginTime": "CouponTemplateUsableBeginTime", |
|||
"CouponTemplateUsableEndTime": "CouponTemplateUsableEndTime", |
|||
"CouponTemplateConditionAmount": "CouponTemplateConditionAmount", |
|||
"CouponTemplateDiscountAmount": "CouponTemplateDiscountAmount", |
|||
"CouponTemplateIsCrossProductAllowed": "CouponTemplateIsCrossProductAllowed", |
|||
"CouponTemplateIsUnscoped": "CouponTemplateIsUnscoped", |
|||
"CreateCouponTemplate": "CreateCouponTemplate", |
|||
"EditCouponTemplate": "EditCouponTemplate", |
|||
"CouponTemplateDeletionConfirmationMessage": "Are you sure to delete the couponTemplate {0}?", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"Permission:Coupon": "Coupon", |
|||
"Menu:Coupon": "MenuCoupon", |
|||
"Coupon": "Coupon", |
|||
"CouponCouponTemplateId": "CouponCouponTemplateId", |
|||
"CouponUserId": "CouponUserId", |
|||
"CouponOrderId": "CouponOrderId", |
|||
"CouponUsableBeginTime": "CouponUsableBeginTime", |
|||
"CouponUsableEndTime": "CouponUsableEndTime", |
|||
"CouponUsedTime": "CouponUsedTime", |
|||
"CouponDiscountedAmount": "CouponDiscountedAmount", |
|||
"CreateCoupon": "CreateCoupon", |
|||
"EditCoupon": "EditCoupon", |
|||
"CouponDeletionConfirmationMessage": "Are you sure to delete the coupon {0}?" |
|||
} |
|||
} |
|||
@ -1,7 +1,42 @@ |
|||
{ |
|||
"culture": "tr", |
|||
"texts": { |
|||
"ManageYourProfile": "Profil yönetimi", |
|||
"SamplePageMessage": "Coupons modulünden örnek bir sayfa" |
|||
"ManageYourProfile": "Profil yönetimi", |
|||
"SamplePageMessage": "Coupons modulünden örnek bir sayfa", |
|||
"Permission:CouponTemplate": "CouponTemplate", |
|||
"Permission:Create": "Create", |
|||
"Permission:Update": "Update", |
|||
"Permission:Delete": "Delete", |
|||
"Menu:CouponTemplate": "MenuCouponTemplate", |
|||
"CouponTemplate": "CouponTemplate", |
|||
"CouponTemplateStoreId": "CouponTemplateStoreId", |
|||
"CouponTemplateCouponType": "CouponTemplateCouponType", |
|||
"CouponTemplateUniqueName": "CouponTemplateUniqueName", |
|||
"CouponTemplateDisplayName": "CouponTemplateDisplayName", |
|||
"CouponTemplateDescription": "CouponTemplateDescription", |
|||
"CouponTemplateUsableDuration": "CouponTemplateUsableDuration", |
|||
"CouponTemplateUsableBeginTime": "CouponTemplateUsableBeginTime", |
|||
"CouponTemplateUsableEndTime": "CouponTemplateUsableEndTime", |
|||
"CouponTemplateConditionAmount": "CouponTemplateConditionAmount", |
|||
"CouponTemplateDiscountAmount": "CouponTemplateDiscountAmount", |
|||
"CouponTemplateIsCrossProductAllowed": "CouponTemplateIsCrossProductAllowed", |
|||
"CouponTemplateIsUnscoped": "CouponTemplateIsUnscoped", |
|||
"CreateCouponTemplate": "CreateCouponTemplate", |
|||
"EditCouponTemplate": "EditCouponTemplate", |
|||
"CouponTemplateDeletionConfirmationMessage": "Are you sure to delete the couponTemplate {0}?", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"Permission:Coupon": "Coupon", |
|||
"Menu:Coupon": "MenuCoupon", |
|||
"Coupon": "Coupon", |
|||
"CouponCouponTemplateId": "CouponCouponTemplateId", |
|||
"CouponUserId": "CouponUserId", |
|||
"CouponOrderId": "CouponOrderId", |
|||
"CouponUsableBeginTime": "CouponUsableBeginTime", |
|||
"CouponUsableEndTime": "CouponUsableEndTime", |
|||
"CouponUsedTime": "CouponUsedTime", |
|||
"CouponDiscountedAmount": "CouponDiscountedAmount", |
|||
"CreateCoupon": "CreateCoupon", |
|||
"EditCoupon": "EditCoupon", |
|||
"CouponDeletionConfirmationMessage": "Are you sure to delete the coupon {0}?" |
|||
} |
|||
} |
|||
@ -1,6 +1,40 @@ |
|||
{ |
|||
"culture": "vi", |
|||
"texts": { |
|||
|
|||
"Permission:CouponTemplate": "CouponTemplate", |
|||
"Permission:Create": "Create", |
|||
"Permission:Update": "Update", |
|||
"Permission:Delete": "Delete", |
|||
"Menu:CouponTemplate": "MenuCouponTemplate", |
|||
"CouponTemplate": "CouponTemplate", |
|||
"CouponTemplateStoreId": "CouponTemplateStoreId", |
|||
"CouponTemplateCouponType": "CouponTemplateCouponType", |
|||
"CouponTemplateUniqueName": "CouponTemplateUniqueName", |
|||
"CouponTemplateDisplayName": "CouponTemplateDisplayName", |
|||
"CouponTemplateDescription": "CouponTemplateDescription", |
|||
"CouponTemplateUsableDuration": "CouponTemplateUsableDuration", |
|||
"CouponTemplateUsableBeginTime": "CouponTemplateUsableBeginTime", |
|||
"CouponTemplateUsableEndTime": "CouponTemplateUsableEndTime", |
|||
"CouponTemplateConditionAmount": "CouponTemplateConditionAmount", |
|||
"CouponTemplateDiscountAmount": "CouponTemplateDiscountAmount", |
|||
"CouponTemplateIsCrossProductAllowed": "CouponTemplateIsCrossProductAllowed", |
|||
"CouponTemplateIsUnscoped": "CouponTemplateIsUnscoped", |
|||
"CreateCouponTemplate": "CreateCouponTemplate", |
|||
"EditCouponTemplate": "EditCouponTemplate", |
|||
"CouponTemplateDeletionConfirmationMessage": "Are you sure to delete the couponTemplate {0}?", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"Permission:Coupon": "Coupon", |
|||
"Menu:Coupon": "MenuCoupon", |
|||
"Coupon": "Coupon", |
|||
"CouponCouponTemplateId": "CouponCouponTemplateId", |
|||
"CouponUserId": "CouponUserId", |
|||
"CouponOrderId": "CouponOrderId", |
|||
"CouponUsableBeginTime": "CouponUsableBeginTime", |
|||
"CouponUsableEndTime": "CouponUsableEndTime", |
|||
"CouponUsedTime": "CouponUsedTime", |
|||
"CouponDiscountedAmount": "CouponDiscountedAmount", |
|||
"CreateCoupon": "CreateCoupon", |
|||
"EditCoupon": "EditCoupon", |
|||
"CouponDeletionConfirmationMessage": "Are you sure to delete the coupon {0}?" |
|||
} |
|||
} |
|||
} |
|||
@ -1,6 +1,41 @@ |
|||
{ |
|||
"culture": "zh-Hans", |
|||
"texts": { |
|||
"ManageYourProfile": "管理个人资料" |
|||
"ManageYourProfile": "管理个人资料", |
|||
"Permission:CouponTemplate": "CouponTemplate", |
|||
"Permission:Create": "Create", |
|||
"Permission:Update": "Update", |
|||
"Permission:Delete": "Delete", |
|||
"Menu:CouponTemplate": "MenuCouponTemplate", |
|||
"CouponTemplate": "CouponTemplate", |
|||
"CouponTemplateStoreId": "CouponTemplateStoreId", |
|||
"CouponTemplateCouponType": "CouponTemplateCouponType", |
|||
"CouponTemplateUniqueName": "CouponTemplateUniqueName", |
|||
"CouponTemplateDisplayName": "CouponTemplateDisplayName", |
|||
"CouponTemplateDescription": "CouponTemplateDescription", |
|||
"CouponTemplateUsableDuration": "CouponTemplateUsableDuration", |
|||
"CouponTemplateUsableBeginTime": "CouponTemplateUsableBeginTime", |
|||
"CouponTemplateUsableEndTime": "CouponTemplateUsableEndTime", |
|||
"CouponTemplateConditionAmount": "CouponTemplateConditionAmount", |
|||
"CouponTemplateDiscountAmount": "CouponTemplateDiscountAmount", |
|||
"CouponTemplateIsCrossProductAllowed": "CouponTemplateIsCrossProductAllowed", |
|||
"CouponTemplateIsUnscoped": "CouponTemplateIsUnscoped", |
|||
"CreateCouponTemplate": "CreateCouponTemplate", |
|||
"EditCouponTemplate": "EditCouponTemplate", |
|||
"CouponTemplateDeletionConfirmationMessage": "Are you sure to delete the couponTemplate {0}?", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"Permission:Coupon": "Coupon", |
|||
"Menu:Coupon": "MenuCoupon", |
|||
"Coupon": "Coupon", |
|||
"CouponCouponTemplateId": "CouponCouponTemplateId", |
|||
"CouponUserId": "CouponUserId", |
|||
"CouponOrderId": "CouponOrderId", |
|||
"CouponUsableBeginTime": "CouponUsableBeginTime", |
|||
"CouponUsableEndTime": "CouponUsableEndTime", |
|||
"CouponUsedTime": "CouponUsedTime", |
|||
"CouponDiscountedAmount": "CouponDiscountedAmount", |
|||
"CreateCoupon": "CreateCoupon", |
|||
"EditCoupon": "EditCoupon", |
|||
"CouponDeletionConfirmationMessage": "Are you sure to delete the coupon {0}?" |
|||
} |
|||
} |
|||
@ -1,6 +1,41 @@ |
|||
{ |
|||
"culture": "zh-Hant", |
|||
"texts": { |
|||
"ManageYourProfile": "管理個人資料" |
|||
"ManageYourProfile": "管理個人資料", |
|||
"Permission:CouponTemplate": "CouponTemplate", |
|||
"Permission:Create": "Create", |
|||
"Permission:Update": "Update", |
|||
"Permission:Delete": "Delete", |
|||
"Menu:CouponTemplate": "MenuCouponTemplate", |
|||
"CouponTemplate": "CouponTemplate", |
|||
"CouponTemplateStoreId": "CouponTemplateStoreId", |
|||
"CouponTemplateCouponType": "CouponTemplateCouponType", |
|||
"CouponTemplateUniqueName": "CouponTemplateUniqueName", |
|||
"CouponTemplateDisplayName": "CouponTemplateDisplayName", |
|||
"CouponTemplateDescription": "CouponTemplateDescription", |
|||
"CouponTemplateUsableDuration": "CouponTemplateUsableDuration", |
|||
"CouponTemplateUsableBeginTime": "CouponTemplateUsableBeginTime", |
|||
"CouponTemplateUsableEndTime": "CouponTemplateUsableEndTime", |
|||
"CouponTemplateConditionAmount": "CouponTemplateConditionAmount", |
|||
"CouponTemplateDiscountAmount": "CouponTemplateDiscountAmount", |
|||
"CouponTemplateIsCrossProductAllowed": "CouponTemplateIsCrossProductAllowed", |
|||
"CouponTemplateIsUnscoped": "CouponTemplateIsUnscoped", |
|||
"CreateCouponTemplate": "CreateCouponTemplate", |
|||
"EditCouponTemplate": "EditCouponTemplate", |
|||
"CouponTemplateDeletionConfirmationMessage": "Are you sure to delete the couponTemplate {0}?", |
|||
"SuccessfullyDeleted": "Successfully deleted", |
|||
"Permission:Coupon": "Coupon", |
|||
"Menu:Coupon": "MenuCoupon", |
|||
"Coupon": "Coupon", |
|||
"CouponCouponTemplateId": "CouponCouponTemplateId", |
|||
"CouponUserId": "CouponUserId", |
|||
"CouponOrderId": "CouponOrderId", |
|||
"CouponUsableBeginTime": "CouponUsableBeginTime", |
|||
"CouponUsableEndTime": "CouponUsableEndTime", |
|||
"CouponUsedTime": "CouponUsedTime", |
|||
"CouponDiscountedAmount": "CouponDiscountedAmount", |
|||
"CreateCoupon": "CreateCoupon", |
|||
"EditCoupon": "EditCoupon", |
|||
"CouponDeletionConfirmationMessage": "Are you sure to delete the coupon {0}?" |
|||
} |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
using System; |
|||
using Volo.Abp.Domain.Repositories; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates |
|||
{ |
|||
public interface ICouponTemplateRepository : IRepository<CouponTemplate, Guid> |
|||
{ |
|||
} |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
using System; |
|||
using Volo.Abp.Domain.Repositories; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons |
|||
{ |
|||
public interface ICouponRepository : IRepository<Coupon, Guid> |
|||
{ |
|||
} |
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
using System.Linq; |
|||
using Microsoft.EntityFrameworkCore; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates |
|||
{ |
|||
public static class CouponTemplateEfCoreQueryableExtensions |
|||
{ |
|||
public static IQueryable<CouponTemplate> IncludeDetails(this IQueryable<CouponTemplate> queryable, bool include = true) |
|||
{ |
|||
if (!include) |
|||
{ |
|||
return queryable; |
|||
} |
|||
|
|||
return queryable |
|||
// .Include(x => x.xxx) // TODO: AbpHelper generated
|
|||
; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
using System; |
|||
using EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore; |
|||
using Volo.Abp.Domain.Repositories.EntityFrameworkCore; |
|||
using Volo.Abp.EntityFrameworkCore; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates |
|||
{ |
|||
public class CouponTemplateRepository : EfCoreRepository<ICouponsDbContext, CouponTemplate, Guid>, ICouponTemplateRepository |
|||
{ |
|||
public CouponTemplateRepository(IDbContextProvider<ICouponsDbContext> dbContextProvider) : base(dbContextProvider) |
|||
{ |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
using System.Linq; |
|||
using Microsoft.EntityFrameworkCore; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons |
|||
{ |
|||
public static class CouponEfCoreQueryableExtensions |
|||
{ |
|||
public static IQueryable<Coupon> IncludeDetails(this IQueryable<Coupon> queryable, bool include = true) |
|||
{ |
|||
if (!include) |
|||
{ |
|||
return queryable; |
|||
} |
|||
|
|||
return queryable |
|||
// .Include(x => x.xxx) // TODO: AbpHelper generated
|
|||
; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
using System; |
|||
using EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore; |
|||
using Volo.Abp.Domain.Repositories.EntityFrameworkCore; |
|||
using Volo.Abp.EntityFrameworkCore; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons |
|||
{ |
|||
public class CouponRepository : EfCoreRepository<ICouponsDbContext, Coupon, Guid>, ICouponRepository |
|||
{ |
|||
public CouponRepository(IDbContextProvider<ICouponsDbContext> dbContextProvider) : base(dbContextProvider) |
|||
{ |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,55 @@ |
|||
using System; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos; |
|||
using Volo.Abp.Application.Dtos; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Volo.Abp; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates |
|||
{ |
|||
[RemoteService(Name = "EasyAbpEShopPluginsCoupons")] |
|||
[Route("/api/eShop/plugins/coupons/couponTemplate")] |
|||
public class CouponTemplateController : CouponsController, ICouponTemplateAppService |
|||
{ |
|||
private readonly ICouponTemplateAppService _service; |
|||
|
|||
public CouponTemplateController(ICouponTemplateAppService service) |
|||
{ |
|||
_service = service; |
|||
} |
|||
|
|||
[HttpPost] |
|||
public virtual Task<CouponTemplateDto> CreateAsync(CreateUpdateCouponTemplateDto input) |
|||
{ |
|||
return _service.CreateAsync(input); |
|||
} |
|||
|
|||
[HttpPut] |
|||
[Route("{id}")] |
|||
public virtual Task<CouponTemplateDto> UpdateAsync(Guid id, CreateUpdateCouponTemplateDto input) |
|||
{ |
|||
return _service.UpdateAsync(id, input); |
|||
} |
|||
|
|||
[HttpDelete] |
|||
[Route("{id}")] |
|||
public virtual Task DeleteAsync(Guid id) |
|||
{ |
|||
return _service.DeleteAsync(id); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[Route("{id}")] |
|||
public virtual Task<CouponTemplateDto> GetAsync(Guid id) |
|||
{ |
|||
return _service.GetAsync(id); |
|||
} |
|||
|
|||
[HttpGet] |
|||
public virtual Task<PagedResultDto<CouponTemplateDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|||
{ |
|||
return _service.GetListAsync(input); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,55 @@ |
|||
using System; |
|||
using EasyAbp.EShop.Plugins.Coupons.Coupons.Dtos; |
|||
using Volo.Abp.Application.Dtos; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Volo.Abp; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons |
|||
{ |
|||
[RemoteService(Name = "EasyAbpEShopPluginsCoupons")] |
|||
[Route("/api/eShop/plugins/coupons/coupon")] |
|||
public class CouponController : CouponsController, ICouponAppService |
|||
{ |
|||
private readonly ICouponAppService _service; |
|||
|
|||
public CouponController(ICouponAppService service) |
|||
{ |
|||
_service = service; |
|||
} |
|||
|
|||
[HttpPost] |
|||
public virtual Task<CouponDto> CreateAsync(CreateUpdateCouponDto input) |
|||
{ |
|||
return _service.CreateAsync(input); |
|||
} |
|||
|
|||
[HttpPut] |
|||
[Route("{id}")] |
|||
public virtual Task<CouponDto> UpdateAsync(Guid id, CreateUpdateCouponDto input) |
|||
{ |
|||
return _service.UpdateAsync(id, input); |
|||
} |
|||
|
|||
[HttpDelete] |
|||
[Route("{id}")] |
|||
public virtual Task DeleteAsync(Guid id) |
|||
{ |
|||
return _service.DeleteAsync(id); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[Route("{id}")] |
|||
public virtual Task<CouponDto> GetAsync(Guid id) |
|||
{ |
|||
return _service.GetAsync(id); |
|||
} |
|||
|
|||
[HttpGet] |
|||
public virtual Task<PagedResultDto<CouponDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|||
{ |
|||
return _service.GetListAsync(input); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,18 @@ |
|||
@page |
|||
@using Microsoft.AspNetCore.Mvc.Localization |
|||
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal; |
|||
@using EasyAbp.EShop.Plugins.Coupons.Localization |
|||
@inject IHtmlLocalizer<CouponsResource> L |
|||
@model EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate.CreateModalModel |
|||
@{ |
|||
Layout = null; |
|||
} |
|||
<abp-dynamic-form abp-model="ViewModel" data-ajaxForm="true" asp-page="CreateModal"> |
|||
<abp-modal> |
|||
<abp-modal-header title="@L["CreateCouponTemplate"].Value"></abp-modal-header> |
|||
<abp-modal-body> |
|||
<abp-form-content /> |
|||
</abp-modal-body> |
|||
<abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer> |
|||
</abp-modal> |
|||
</abp-dynamic-form> |
|||
@ -0,0 +1,28 @@ |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos; |
|||
using EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate.ViewModels; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate |
|||
{ |
|||
public class CreateModalModel : CouponsPageModel |
|||
{ |
|||
[BindProperty] |
|||
public CreateEditCouponTemplateViewModel ViewModel { get; set; } |
|||
|
|||
private readonly ICouponTemplateAppService _service; |
|||
|
|||
public CreateModalModel(ICouponTemplateAppService service) |
|||
{ |
|||
_service = service; |
|||
} |
|||
|
|||
public virtual async Task<IActionResult> OnPostAsync() |
|||
{ |
|||
var dto = ObjectMapper.Map<CreateEditCouponTemplateViewModel, CreateUpdateCouponTemplateDto>(ViewModel); |
|||
await _service.CreateAsync(dto); |
|||
return NoContent(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
@page |
|||
@using EasyAbp.EShop.Plugins.Coupons.Localization |
|||
@using Microsoft.AspNetCore.Mvc.Localization |
|||
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal; |
|||
@inject IHtmlLocalizer<CouponsResource> L |
|||
@model EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate.EditModalModel |
|||
@{ |
|||
Layout = null; |
|||
} |
|||
<abp-dynamic-form abp-model="ViewModel" data-ajaxForm="true" asp-page="EditModal"> |
|||
<abp-modal> |
|||
<abp-modal-header title="@L["EditCouponTemplate"].Value"></abp-modal-header> |
|||
<abp-modal-body> |
|||
<abp-input asp-for="Id" /> |
|||
<abp-form-content /> |
|||
</abp-modal-body> |
|||
<abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer> |
|||
</abp-modal> |
|||
</abp-dynamic-form> |
|||
@ -0,0 +1,39 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates.Dtos; |
|||
using EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate.ViewModels; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate |
|||
{ |
|||
public class EditModalModel : CouponsPageModel |
|||
{ |
|||
[HiddenInput] |
|||
[BindProperty(SupportsGet = true)] |
|||
public Guid Id { get; set; } |
|||
|
|||
[BindProperty] |
|||
public CreateEditCouponTemplateViewModel ViewModel { get; set; } |
|||
|
|||
private readonly ICouponTemplateAppService _service; |
|||
|
|||
public EditModalModel(ICouponTemplateAppService service) |
|||
{ |
|||
_service = service; |
|||
} |
|||
|
|||
public virtual async Task OnGetAsync() |
|||
{ |
|||
var dto = await _service.GetAsync(Id); |
|||
ViewModel = ObjectMapper.Map<CouponTemplateDto, CreateEditCouponTemplateViewModel>(dto); |
|||
} |
|||
|
|||
public virtual async Task<IActionResult> OnPostAsync() |
|||
{ |
|||
var dto = ObjectMapper.Map<CreateEditCouponTemplateViewModel, CreateUpdateCouponTemplateDto>(ViewModel); |
|||
await _service.UpdateAsync(Id, dto); |
|||
return NoContent(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,67 @@ |
|||
@page |
|||
@using EasyAbp.EShop.Plugins.Coupons.Permissions |
|||
@using Microsoft.AspNetCore.Authorization |
|||
@using Microsoft.AspNetCore.Mvc.Localization |
|||
@using Volo.Abp.AspNetCore.Mvc.UI.Layout |
|||
@using EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate |
|||
@using EasyAbp.EShop.Plugins.Coupons.Localization |
|||
@using EasyAbp.EShop.Plugins.Coupons.Web.Menus |
|||
@model IndexModel |
|||
@inject IPageLayout PageLayout |
|||
@inject IHtmlLocalizer<CouponsResource> L |
|||
@inject IAuthorizationService Authorization |
|||
@{ |
|||
PageLayout.Content.Title = L["CouponTemplate"].Value; |
|||
PageLayout.Content.BreadCrumb.Add(L["Menu:CouponTemplate"].Value); |
|||
PageLayout.Content.MenuItemName = CouponsMenus.CouponTemplate; |
|||
} |
|||
|
|||
@section scripts |
|||
{ |
|||
<abp-script src="/Pages/EShop/Plugins/Coupons/CouponTemplates/CouponTemplate/index.js" /> |
|||
} |
|||
@section styles |
|||
{ |
|||
<abp-style src="/Pages/EShop/Plugins/Coupons/CouponTemplates/CouponTemplate/index.css"/> |
|||
} |
|||
|
|||
<abp-card> |
|||
<abp-card-header> |
|||
<abp-row> |
|||
<abp-column size-md="_6"> |
|||
<abp-card-title>@L["CouponTemplate"]</abp-card-title> |
|||
</abp-column> |
|||
<abp-column size-md="_6" class="text-right"> |
|||
@if (await Authorization.IsGrantedAsync(CouponsPermissions.CouponTemplate.Create)) |
|||
{ |
|||
<abp-button id="NewCouponTemplateButton" |
|||
text="@L["CreateCouponTemplate"].Value" |
|||
icon="plus" |
|||
button-type="Primary" /> |
|||
} |
|||
</abp-column> |
|||
</abp-row> |
|||
</abp-card-header> |
|||
<abp-card-body> |
|||
<abp-table striped-rows="true" id="CouponTemplateTable" class="nowrap"> |
|||
<thead> |
|||
<tr> |
|||
<th>@L["Actions"]</th> |
|||
<th>@L["CouponTemplateStoreId"]</th> |
|||
<th>@L["CouponTemplateCouponType"]</th> |
|||
<th>@L["CouponTemplateUniqueName"]</th> |
|||
<th>@L["CouponTemplateDisplayName"]</th> |
|||
<th>@L["CouponTemplateDescription"]</th> |
|||
<th>@L["CouponTemplateUsableDuration"]</th> |
|||
<th>@L["CouponTemplateUsableBeginTime"]</th> |
|||
<th>@L["CouponTemplateUsableEndTime"]</th> |
|||
<th>@L["CouponTemplateConditionAmount"]</th> |
|||
<th>@L["CouponTemplateDiscountAmount"]</th> |
|||
<th>@L["CouponTemplateIsCrossProductAllowed"]</th> |
|||
<th>@L["CouponTemplateIsUnscoped"]</th> |
|||
<th>@L["CouponTemplateScopes"]</th> |
|||
</tr> |
|||
</thead> |
|||
</abp-table> |
|||
</abp-card-body> |
|||
</abp-card> |
|||
@ -0,0 +1,12 @@ |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate |
|||
{ |
|||
public class IndexModel : CouponsPageModel |
|||
{ |
|||
public virtual async Task OnGetAsync() |
|||
{ |
|||
await Task.CompletedTask; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel.DataAnnotations; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.CouponTemplates.CouponTemplate.ViewModels |
|||
{ |
|||
public class CreateEditCouponTemplateViewModel |
|||
{ |
|||
[Display(Name = "CouponTemplateStoreId")] |
|||
public Guid? StoreId { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateCouponType")] |
|||
public CouponType CouponType { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateUniqueName")] |
|||
public string UniqueName { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateDisplayName")] |
|||
public string DisplayName { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateDescription")] |
|||
public string Description { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateUsableDuration")] |
|||
public TimeSpan? UsableDuration { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateUsableBeginTime")] |
|||
public DateTime? UsableBeginTime { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateUsableEndTime")] |
|||
public DateTime? UsableEndTime { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateConditionAmount")] |
|||
public decimal ConditionAmount { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateDiscountAmount")] |
|||
public decimal DiscountAmount { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateIsCrossProductAllowed")] |
|||
public bool IsCrossProductAllowed { get; set; } |
|||
|
|||
[Display(Name = "CouponTemplateIsUnscoped")] |
|||
public bool IsUnscoped { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,74 @@ |
|||
$(function () { |
|||
|
|||
var l = abp.localization.getResource('EasyAbpEShopPluginsCoupons'); |
|||
|
|||
var service = easyAbp.eShop.plugins.coupons.couponTemplates.couponTemplate; |
|||
var createModal = new abp.ModalManager(abp.appPath + 'EShop/Plugins/Coupons/CouponTemplates/CouponTemplate/CreateModal'); |
|||
var editModal = new abp.ModalManager(abp.appPath + 'EShop/Plugins/Coupons/CouponTemplates/CouponTemplate/EditModal'); |
|||
|
|||
var dataTable = $('#CouponTemplateTable').DataTable(abp.libs.datatables.normalizeConfiguration({ |
|||
processing: true, |
|||
serverSide: true, |
|||
paging: true, |
|||
searching: false, |
|||
autoWidth: false, |
|||
scrollCollapse: true, |
|||
order: [[0, "asc"]], |
|||
ajax: abp.libs.datatables.createAjax(service.getList), |
|||
columnDefs: [ |
|||
{ |
|||
rowAction: { |
|||
items: |
|||
[ |
|||
{ |
|||
text: l('Edit'), |
|||
visible: abp.auth.isGranted('EasyAbp.EShop.Plugins.Coupons.CouponTemplate.Update'), |
|||
action: function (data) { |
|||
editModal.open({ id: data.record.id }); |
|||
} |
|||
}, |
|||
{ |
|||
text: l('Delete'), |
|||
visible: abp.auth.isGranted('EasyAbp.EShop.Plugins.Coupons.CouponTemplate.Delete'), |
|||
confirmMessage: function (data) { |
|||
return l('CouponTemplateDeletionConfirmationMessage', data.record.id); |
|||
}, |
|||
action: function (data) { |
|||
service.delete(data.record.id) |
|||
.then(function () { |
|||
abp.notify.info(l('SuccessfullyDeleted')); |
|||
dataTable.ajax.reload(); |
|||
}); |
|||
} |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
{ data: "storeId" }, |
|||
{ data: "couponType" }, |
|||
{ data: "uniqueName" }, |
|||
{ data: "displayName" }, |
|||
{ data: "description" }, |
|||
{ data: "usableDuration" }, |
|||
{ data: "usableBeginTime" }, |
|||
{ data: "usableEndTime" }, |
|||
{ data: "conditionAmount" }, |
|||
{ data: "discountAmount" }, |
|||
{ data: "isCrossProductAllowed" }, |
|||
{ data: "isUnscoped" }, |
|||
] |
|||
})); |
|||
|
|||
createModal.onResult(function () { |
|||
dataTable.ajax.reload(); |
|||
}); |
|||
|
|||
editModal.onResult(function () { |
|||
dataTable.ajax.reload(); |
|||
}); |
|||
|
|||
$('#NewCouponTemplateButton').click(function (e) { |
|||
e.preventDefault(); |
|||
createModal.open(); |
|||
}); |
|||
}); |
|||
@ -0,0 +1,18 @@ |
|||
@page |
|||
@using Microsoft.AspNetCore.Mvc.Localization |
|||
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal; |
|||
@using EasyAbp.EShop.Plugins.Coupons.Localization |
|||
@inject IHtmlLocalizer<CouponsResource> L |
|||
@model EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon.CreateModalModel |
|||
@{ |
|||
Layout = null; |
|||
} |
|||
<abp-dynamic-form abp-model="ViewModel" data-ajaxForm="true" asp-page="CreateModal"> |
|||
<abp-modal> |
|||
<abp-modal-header title="@L["CreateCoupon"].Value"></abp-modal-header> |
|||
<abp-modal-body> |
|||
<abp-form-content /> |
|||
</abp-modal-body> |
|||
<abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer> |
|||
</abp-modal> |
|||
</abp-dynamic-form> |
|||
@ -0,0 +1,28 @@ |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using EasyAbp.EShop.Plugins.Coupons.Coupons; |
|||
using EasyAbp.EShop.Plugins.Coupons.Coupons.Dtos; |
|||
using EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon.ViewModels; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon |
|||
{ |
|||
public class CreateModalModel : CouponsPageModel |
|||
{ |
|||
[BindProperty] |
|||
public CreateEditCouponViewModel ViewModel { get; set; } |
|||
|
|||
private readonly ICouponAppService _service; |
|||
|
|||
public CreateModalModel(ICouponAppService service) |
|||
{ |
|||
_service = service; |
|||
} |
|||
|
|||
public virtual async Task<IActionResult> OnPostAsync() |
|||
{ |
|||
var dto = ObjectMapper.Map<CreateEditCouponViewModel, CreateUpdateCouponDto>(ViewModel); |
|||
await _service.CreateAsync(dto); |
|||
return NoContent(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
@page |
|||
@using EasyAbp.EShop.Plugins.Coupons.Localization |
|||
@using Microsoft.AspNetCore.Mvc.Localization |
|||
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal; |
|||
@inject IHtmlLocalizer<CouponsResource> L |
|||
@model EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon.EditModalModel |
|||
@{ |
|||
Layout = null; |
|||
} |
|||
<abp-dynamic-form abp-model="ViewModel" data-ajaxForm="true" asp-page="EditModal"> |
|||
<abp-modal> |
|||
<abp-modal-header title="@L["EditCoupon"].Value"></abp-modal-header> |
|||
<abp-modal-body> |
|||
<abp-input asp-for="Id" /> |
|||
<abp-form-content /> |
|||
</abp-modal-body> |
|||
<abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer> |
|||
</abp-modal> |
|||
</abp-dynamic-form> |
|||
@ -0,0 +1,39 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using EasyAbp.EShop.Plugins.Coupons.Coupons; |
|||
using EasyAbp.EShop.Plugins.Coupons.Coupons.Dtos; |
|||
using EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon.ViewModels; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon |
|||
{ |
|||
public class EditModalModel : CouponsPageModel |
|||
{ |
|||
[HiddenInput] |
|||
[BindProperty(SupportsGet = true)] |
|||
public Guid Id { get; set; } |
|||
|
|||
[BindProperty] |
|||
public CreateEditCouponViewModel ViewModel { get; set; } |
|||
|
|||
private readonly ICouponAppService _service; |
|||
|
|||
public EditModalModel(ICouponAppService service) |
|||
{ |
|||
_service = service; |
|||
} |
|||
|
|||
public virtual async Task OnGetAsync() |
|||
{ |
|||
var dto = await _service.GetAsync(Id); |
|||
ViewModel = ObjectMapper.Map<CouponDto, CreateEditCouponViewModel>(dto); |
|||
} |
|||
|
|||
public virtual async Task<IActionResult> OnPostAsync() |
|||
{ |
|||
var dto = ObjectMapper.Map<CreateEditCouponViewModel, CreateUpdateCouponDto>(ViewModel); |
|||
await _service.UpdateAsync(Id, dto); |
|||
return NoContent(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,61 @@ |
|||
@page |
|||
@using EasyAbp.EShop.Plugins.Coupons.Permissions |
|||
@using Microsoft.AspNetCore.Authorization |
|||
@using Microsoft.AspNetCore.Mvc.Localization |
|||
@using Volo.Abp.AspNetCore.Mvc.UI.Layout |
|||
@using EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon |
|||
@using EasyAbp.EShop.Plugins.Coupons.Localization |
|||
@using EasyAbp.EShop.Plugins.Coupons.Web.Menus |
|||
@model IndexModel |
|||
@inject IPageLayout PageLayout |
|||
@inject IHtmlLocalizer<CouponsResource> L |
|||
@inject IAuthorizationService Authorization |
|||
@{ |
|||
PageLayout.Content.Title = L["Coupon"].Value; |
|||
PageLayout.Content.BreadCrumb.Add(L["Menu:Coupon"].Value); |
|||
PageLayout.Content.MenuItemName = CouponsMenus.Coupon; |
|||
} |
|||
|
|||
@section scripts |
|||
{ |
|||
<abp-script src="/Pages/EShop/Plugins/Coupons/Coupons/Coupon/index.js" /> |
|||
} |
|||
@section styles |
|||
{ |
|||
<abp-style src="/Pages/EShop/Plugins/Coupons/Coupons/Coupon/index.css"/> |
|||
} |
|||
|
|||
<abp-card> |
|||
<abp-card-header> |
|||
<abp-row> |
|||
<abp-column size-md="_6"> |
|||
<abp-card-title>@L["Coupon"]</abp-card-title> |
|||
</abp-column> |
|||
<abp-column size-md="_6" class="text-right"> |
|||
@if (await Authorization.IsGrantedAsync(CouponsPermissions.Coupon.Create)) |
|||
{ |
|||
<abp-button id="NewCouponButton" |
|||
text="@L["CreateCoupon"].Value" |
|||
icon="plus" |
|||
button-type="Primary" /> |
|||
} |
|||
</abp-column> |
|||
</abp-row> |
|||
</abp-card-header> |
|||
<abp-card-body> |
|||
<abp-table striped-rows="true" id="CouponTable" class="nowrap"> |
|||
<thead> |
|||
<tr> |
|||
<th>@L["Actions"]</th> |
|||
<th>@L["CouponCouponTemplateId"]</th> |
|||
<th>@L["CouponUserId"]</th> |
|||
<th>@L["CouponOrderId"]</th> |
|||
<th>@L["CouponUsableBeginTime"]</th> |
|||
<th>@L["CouponUsableEndTime"]</th> |
|||
<th>@L["CouponUsedTime"]</th> |
|||
<th>@L["CouponDiscountedAmount"]</th> |
|||
</tr> |
|||
</thead> |
|||
</abp-table> |
|||
</abp-card-body> |
|||
</abp-card> |
|||
@ -0,0 +1,12 @@ |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon |
|||
{ |
|||
public class IndexModel : CouponsPageModel |
|||
{ |
|||
public virtual async Task OnGetAsync() |
|||
{ |
|||
await Task.CompletedTask; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
using System; |
|||
|
|||
using System.ComponentModel.DataAnnotations; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Web.Pages.EShop.Plugins.Coupons.Coupons.Coupon.ViewModels |
|||
{ |
|||
public class CreateEditCouponViewModel |
|||
{ |
|||
[Display(Name = "CouponCouponTemplateId")] |
|||
public Guid CouponTemplateId { get; set; } |
|||
|
|||
[Display(Name = "CouponUserId")] |
|||
public Guid UserId { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,69 @@ |
|||
$(function () { |
|||
|
|||
var l = abp.localization.getResource('EasyAbpEShopPlugins'); |
|||
|
|||
var service = easyAbp.eShop.plugins.coupons.coupons.coupon; |
|||
var createModal = new abp.ModalManager(abp.appPath + 'EShop/Plugins/Coupons/Coupons/Coupon/CreateModal'); |
|||
var editModal = new abp.ModalManager(abp.appPath + 'EShop/Plugins/Coupons/Coupons/Coupon/EditModal'); |
|||
|
|||
var dataTable = $('#CouponTable').DataTable(abp.libs.datatables.normalizeConfiguration({ |
|||
processing: true, |
|||
serverSide: true, |
|||
paging: true, |
|||
searching: false, |
|||
autoWidth: false, |
|||
scrollCollapse: true, |
|||
order: [[0, "asc"]], |
|||
ajax: abp.libs.datatables.createAjax(service.getList), |
|||
columnDefs: [ |
|||
{ |
|||
rowAction: { |
|||
items: |
|||
[ |
|||
{ |
|||
text: l('Edit'), |
|||
visible: abp.auth.isGranted('EasyAbp.EShop.Plugins.Coupons.Coupon.Update'), |
|||
action: function (data) { |
|||
editModal.open({ id: data.record.id }); |
|||
} |
|||
}, |
|||
{ |
|||
text: l('Delete'), |
|||
visible: abp.auth.isGranted('EasyAbp.EShop.Plugins.Coupons.Coupon.Delete'), |
|||
confirmMessage: function (data) { |
|||
return l('CouponDeletionConfirmationMessage', data.record.id); |
|||
}, |
|||
action: function (data) { |
|||
service.delete(data.record.id) |
|||
.then(function () { |
|||
abp.notify.info(l('SuccessfullyDeleted')); |
|||
dataTable.ajax.reload(); |
|||
}); |
|||
} |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
{ data: "couponTemplateId" }, |
|||
{ data: "userId" }, |
|||
{ data: "orderId" }, |
|||
{ data: "usableBeginTime" }, |
|||
{ data: "usableEndTime" }, |
|||
{ data: "usedTime" }, |
|||
{ data: "discountedAmount" }, |
|||
] |
|||
})); |
|||
|
|||
createModal.onResult(function () { |
|||
dataTable.ajax.reload(); |
|||
}); |
|||
|
|||
editModal.onResult(function () { |
|||
dataTable.ajax.reload(); |
|||
}); |
|||
|
|||
$('#NewCouponButton').click(function (e) { |
|||
e.preventDefault(); |
|||
createModal.open(); |
|||
}); |
|||
}); |
|||
@ -0,0 +1,28 @@ |
|||
using Shouldly; |
|||
using System.Threading.Tasks; |
|||
using Xunit; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates |
|||
{ |
|||
public class CouponTemplateAppServiceTests : CouponsApplicationTestBase |
|||
{ |
|||
private readonly ICouponTemplateAppService _couponTemplateAppService; |
|||
|
|||
public CouponTemplateAppServiceTests() |
|||
{ |
|||
_couponTemplateAppService = GetRequiredService<ICouponTemplateAppService>(); |
|||
} |
|||
|
|||
/* |
|||
[Fact] |
|||
public async Task Test1() |
|||
{ |
|||
// Arrange
|
|||
|
|||
// Act
|
|||
|
|||
// Assert
|
|||
} |
|||
*/ |
|||
} |
|||
} |
|||
@ -0,0 +1,28 @@ |
|||
using Shouldly; |
|||
using System.Threading.Tasks; |
|||
using Xunit; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons |
|||
{ |
|||
public class CouponAppServiceTests : CouponsApplicationTestBase |
|||
{ |
|||
private readonly ICouponAppService _couponAppService; |
|||
|
|||
public CouponAppServiceTests() |
|||
{ |
|||
_couponAppService = GetRequiredService<ICouponAppService>(); |
|||
} |
|||
|
|||
/* |
|||
[Fact] |
|||
public async Task Test1() |
|||
{ |
|||
// Arrange
|
|||
|
|||
// Act
|
|||
|
|||
// Assert
|
|||
} |
|||
*/ |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
using System.Threading.Tasks; |
|||
using Shouldly; |
|||
using Xunit; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.CouponTemplates |
|||
{ |
|||
public class CouponTemplateDomainTests : CouponsDomainTestBase |
|||
{ |
|||
public CouponTemplateDomainTests() |
|||
{ |
|||
} |
|||
|
|||
/* |
|||
[Fact] |
|||
public async Task Test1() |
|||
{ |
|||
// Arrange
|
|||
|
|||
// Assert
|
|||
|
|||
// Assert
|
|||
} |
|||
*/ |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
using System.Threading.Tasks; |
|||
using Shouldly; |
|||
using Xunit; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.Coupons |
|||
{ |
|||
public class CouponDomainTests : CouponsDomainTestBase |
|||
{ |
|||
public CouponDomainTests() |
|||
{ |
|||
} |
|||
|
|||
/* |
|||
[Fact] |
|||
public async Task Test1() |
|||
{ |
|||
// Arrange
|
|||
|
|||
// Assert
|
|||
|
|||
// Assert
|
|||
} |
|||
*/ |
|||
} |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using EasyAbp.EShop.Plugins.Coupons.CouponTemplates; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Xunit; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.CouponTemplates |
|||
{ |
|||
public class CouponTemplateRepositoryTests : CouponsEntityFrameworkCoreTestBase |
|||
{ |
|||
private readonly ICouponTemplateRepository _couponTemplateRepository; |
|||
|
|||
public CouponTemplateRepositoryTests() |
|||
{ |
|||
_couponTemplateRepository = GetRequiredService<ICouponTemplateRepository>(); |
|||
} |
|||
|
|||
/* |
|||
[Fact] |
|||
public async Task Test1() |
|||
{ |
|||
await WithUnitOfWorkAsync(async () => |
|||
{ |
|||
// Arrange
|
|||
|
|||
// Act
|
|||
|
|||
//Assert
|
|||
}); |
|||
} |
|||
*/ |
|||
} |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using EasyAbp.EShop.Plugins.Coupons.Coupons; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Xunit; |
|||
|
|||
namespace EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Coupons |
|||
{ |
|||
public class CouponRepositoryTests : CouponsEntityFrameworkCoreTestBase |
|||
{ |
|||
private readonly ICouponRepository _couponRepository; |
|||
|
|||
public CouponRepositoryTests() |
|||
{ |
|||
_couponRepository = GetRequiredService<ICouponRepository>(); |
|||
} |
|||
|
|||
/* |
|||
[Fact] |
|||
public async Task Test1() |
|||
{ |
|||
await WithUnitOfWorkAsync(async () => |
|||
{ |
|||
// Arrange
|
|||
|
|||
// Act
|
|||
|
|||
//Assert
|
|||
}); |
|||
} |
|||
*/ |
|||
} |
|||
} |
|||
File diff suppressed because it is too large
@ -0,0 +1,117 @@ |
|||
using System; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
|
|||
namespace EShopSample.Migrations |
|||
{ |
|||
public partial class AddedCouponsModule : Migration |
|||
{ |
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.CreateTable( |
|||
name: "EasyAbpEShopPluginsCouponsCoupons", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(nullable: false), |
|||
ExtraProperties = table.Column<string>(nullable: true), |
|||
ConcurrencyStamp = table.Column<string>(maxLength: 40, nullable: true), |
|||
CreationTime = table.Column<DateTime>(nullable: false), |
|||
CreatorId = table.Column<Guid>(nullable: true), |
|||
LastModificationTime = table.Column<DateTime>(nullable: true), |
|||
LastModifierId = table.Column<Guid>(nullable: true), |
|||
IsDeleted = table.Column<bool>(nullable: false, defaultValue: false), |
|||
DeleterId = table.Column<Guid>(nullable: true), |
|||
DeletionTime = table.Column<DateTime>(nullable: true), |
|||
TenantId = table.Column<Guid>(nullable: true), |
|||
CouponTemplateId = table.Column<Guid>(nullable: false), |
|||
UserId = table.Column<Guid>(nullable: false), |
|||
OrderId = table.Column<Guid>(nullable: true), |
|||
UsableBeginTime = table.Column<DateTime>(nullable: true), |
|||
UsableEndTime = table.Column<DateTime>(nullable: true), |
|||
UsedTime = table.Column<DateTime>(nullable: true), |
|||
DiscountedAmount = table.Column<decimal>(nullable: true) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_EasyAbpEShopPluginsCouponsCoupons", x => x.Id); |
|||
}); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "EasyAbpEShopPluginsCouponsCouponTemplates", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(nullable: false), |
|||
ExtraProperties = table.Column<string>(nullable: true), |
|||
ConcurrencyStamp = table.Column<string>(maxLength: 40, nullable: true), |
|||
CreationTime = table.Column<DateTime>(nullable: false), |
|||
CreatorId = table.Column<Guid>(nullable: true), |
|||
LastModificationTime = table.Column<DateTime>(nullable: true), |
|||
LastModifierId = table.Column<Guid>(nullable: true), |
|||
IsDeleted = table.Column<bool>(nullable: false, defaultValue: false), |
|||
DeleterId = table.Column<Guid>(nullable: true), |
|||
DeletionTime = table.Column<DateTime>(nullable: true), |
|||
TenantId = table.Column<Guid>(nullable: true), |
|||
StoreId = table.Column<Guid>(nullable: true), |
|||
CouponType = table.Column<int>(nullable: false), |
|||
UniqueName = table.Column<string>(nullable: true), |
|||
DisplayName = table.Column<string>(nullable: true), |
|||
Description = table.Column<string>(nullable: true), |
|||
UsableDuration = table.Column<TimeSpan>(nullable: true), |
|||
UsableBeginTime = table.Column<DateTime>(nullable: true), |
|||
UsableEndTime = table.Column<DateTime>(nullable: true), |
|||
ConditionAmount = table.Column<decimal>(nullable: false), |
|||
DiscountAmount = table.Column<decimal>(nullable: false), |
|||
IsCrossProductAllowed = table.Column<bool>(nullable: false), |
|||
IsUnscoped = table.Column<bool>(nullable: false) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_EasyAbpEShopPluginsCouponsCouponTemplates", x => x.Id); |
|||
}); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "CouponTemplateScope", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(nullable: false), |
|||
CreationTime = table.Column<DateTime>(nullable: false), |
|||
CreatorId = table.Column<Guid>(nullable: true), |
|||
LastModificationTime = table.Column<DateTime>(nullable: true), |
|||
LastModifierId = table.Column<Guid>(nullable: true), |
|||
IsDeleted = table.Column<bool>(nullable: false), |
|||
DeleterId = table.Column<Guid>(nullable: true), |
|||
DeletionTime = table.Column<DateTime>(nullable: true), |
|||
StoreId = table.Column<Guid>(nullable: false), |
|||
ProductId = table.Column<Guid>(nullable: true), |
|||
ProductSkuId = table.Column<Guid>(nullable: true), |
|||
CouponTemplateId = table.Column<Guid>(nullable: true) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_CouponTemplateScope", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_CouponTemplateScope_EasyAbpEShopPluginsCouponsCouponTemplates_CouponTemplateId", |
|||
column: x => x.CouponTemplateId, |
|||
principalTable: "EasyAbpEShopPluginsCouponsCouponTemplates", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Restrict); |
|||
}); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_CouponTemplateScope_CouponTemplateId", |
|||
table: "CouponTemplateScope", |
|||
column: "CouponTemplateId"); |
|||
} |
|||
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropTable( |
|||
name: "CouponTemplateScope"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "EasyAbpEShopPluginsCouponsCoupons"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "EasyAbpEShopPluginsCouponsCouponTemplates"); |
|||
} |
|||
} |
|||
} |
|||
File diff suppressed because it is too large
@ -0,0 +1,63 @@ |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
|
|||
namespace EShopSample.Migrations |
|||
{ |
|||
public partial class ConfiguredColumnTypeForCouponEntities : Migration |
|||
{ |
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.AlterColumn<decimal>( |
|||
name: "DiscountAmount", |
|||
table: "EasyAbpEShopPluginsCouponsCouponTemplates", |
|||
type: "decimal(20,8)", |
|||
nullable: false, |
|||
oldClrType: typeof(decimal), |
|||
oldType: "decimal(18,2)"); |
|||
|
|||
migrationBuilder.AlterColumn<decimal>( |
|||
name: "ConditionAmount", |
|||
table: "EasyAbpEShopPluginsCouponsCouponTemplates", |
|||
type: "decimal(20,8)", |
|||
nullable: false, |
|||
oldClrType: typeof(decimal), |
|||
oldType: "decimal(18,2)"); |
|||
|
|||
migrationBuilder.AlterColumn<decimal>( |
|||
name: "DiscountedAmount", |
|||
table: "EasyAbpEShopPluginsCouponsCoupons", |
|||
type: "decimal(20,8)", |
|||
nullable: true, |
|||
oldClrType: typeof(decimal), |
|||
oldType: "decimal(18,2)", |
|||
oldNullable: true); |
|||
} |
|||
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.AlterColumn<decimal>( |
|||
name: "DiscountAmount", |
|||
table: "EasyAbpEShopPluginsCouponsCouponTemplates", |
|||
type: "decimal(18,2)", |
|||
nullable: false, |
|||
oldClrType: typeof(decimal), |
|||
oldType: "decimal(20,8)"); |
|||
|
|||
migrationBuilder.AlterColumn<decimal>( |
|||
name: "ConditionAmount", |
|||
table: "EasyAbpEShopPluginsCouponsCouponTemplates", |
|||
type: "decimal(18,2)", |
|||
nullable: false, |
|||
oldClrType: typeof(decimal), |
|||
oldType: "decimal(20,8)"); |
|||
|
|||
migrationBuilder.AlterColumn<decimal>( |
|||
name: "DiscountedAmount", |
|||
table: "EasyAbpEShopPluginsCouponsCoupons", |
|||
type: "decimal(18,2)", |
|||
nullable: true, |
|||
oldClrType: typeof(decimal), |
|||
oldType: "decimal(20,8)", |
|||
oldNullable: true); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue