我需要拒绝折扣,但我也希望只适用于某些产品的折扣金额。
例如:我的购物车是A,B,我有10%的订单折扣。我不想B产品打折,但我只想打折A,我的方法是这样
if cart.discount_code&.percentage
discount = cart.discount_code.percentage / 100.0
discount = 1.0 - discount.to_s.to_f # there's probably a better way to do this... but :)
cart.line_items.each do |line_item|
这是我在一次面试中被问到的,我得到的反馈是我缺乏OOD技能。所以我想知道我建议的设计有什么问题。
问题陈述:设计一个帮助计算购物车中项目的TotalCost的系统。您将得到购物车中的商品列表和折扣,如下例所示。清单将包括物品或折扣,顺序重要:
样品车:10美元书籍xyz,10%折扣所有项目,20美元固定,20%折扣下一项,100美元衬衫,15美元在第5种类型的书。
类型折扣:对所有项目的折扣为10%,下一项的折扣为20%,下一项的折扣为15美元,第5种类型的折扣可在系统中稍后添加更多类型的折扣。
我给出的解决方案:
这是我制作的类图:
这里是TotalCost()算法:
public d
目前我有三张桌子
name 用户id
active 折扣id
discount_user discount_id,user_id,start,end
我需要找到当前用户的所有活动折扣,目前正在运行基于start和end日期持有的枢轴表。
我希望能够在折扣表上构建一个scopeActive方法,以缩小当前用户的活动折扣,但我只希望在来自user表查找折扣的情况下添加日期范围:
$discounts = User::find(1)->discounts()->active()->get(); // within date range
$active = Discoun