refactor: 虚拟订单增加取消判定,解决订单退款,待审核订单状态不变的问题。

This commit is contained in:
Chopper711 2023-09-25 10:54:47 +08:00
parent 39e22f5561
commit 46911004db
2 changed files with 26 additions and 14 deletions

View File

@ -64,7 +64,8 @@ public class AllowOperation implements Serializable {
}
//新订单
if (CharSequenceUtil.equalsAny(status, OrderStatusEnum.UNPAID.name(), OrderStatusEnum.PAID.name(), OrderStatusEnum.UNDELIVERED.name(), OrderStatusEnum.STAY_PICKED_UP.name())) {
if (CharSequenceUtil.equalsAny(status, OrderStatusEnum.UNPAID.name(), OrderStatusEnum.PAID.name(), OrderStatusEnum.UNDELIVERED.name(),
OrderStatusEnum.STAY_PICKED_UP.name(), OrderStatusEnum.TAKE.name())) {
this.cancel = true;
}
//新订单允许支付
@ -86,7 +87,8 @@ public class AllowOperation implements Serializable {
this.showLogistics = order.getDeliverStatus().equals(DeliverStatusEnum.DELIVERED.name()) && status.equals(OrderStatusEnum.DELIVERED.name());
//虚拟订单 自提订单可以核销
this.take = (order.getOrderType().equals(OrderTypeEnum.VIRTUAL.name()) && order.getOrderStatus().equals(OrderStatusEnum.TAKE.name())) || (order.getDeliveryMethod().equals(DeliveryMethodEnum.SELF_PICK_UP.name()) && order.getOrderStatus().equals(OrderStatusEnum.STAY_PICKED_UP.name()));
this.take =
(order.getOrderType().equals(OrderTypeEnum.VIRTUAL.name()) && order.getOrderStatus().equals(OrderStatusEnum.TAKE.name())) || (order.getDeliveryMethod().equals(DeliveryMethodEnum.SELF_PICK_UP.name()) && order.getOrderStatus().equals(OrderStatusEnum.STAY_PICKED_UP.name()));
}
/**
@ -104,8 +106,10 @@ public class AllowOperation implements Serializable {
this.editPrice = true;
}
//新订单
if (CharSequenceUtil.equalsAny(status, OrderStatusEnum.UNPAID.name(), OrderStatusEnum.PAID.name(), OrderStatusEnum.UNDELIVERED.name())) {
//取消判定
if (CharSequenceUtil.equalsAny(status, OrderStatusEnum.UNPAID.name(), OrderStatusEnum.PAID.name(), OrderStatusEnum.UNDELIVERED.name(),
OrderStatusEnum.STAY_PICKED_UP.name(),
OrderStatusEnum.TAKE.name())) {
this.cancel = true;
}

View File

@ -171,7 +171,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
orders.add(order);
String message = "订单[" + item.getSn() + "]创建";
//记录日志
orderLogs.add(new OrderLog(item.getSn(), UserContext.getCurrentUser().getId(), UserContext.getCurrentUser().getRole().getRole(), UserContext.getCurrentUser().getUsername(), message));
orderLogs.add(new OrderLog(item.getSn(), UserContext.getCurrentUser().getId(), UserContext.getCurrentUser().getRole().getRole(),
UserContext.getCurrentUser().getUsername(), message));
item.getCheckedSkuList().forEach(
sku -> {
orderItems.add(new OrderItem(sku, item, tradeDTO));
@ -260,7 +261,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Order::getOrderPromotionType, PromotionTypeEnum.PINTUAN.name());
queryWrapper.eq(Order::getPromotionId, pintuanId);
queryWrapper.nested(i -> i.eq(Order::getPayStatus, PayStatusEnum.PAID.name()).or(j -> j.eq(Order::getOrderStatus, OrderStatusEnum.PAID.name())));
queryWrapper.nested(i -> i.eq(Order::getPayStatus, PayStatusEnum.PAID.name()).or(j -> j.eq(Order::getOrderStatus,
OrderStatusEnum.PAID.name())));
return this.list(queryWrapper);
}
@ -299,7 +301,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
OrderStatusEnum.UNDELIVERED.name(),
OrderStatusEnum.UNPAID.name(),
OrderStatusEnum.STAY_PICKED_UP.name(),
OrderStatusEnum.PAID.name())) {
OrderStatusEnum.PAID.name(),
OrderStatusEnum.TAKE.name())) {
order.setOrderStatus(OrderStatusEnum.CANCELLED.name());
order.setCancelReason(reason);
@ -409,7 +412,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
BeanUtil.copyProperties(memberAddressDTO, order);
this.updateById(order);
OrderLog orderLog = new OrderLog(orderSn, UserContext.getCurrentUser().getId(), UserContext.getCurrentUser().getRole().getRole(), UserContext.getCurrentUser().getUsername(), message);
OrderLog orderLog = new OrderLog(orderSn, UserContext.getCurrentUser().getId(), UserContext.getCurrentUser().getRole().getRole(),
UserContext.getCurrentUser().getUsername(), message);
orderLogService.save(orderLog);
return order;
@ -456,8 +460,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
public Order shunFengDelivery(String orderSn) {
OrderDetailVO orderDetailVO = this.queryDetail(orderSn);
String logisticsNo = logisticsService.sfCreateOrder(orderDetailVO);
Logistics logistics = logisticsService.getOne(new LambdaQueryWrapper<Logistics>().eq(Logistics::getCode,"SF"));
return delivery(orderSn,logisticsNo,logistics.getId());
Logistics logistics = logisticsService.getOne(new LambdaQueryWrapper<Logistics>().eq(Logistics::getCode, "SF"));
return delivery(orderSn, logisticsNo, logistics.getId());
}
@Override
@ -474,7 +478,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
Order order = this.getBySn(orderSn);
//获取店家信息
StoreDeliverGoodsAddressDTO storeDeliverGoodsAddressDTO = storeDetailService.getStoreDeliverGoodsAddressDto(order.getStoreId());
String from = storeDeliverGoodsAddressDTO.getSalesConsignorAddressPath().substring(0, storeDeliverGoodsAddressDTO.getSalesConsignorAddressPath().indexOf(",") - 1);
String from = storeDeliverGoodsAddressDTO.getSalesConsignorAddressPath().substring(0,
storeDeliverGoodsAddressDTO.getSalesConsignorAddressPath().indexOf(",") - 1);
String to = order.getConsigneeAddressPath().substring(0, order.getConsigneeAddressPath().indexOf(",") - 1);
//获取踪迹信息
return logisticsService.getLogisticMapTrack(order.getLogisticsCode(), order.getLogisticsNo(), order.getConsigneeMobile(), from, to);
@ -582,7 +587,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
@Override
@Transactional(rollbackFor = Exception.class)
public void sendUpdateStatusMessage(OrderMessage orderMessage) {
applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("发送订单变更mq消息", rocketmqCustomProperties.getOrderTopic(), OrderTagsEnum.STATUS_CHANGE.name(), JSONUtil.toJsonStr(orderMessage)));
applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("发送订单变更mq消息", rocketmqCustomProperties.getOrderTopic(),
OrderTagsEnum.STATUS_CHANGE.name(), JSONUtil.toJsonStr(orderMessage)));
}
@Override
@ -769,7 +775,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
this.systemCancel(entry.getKey(), reason);
} else {
for (Order order : entry.getValue()) {
if (!CharSequenceUtil.equalsAny(order.getOrderStatus(), OrderStatusEnum.COMPLETED.name(), OrderStatusEnum.DELIVERED.name(), OrderStatusEnum.TAKE.name(), OrderStatusEnum.STAY_PICKED_UP.name())) {
if (!CharSequenceUtil.equalsAny(order.getOrderStatus(), OrderStatusEnum.COMPLETED.name(), OrderStatusEnum.DELIVERED.name(),
OrderStatusEnum.TAKE.name(), OrderStatusEnum.STAY_PICKED_UP.name())) {
this.systemCancel(order.getSn(), reason);
}
}
@ -816,7 +823,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
paidOrders.add(order);
}
for (Order paidOrder : paidOrders) {
if (!CharSequenceUtil.equalsAny(paidOrder.getOrderStatus(), OrderStatusEnum.COMPLETED.name(), OrderStatusEnum.DELIVERED.name(), OrderStatusEnum.TAKE.name(), OrderStatusEnum.STAY_PICKED_UP.name())) {
if (!CharSequenceUtil.equalsAny(paidOrder.getOrderStatus(), OrderStatusEnum.COMPLETED.name(), OrderStatusEnum.DELIVERED.name(),
OrderStatusEnum.TAKE.name(), OrderStatusEnum.STAY_PICKED_UP.name())) {
if (OrderTypeEnum.NORMAL.name().equals(paidOrder.getOrderType())) {
paidOrder.setOrderStatus(OrderStatusEnum.UNDELIVERED.name());
} else if (OrderTypeEnum.VIRTUAL.name().equals(paidOrder.getOrderType())) {