Browse Source

bug处理,去掉缓存

feature-1.1
wuxicheng 3 years ago
parent
commit
d2b2b5f49e
  1. 34
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java

34
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java

@ -121,26 +121,20 @@ public class VipOrderServiceImpl implements VipOrderService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String addVipOrder(AddVipOrderDto addVipOrderDto) { public String addVipOrder(AddVipOrderDto addVipOrderDto) {
VipOrder vipOrder = getCacheVipOrder(addVipOrderDto); //构建订单
String orderNo; VipOrder vipOrder = buildVipOrder(addVipOrderDto);
if (ObjectUtil.isNull(vipOrder)){ vipOrderMapper.insert(vipOrder);
//构建订单 //缓存订单,有效期30分钟,防止用户一直创建重复的订单
vipOrder = buildVipOrder(addVipOrderDto); //cacheOrder(vipOrder);
vipOrderMapper.insert(vipOrder); String orderNo = vipOrder.getOrderNo();
//缓存订单,有效期30分钟,防止用户一直创建重复的订单 //发送消息,如果三十分钟后没有支付,则取消订单
cacheOrder(vipOrder); VipOrderCancelMessage vipOrderCancelMessage = new VipOrderCancelMessage();
orderNo = vipOrder.getOrderNo(); vipOrderCancelMessage.setOrderNo(orderNo);
//发送消息,如果三十分钟后没有支付,则取消订单 //延时消息不走消息表,因为延时消息最少支持秒级延时,定时任务不可能对消息表进行秒级扫描,那样性能损耗太大了
VipOrderCancelMessage vipOrderCancelMessage = new VipOrderCancelMessage(); //所以确保消息一定发送成功,走同步发送,如果发送失败直接抛异常,确保本地事物回滚
vipOrderCancelMessage.setOrderNo(orderNo); SendStatus sendStatus = rocketMQEnhanceTemplate.send(RocketMqTopic.ORDER_CANCEL_TOPIC, RocketMqTag.ORDER_VIP_TAG, vipOrderCancelMessage, RocketMqConstant.THIRTY_MINUTES).getSendStatus();
//延时消息不走消息表,因为延时消息最少支持秒级延时,定时任务不可能对消息表进行秒级扫描,那样性能损耗太大了 if (SendStatus.SEND_OK != sendStatus){
//所以确保消息一定发送成功,走同步发送,如果发送失败直接抛异常,确保本地事物回滚 throw new ServiceException("下单失败,请重试");
SendStatus sendStatus = rocketMQEnhanceTemplate.send(RocketMqTopic.ORDER_CANCEL_TOPIC, RocketMqTag.ORDER_VIP_TAG, vipOrderCancelMessage, RocketMqConstant.THIRTY_MINUTES).getSendStatus();
if (SendStatus.SEND_OK != sendStatus){
throw new ServiceException("下单失败,请重试");
}
}else {
orderNo = vipOrder.getOrderNo();
} }
return orderNo; return orderNo;
} }

Loading…
Cancel
Save