假设我们的任务是实现一个API,以检查折扣计数是否可以应用于订单。Order域对象包含篮中的项以及客户id:
class Order(
val items: List<Item>,
val customerId: CustomerId
)
我们还有一个域对象DiscountCode,表示要使用的折扣计数。
有几个验证规则可以检查给定的折扣计数是否可以应用于给定的订单:
discounted?Has 折扣是否过期?是否有不能使用的商品?该折扣代码已被其他人使用?(客户是否允许使用此折扣代码?)
对于规则1-3,我们可以说它们显然是业务逻辑,根据DDD,它们属于Disc
代码:
function totalIt() {
var input = document.getElementsByName("product");
var total = 0;
for (var i = 0; i < input.length; i++) {
if (input[i].checked) {
total += parseFloat(input[i].value);
}
}
document.getElementsByName("total")[0].value = "₹" +
我有以下表格:
discount table:
id
name
description
amount
discount_exception
id
from_date
to_date
discount_id (foreign key to discount table)
折扣例外表用于存储折扣对用户不可用的日期范围,因此不应显示折扣。请注意,discount和discount_exception之间存在1:M的关系。换句话说,一个折扣可以有很多例外。
现在,我编写SQL的方法是获取所有折扣,然后在数组中循环它们,并查询discount_exception表,以确定每个折扣是否在特定的日期范围内