创建订单,校验参数相关流程调整

This commit is contained in:
Chopper 2021-06-25 10:48:21 +08:00
parent ac68acda50
commit 47c42db720
3 changed files with 32 additions and 10 deletions

View File

@ -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<CartVO> cartVOList = new ArrayList<>();

View File

@ -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:

View File

@ -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<TradeMapper, Trade> 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<TradeMapper, Trade> 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<Trade> queryWrapper = new LambdaQueryWrapper<>();