|
|
|
@ -79,16 +79,16 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper, VipOrder> i |
|
|
|
//构建订单
|
|
|
|
VipOrder vipOrder = buildVipOrder(addVipOrderDto); |
|
|
|
vipOrderMapper.insert(vipOrder); |
|
|
|
String orderId = vipOrder.getOrderId(); |
|
|
|
String orderNo = vipOrder.getOrderNo(); |
|
|
|
//发送消息,如果三十分钟后没有支付,则取消订单
|
|
|
|
SendStatus sendStatus = orderCancelMqTemplate.syncSend(RocketMqConstant.VIP_ORDER_CANCEL_TOPIC, new GenericMessage<>(orderId), RocketMqConstant.TIMEOUT, RocketMqConstant.CANCEL_ORDER_DELAY_LEVEL).getSendStatus(); |
|
|
|
SendStatus sendStatus = orderCancelMqTemplate.syncSend(RocketMqConstant.VIP_ORDER_CANCEL_TOPIC, new GenericMessage<>(orderNo), RocketMqConstant.TIMEOUT, RocketMqConstant.CANCEL_ORDER_DELAY_LEVEL).getSendStatus(); |
|
|
|
if (!Objects.equals(sendStatus,SendStatus.SEND_OK)) { |
|
|
|
// 消息发不出去就抛异常,发的出去无所谓
|
|
|
|
throw new ServiceException(ResponseEnum.SERVER_ERROR); |
|
|
|
}else { |
|
|
|
log.info("消息发送成功,topic:{}",RocketMqConstant.VIP_ORDER_CANCEL_TOPIC); |
|
|
|
} |
|
|
|
return orderId; |
|
|
|
return orderNo; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ -151,7 +151,7 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper, VipOrder> i |
|
|
|
//开通的天数
|
|
|
|
vipOrder.setDays((int) DateUtil.betweenDay(vipOrder.getStartTime(), vipOrder.getEndTime(), true)); |
|
|
|
vipOrder.setUserClientType(addVipOrderDto.getUserClientType()); |
|
|
|
vipOrder.setOrderId(OrderUtil.getOrderId("RV",nowDate, EnumUserClientType.getCodeByType(addVipOrderDto.getUserClientType()),String.valueOf(userId))); |
|
|
|
vipOrder.setOrderNo(OrderUtil.getOrderNo("RV",nowDate, EnumUserClientType.getCodeByType(addVipOrderDto.getUserClientType()),String.valueOf(userId))); |
|
|
|
vipOrder.setCreateTime(nowDate); |
|
|
|
return vipOrder; |
|
|
|
} |
|
|
|
@ -159,22 +159,22 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper, VipOrder> i |
|
|
|
|
|
|
|
/** |
|
|
|
* 取消订单 |
|
|
|
* @param orderIds 订单id |
|
|
|
* @param orderNos 订单id |
|
|
|
* @param closeType 订单关闭原因类型 |
|
|
|
*/ |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
@Override |
|
|
|
public void cancelVipOrder(List<String> orderIds,Integer closeType) { |
|
|
|
List<VipOrder> vipOrderList = vipOrderMapper.selectList(new LambdaQueryWrapper<VipOrder>().in(VipOrder::getOrderId, orderIds)); |
|
|
|
public void cancelVipOrder(List<String> orderNos,Integer closeType) { |
|
|
|
List<VipOrder> vipOrderList = vipOrderMapper.selectList(new LambdaQueryWrapper<VipOrder>().in(VipOrder::getOrderNo, orderNos)); |
|
|
|
if (CollUtil.isEmpty(vipOrderList)){ |
|
|
|
return; |
|
|
|
} |
|
|
|
List<String> cancelOrderIds = vipOrderList.stream().filter(vipOrder -> Objects.nonNull(vipOrder.getOrderStatus()) && EnumVipOrderStatus.FAILS.getStatus() |
|
|
|
!= vipOrder.getOrderStatus()).map(VipOrder::getOrderId).collect(Collectors.toList()); |
|
|
|
if (CollUtil.isEmpty(cancelOrderIds)){ |
|
|
|
List<String> cancelOrderNos = vipOrderList.stream().filter(vipOrder -> Objects.nonNull(vipOrder.getOrderStatus()) && EnumVipOrderStatus.FAILS.getStatus() |
|
|
|
!= vipOrder.getOrderStatus()).map(VipOrder::getOrderNo).collect(Collectors.toList()); |
|
|
|
if (CollUtil.isEmpty(cancelOrderNos)){ |
|
|
|
return; |
|
|
|
} |
|
|
|
vipOrderMapper.cancelVipOrder(cancelOrderIds,closeType); |
|
|
|
vipOrderMapper.cancelVipOrder(cancelOrderNos,closeType); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|