From 47c42db720e7ace479f743209faf432154699af1 Mon Sep 17 00:00:00 2001 From: Chopper Date: Fri, 25 Jun 2021 10:48:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=EF=BC=8C?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=8F=82=E6=95=B0=E7=9B=B8=E5=85=B3=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/cart/render/TradeBuilder.java | 9 ------ .../cart/render/impl/SkuFreightRender.java | 2 +- .../order/serviceimpl/TradeServiceImpl.java | 31 +++++++++++++++++++ 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/TradeBuilder.java b/framework/src/main/java/cn/lili/modules/order/cart/render/TradeBuilder.java index 2f75e40d..9a69a2a7 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/TradeBuilder.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/TradeBuilder.java @@ -1,7 +1,5 @@ package cn.lili.modules.order.cart.render; -import cn.lili.common.enums.ResultCode; -import cn.lili.common.exception.ServiceException; import cn.lili.modules.order.cart.entity.dto.TradeDTO; import cn.lili.modules.order.cart.entity.enums.CartTypeEnum; import cn.lili.modules.order.cart.entity.vo.CartSkuVO; @@ -101,13 +99,6 @@ public class TradeBuilder { } } - if (tradeDTO.getNotSupportFreight() != null && tradeDTO.getNotSupportFreight().size() > 0) { - StringBuilder stringBuilder = new StringBuilder("包含商品有-"); - tradeDTO.getNotSupportFreight().forEach(sku -> { - stringBuilder.append(sku.getGoodsSku().getGoodsName()); - }); - throw new ServiceException(ResultCode.ORDER_NOT_SUPPORT_DISTRIBUTION, stringBuilder.toString()); - } //购物车信息接受 List cartVOList = new ArrayList<>(); diff --git a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuFreightRender.java b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuFreightRender.java index 776f797b..5f71e10f 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuFreightRender.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/render/impl/SkuFreightRender.java @@ -40,7 +40,7 @@ public class SkuFreightRender implements CartRenderStep { MemberAddress memberAddress = tradeDTO.getMemberAddress(); //如果收货地址为空,则抛出异常 if (memberAddress == null) { - throw new ServiceException(ResultCode.MEMBER_ADDRESS_NOT_EXIST); + return; } //循环渲染购物车商品运费价格 forSku: diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/TradeServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/TradeServiceImpl.java index b4e49d35..ed5d50b3 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/TradeServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/TradeServiceImpl.java @@ -8,6 +8,7 @@ import cn.lili.common.rocketmq.RocketmqSendCallbackBuilder; import cn.lili.common.rocketmq.tags.MqOrderTagsEnum; import cn.lili.config.rocketmq.RocketmqCustomProperties; import cn.lili.modules.member.entity.dos.Member; +import cn.lili.modules.member.entity.dos.MemberAddress; import cn.lili.modules.member.service.MemberService; import cn.lili.modules.order.cart.entity.dto.MemberCouponDTO; import cn.lili.modules.order.cart.entity.dto.TradeDTO; @@ -68,6 +69,11 @@ public class TradeServiceImpl extends ServiceImpl implements @Override @Transactional(rollbackFor = Exception.class) public Trade createTrade(TradeDTO tradeDTO) { + + //创建订单预校验 + createTradeCheck(tradeDTO); + + Trade trade = new Trade(tradeDTO); String key = CachePrefix.TRADE.getPrefix() + trade.getSn(); //积分预处理 @@ -87,6 +93,31 @@ public class TradeServiceImpl extends ServiceImpl implements return trade; } + /** + * 创建订单最后一步校验 + * + * @param tradeDTO + */ + private void createTradeCheck(TradeDTO tradeDTO) { + + //创建订单如果没有收获地址, + MemberAddress memberAddress = tradeDTO.getMemberAddress(); + if (memberAddress == null) { + throw new ServiceException(ResultCode.MEMBER_ADDRESS_NOT_EXIST); + } + + /** + * 订单配送区域校验 + */ + if (tradeDTO.getNotSupportFreight() != null && tradeDTO.getNotSupportFreight().size() > 0) { + StringBuilder stringBuilder = new StringBuilder("包含商品有-"); + tradeDTO.getNotSupportFreight().forEach(sku -> { + stringBuilder.append(sku.getGoodsSku().getGoodsName()); + }); + throw new ServiceException(ResultCode.ORDER_NOT_SUPPORT_DISTRIBUTION, stringBuilder.toString()); + } + } + @Override public Trade getBySn(String sn) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();