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

潍坊建站公司上海财务外包公司

潍坊建站公司,上海财务外包公司,网站做301需要备案吗,网站编排一、计算逻辑的类结构图 在这张图里#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/14577383/

相关文章:

  • 中国建设银行网站的社保板块在哪企业建设网站怎么做账
  • 中小型网站建设价格网站 刷流量
  • 那个网站是专门做渔具的广州品牌网站建设公司
  • .net 网站模板下载地址官方手表网站
  • 虚拟空间的网站赚钱吗武威建设局网站
  • 辽宁省住房和城乡建设厅网站换了如何建设一免费的网站
  • 网站建设模板双人运营管理
  • 四川省住房与城乡建设厅官方网站重庆在线课程
  • 有没有代做课程设计的网站全网网络营销推广火热招商中
  • 动易网站模版的制作求一个网站
  • 做电影网站资源怎么珠海编程培训机构
  • 做网站入什么会计科目wordpress 增加阅读量
  • 互联网公司怎么找网站建设客户seo成功案例分析
  • 平安车险官方保险网站做音乐网站没有版权
  • 长沙做网站的价格可以做qq空间背景音乐的网站
  • xml网站地图生成建立自己的购物网站
  • 长沙竞价网站建设价格怎样给网站做一张背景
  • 建站工具有什么用wordpress文章怎么备份
  • 对单位网站建设的建议百度快照和广告的区别
  • 江门网站建设方案策划外贸流程中的单证有哪些
  • 关于电商网站建设的论文设计和建设企业网站心得和体会
  • 网站创建app高埗仿做网站
  • php网站留言佛山vi设计
  • 怎么创建网站论坛手工艺品外贸公司网站建设方案
  • 建设工程平台网站百度指数的网址是什么
  • 德州市建设工程质量监督站网站wordpress 评论次数
  • 建水网站建设学做衣服网站
  • 南京建设网站首页做网站多少费用
  • 辅助网站怎么做温州网站建设公司哪个好
  • 建设股票网站廊坊网站建设冀icp备