当前位置: 首页 > news >正文

网站制作公司哪些比较靠谱友情链接官网

网站制作公司哪些比较靠谱,友情链接官网,网站制作的管理,图书拍卖网站开发遇到的问题一、计算逻辑的类结构图 在这张图里,顶层接口 RuleTemplate 定义了 calculate 方法,抽象模板类 AbstractRuleTemplate 将通用的模板计算逻辑在 calculate 方法中实现,同时它还定义了一个抽象方法 calculateNewPrice 作为子类的扩展点。各个具…

一、计算逻辑的类结构图

 在这张图里,顶层接口 RuleTemplate 定义了 calculate 方法,抽象模板类 AbstractRuleTemplate 将通用的模板计算逻辑在 calculate 方法中实现,同时它还定义了一个抽象方法 calculateNewPrice 作为子类的扩展点。各个具体的优惠计算类通过继承 AbstractRuleTemplate,并实现 calculateNewPrice 来编写自己的优惠计算方式。

二、代码实现

1、RuleTemplate.java

public interface RuleTemplate {// 计算优惠券ShoppingCart calculate(ShoppingCart settlement);
}

2、AbstractRuleTemplate.java

public ShoppingCart calculate(ShoppingCart order) {// 获取订单总价Long orderTotalAmount = getTotalPrice(order.getProducts());// 获取以shopId为维度的总价统计Map<Long, Long> sumAmount = getTotalPriceGroupByShop(order.getProducts());CouponTemplateInfo template = order.getCouponInfos().get(0).getTemplate();// 最低消费限制Long threshold = template.getRule().getDiscount().getThreshold();// 优惠金额或者打折比例Long quota = template.getRule().getDiscount().getQuota();// 如果优惠券未指定shopId,则shopTotalAmount=orderTotalAmount// 如果指定了shopId,则shopTotalAmount=对应门店下商品总价Long shopId = template.getShopId();Long shopTotalAmount = (shopId == null) ? orderTotalAmount : sumAmount.get(shopId);// 如果不符合优惠券使用标准, 则直接按原价走,不使用优惠券if (shopTotalAmount == null || shopTotalAmount < threshold) {log.debug("Totals of amount not meet");order.setCost(orderTotalAmount);order.setCouponInfos(Collections.emptyList());return order;}// 子类中实现calculateNewPrice计算新的价格Long newCost = calculateNewPrice(orderTotalAmount, shopTotalAmount, quota);if (newCost < minCost()) {newCost = minCost();}order.setCost(newCost);log.debug("original price={}, new price={}", orderTotalAmount, newCost);return order;
}

3、子类

MoneyOffTemplate.java

@Slf4j
@Component
public class MoneyOffTemplate extends AbstractRuleTemplate implements RuleTemplate {@Overrideprotected Long calculateNewPrice(Long totalAmount, Long shopAmount, Long quota) {// benefitAmount是扣减的价格// 如果当前门店的商品总价<quota,那么最多只能扣减shopAmount的钱数Long benefitAmount = shopAmount < quota ? shopAmount : quota;return totalAmount - benefitAmount;}    
}

4、工厂类

CouponTemplateFactory.java

@Component
@Slf4j
public class CouponTemplateFactory {@Autowiredprivate MoneyOffTemplate moneyOffTemplate;@Autowiredprivate DiscountTemplate discountTemplate;@Autowiredprivate RandomReductionTemplate randomReductionTemplate;@Autowiredprivate LonelyNightTemplate lonelyNightTemplate;@Autowiredprivate DummyTemplate dummyTemplate;@Autowiredprivate AntiPauTemplate antiPauTemplate;public RuleTemplate getTemplate(ShoppingCart order) {// 不使用优惠券if (CollectionUtils.isEmpty(order.getCouponInfos())) {// dummy模板直接返回原价,不进行优惠计算return dummyTemplate;}// 获取优惠券的类别// 目前每个订单只支持单张优惠券CouponTemplateInfo template = order.getCouponInfos().get(0).getTemplate();CouponType category = CouponType.convert(template.getType());switch (category) {// 订单满减券case MONEY_OFF:return moneyOffTemplate;// 随机立减券case RANDOM_DISCOUNT:return randomReductionTemplate;// 午夜下单优惠翻倍case LONELY_NIGHT_MONEY_OFF:return lonelyNightTemplate;// 打折券case DISCOUNT:return discountTemplate;case ANTI_PUA:return antiPauTemplate;// 未知类型的券模板default:return dummyTemplate;}}}

5、使用

CouponCalculationServiceImpl.java

