我使用的是Fluent NHibernate和NHibernate.Core 3 beta 1。我有两个类:
public class Promotion
{
public Promotion()
{
PromotionEntrants = new List<PromotionEntrant>();
}
public virtual int Id { get; set; }
[Required]
public virtual string Name { get; set; }
...
我正在开发销售推广系统,我刚刚踩到了一些可能可以用状态机模式处理的东西,但我还没有使用状态机的经验。也许状态机在这种情况下完全没有用:)所以我有一个促销活动,它有一些持续时间,一些指定的客户,产品,折扣等。每个促销活动也有它的状态。大概有5个州。状态之间的转换是严格定义的-不可能直接将状态1更改为状态3-用户必须首先将状态更改为2。有一些限制,比如“当促销处于3-5状态时,不可能添加更多的产品”。或者像“只有超级用户才能编辑处于3-5状态的促销费用”这样的限制。
我刚刚读到了,但我不确定对于这个案例来说它是否太复杂了。我可以在我的服务层中使用如下内容来处理状态逻辑:
if (promotion
我有两个Django模型,一个存储促销代码,另一个跟踪兑换特定促销代码的人。我正在尝试创建一个实例方法,用于确定特定用户是否已兑换特定代码。问题是我没有看到我的一个PromotionManager方法,'redeemed_by_user‘。以下是我的类:
from django.contrib.auth.models import User
from django.db import models
class PromotionManager(models.Manager):
def redeemed_by_user(self, promotion, user):
我试图将一些商业案例映射到循环壁垒的使用上。假设我们有一个促销优惠正在进行,只有3个客户可以得到促销优惠。其余的人都不会得到这个提议。
为了映射这个场景,我使用了循环屏障。即使代码工作正常,我也不知道如何处理一些客户无法获得报价的场景。现在,我尝试使用具有超时值的await() API,这样我就可以捕获TimeoutException并让客户知道他无法利用促销服务。这导致了另一个等待线程的BarrierBrokenException。
我想知道,我们如何优雅地处理这些场景,以便选定的客户可以利用促销优惠,而那些谁不能遵循不同的代码路径。
我的密码-
public class CyclicBar