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

贵阳建站公司手机英文网站大全

贵阳建站公司,手机英文网站大全,济源网站建设费用,wordpress培训一、计算逻辑的类结构图 在这张图里#xff0c;顶层接口 RuleTemplate 定义了 calculate 方法#xff0c;抽象模板类 AbstractRuleTemplate 将通用的模板计算逻辑在 calculate 方法中实现#xff0c;同时它还定义了一个抽象方法 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为维度的总价统计MapLong, 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则shopTotalAmountorderTotalAmount// 如果指定了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://www.hkea.cn/news/14461513/

相关文章:

  • 成都网站建设_创新互联手表二级市场网站
  • 如何对网站做优化昆明中国建设银行网站
  • 龙游建设工程信息网站wordpress加密版权
  • 重庆网络推广网站php网站建设课程作业
  • 广东移动手机营业厅网站网站建设需要金额
  • 高职院校优质校建设专栏网站互联网保险排名
  • 郑州做网站公司yookerseo教程免费分享
  • 阿坝州建设局网站刘志彬给网站划分栏目
  • 贸易公司网站设计html做网站自适应宽度
  • 长春企业做网站百度有做企业网站吗
  • 如何做最强的社交网站重庆网站如何做推广
  • 德宏企业网站建设公司6如何做网站迁移
  • 手机网站模板下载免费程序外包平台
  • 建设部网站执业资格wordpress profile
  • 网站开发工具微软wordpress电影源码
  • 上海手机网站建设报价网上租服务器价格表
  • 建筑公司网站关键词有哪些铜陵县住房和城乡建设局网站
  • 基于jsp的社团组织网站建设wordpress静态
  • 网站建设是学哪个学科上海服装网站建设
  • 惠州公司做网站wordpress 内容居中
  • 小软件下载网站外贸流程思维导图
  • 怎么做自己的淘客网站阿毛免费模板网
  • 做自媒体网站开发优秀的软文
  • 宁海哪里有做网站的如何让网站给百度收录
  • 青岛做视频的网站湛江专业网站建设怎么做
  • 莱芜市网站建设公司代理网址上境外网
  • 网站的模板管理怎么用ps做网站首页图片尺寸
  • 如何做招聘网站分析凡科网做网站好吗
  • 做爰全过程免费的视频99网站产品网站系统
  • 小说网站开发环境那个号上海牛巨微seo优化