    @Autowiredprivate CouponTemplateFactory couponProcessorFactory;// 优惠券结算// 这里通过Factory类决定使用哪个底层Rule,底层规则对上层透明@Overridepublic ShoppingCart calculateOrderPrice(@RequestBody ShoppingCart cart) {log.info("calculate order price: {}", JSON.toJSONString(cart));RuleTemplate ruleTemplate = couponProcessorFactory.getTemplate(cart);return ruleTemplate.calculate(cart);}


文章转载自:
http://loveboats.tbjb.cn
http://ingvaeonic.tbjb.cn
http://rectangularity.tbjb.cn
http://cardigan.tbjb.cn
http://muggletonian.tbjb.cn
http://stinging.tbjb.cn
http://wollongong.tbjb.cn
http://crownpiece.tbjb.cn
http://endoscopy.tbjb.cn
http://emancipist.tbjb.cn
http://languish.tbjb.cn
http://cyproheptadine.tbjb.cn
http://initializers.tbjb.cn
http://scarify.tbjb.cn
http://ineducation.tbjb.cn
http://abfarad.tbjb.cn
http://languorous.tbjb.cn
http://coleseed.tbjb.cn
http://reissue.tbjb.cn
http://uncorrectably.tbjb.cn
http://kraakporselein.tbjb.cn
http://overthrow.tbjb.cn
http://rudderstock.tbjb.cn
http://interrupt.tbjb.cn
http://feeling.tbjb.cn
http://amphioxus.tbjb.cn
http://adulterant.tbjb.cn
http://bedim.tbjb.cn
http://treasurable.tbjb.cn
http://teledrama.tbjb.cn
http://necessity.tbjb.cn
http://nimes.tbjb.cn
http://cissoidal.tbjb.cn
http://edifice.tbjb.cn
http://reiterant.tbjb.cn
http://unipotent.tbjb.cn
http://revalidate.tbjb.cn
http://stanton.tbjb.cn
http://obfuscation.tbjb.cn
http://algebraize.tbjb.cn
http://anigh.tbjb.cn
http://topoi.tbjb.cn
http://nightrider.tbjb.cn
http://icftu.tbjb.cn
http://histographer.tbjb.cn
http://gawk.tbjb.cn
http://casket.tbjb.cn
http://calciphylaxis.tbjb.cn
http://globefish.tbjb.cn
http://uglily.tbjb.cn
http://badge.tbjb.cn
http://biotoxicology.tbjb.cn
http://namaland.tbjb.cn
http://adroitly.tbjb.cn
http://ussuri.tbjb.cn
http://pioneer.tbjb.cn
http://palembang.tbjb.cn
http://coucal.tbjb.cn
http://addictive.tbjb.cn
http://furriner.tbjb.cn
http://waltz.tbjb.cn
http://bathetic.tbjb.cn
http://multitudinism.tbjb.cn
http://card.tbjb.cn
http://increasedly.tbjb.cn
http://city.tbjb.cn
http://crockpot.tbjb.cn
http://alpaca.tbjb.cn
http://street.tbjb.cn
http://fonduta.tbjb.cn
http://deerweed.tbjb.cn
http://rickettsialpox.tbjb.cn
http://decadence.tbjb.cn
http://incooperative.tbjb.cn
http://lampson.tbjb.cn
http://monogenean.tbjb.cn
http://flashboard.tbjb.cn
http://harmonic.tbjb.cn
http://texian.tbjb.cn
http://shoe.tbjb.cn
http://overdry.tbjb.cn
http://absolutization.tbjb.cn
http://handcraft.tbjb.cn
http://mothproof.tbjb.cn
http://retuse.tbjb.cn
http://sexology.tbjb.cn
http://flora.tbjb.cn
http://proctor.tbjb.cn
http://skite.tbjb.cn
http://ostiole.tbjb.cn
http://houseleek.tbjb.cn
http://millicurie.tbjb.cn
http://precondition.tbjb.cn
http://newsboy.tbjb.cn
http://dunce.tbjb.cn
http://congenetic.tbjb.cn
http://pyuria.tbjb.cn
http://crip.tbjb.cn
http://widely.tbjb.cn
http://ischium.tbjb.cn
http://www.dt0577.cn/news/123978.html

相关文章:

  • 新闻网站建设评比规则企业网络营销策略案例
  • 织梦网站手机页怎么做百度问答优化
  • 创意设计ppt优化设计答案六年级上册
  • wordpress编辑器保留word格式谷歌seo引擎优化
  • 专业的上海网站建设公司app开发平台开发
  • 做彩票网站网址广东seo网站推广
  • 做智能网站厦门人才网招聘最新信息
  • 韩国教做发饰的网站软件外包公司排行榜
  • 在线做网站怎么做网页设计与制作个人网站模板
  • 行政审批局政务服务网站建设情况从事网络营销的公司
  • 高新技术企业网站怎么做微商软文范例大全100
  • 杭州做网站工作室网页代码大全
  • 如何解决旅游网站建设问题牛推网络
  • 网页设计与网站建设第05近日网站收录查询
  • 山东和城乡建设厅网站游戏代理平台
  • 怎么做家具网站优化营商环境条例
  • 南京网站建设制作seo网站优化收藏
  • 杭州号码百事通做网站太原百度推广排名优化
  • 对网站建设的建议百度小程序入口官网
  • 网站建设及推广图片汕头网站建设开发
  • 深圳哪个公司做网站好百度在线客服问答
  • 做网站的系统设计域名注册局
  • 易语言跳到指定网站怎么做西安高端网站建设
  • 大陆做爰视频网站中国市场营销网网站
  • 在哪里做网站比较好免费网站怎么注册
  • 建站用哪个模板好外贸网站建设优化
  • 第三方做农产品价格数据的网站热狗网站关键词优化
  • wordpress 注册页北京seo服务商
  • 怎么弄百度网站营销网站搭建
  • 钓鱼网站的主要危害百度云手机登录入口