我正在开发一种系统,使商店能够为客户创造奖励。
类似:
客户应该能够跟踪每个可获得的奖励的进度-他们将上传购买收据。以上奖励的示例:
用户1
用户2
我正在将Java 11与Spring Framework和PostgreSQL一起使用。以下实体是该域模型的一部分:
class Receipt {
private Company issuedBy;
private Customer registeredBy;
private List<ReceiptItem> items;
private Instant issueDate;
private Status status; // PENDING_APPROVAL | DUPLICATED | RESEND_ATTACHMENT | APPROVED
...
}
class ReceiptItem {
private Product product;
private MonetaryAmount price; // javax.money
private Quantity amount;
...
}
class Product {
private Company manufacturer;
private String gtin; // Bar code nr
private String name;
...
}
class Quantity {
private final BigDecimal amount;
private final Metric metric;
...
}
public enum Metric {
KILOGRAM("kg"),
GRAM("g"),
LITER("l"),
UNIT("");
private final String abbreviation;
...
}
我很难尝试构想如何实现奖励。我想到了使用Specification Pattern为每个奖励建立资格标准的模型。因此,在Receipt
批准后,我会仔细检查所有奖励,以查看是否有任何资格使用此Receipt
,然后增加当前用户的进度,直到满足完成条件为止,但是比我想象的要困难得多,而且我不确定自己是否走对了。我一生中从未实现过这样的事情,我完全迷失了。因此,非常感谢您的帮助。
谢谢!