1.判断分销订单是否包含退款

2.订单货物全部退款则订单取消
This commit is contained in:
pikachu1995@126.com
2023-09-22 17:25:46 +08:00
parent 39e22f5561
commit b87190d135
7 changed files with 54 additions and 15 deletions

View File

@@ -104,7 +104,7 @@ public class FullDiscountExecute implements TradeEvent, OrderStatusChangeEvent {
searchParams.setOrderPromotionType(OrderPromotionTypeEnum.GIFT.name());
List<Order> orders = orderService.queryListByParams(searchParams);
if (orders != null && !orders.isEmpty()) {
orderService.systemCancel(orders.get(0).getSn(),"主订单取消,赠送订单字段自动取消");
orderService.systemCancel(orders.get(0).getSn(),"主订单取消,赠送订单字段自动取消",true);
}
}
}

View File

@@ -1,12 +1,20 @@
package cn.lili.event.impl;
import cn.lili.event.AfterSaleStatusChangeEvent;
import cn.lili.event.TradeEvent;
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.entity.dos.OrderItem;
import cn.lili.modules.order.order.service.OrderItemService;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.order.order.service.TradeService;
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
import cn.lili.modules.payment.entity.enums.PaymentMethodEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 订单状态处理类
*
@@ -14,11 +22,15 @@ import org.springframework.stereotype.Service;
* @since 2020-07-03 11:20
**/
@Service
public class OrderStatusHandlerExecute implements TradeEvent {
public class OrderStatusHandlerExecute implements TradeEvent, AfterSaleStatusChangeEvent {
@Autowired
private TradeService tradeService;
@Autowired
private OrderItemService orderItemService;
@Autowired
private OrderService orderService;
@Override
public void orderCreate(TradeDTO tradeDTO) {
@@ -28,4 +40,24 @@ public class OrderStatusHandlerExecute implements TradeEvent {
}
}
@Override
public void afterSaleStatusChange(AfterSale afterSale) {
if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.COMPLETE.name())) {
//循环订单货物,判断是否已经全部售后
List<OrderItem> orderItems = orderItemService.getByOrderSn(afterSale.getOrderSn());
// 总退货数量
int returnCount = 0;
// 总购买数量
int deliverCount = 0;
for (OrderItem orderItem : orderItems) {
returnCount += orderItem.getReturnGoodsNumber();
deliverCount += orderItem.getNum();
}
if (returnCount == deliverCount) {
orderService.systemCancel(afterSale.getOrderSn(),"订单货物全部退款",false);
}
}
}
}

View File

@@ -222,7 +222,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent {
* @param orderSn 失败入库订单信息
*/
private void errorOrder(String orderSn) {
orderService.systemCancel(orderSn, outOfStockMessage);
orderService.systemCancel(orderSn, outOfStockMessage,true);
}

View File

@@ -54,7 +54,7 @@ public class CancelOrderTaskExecute implements EveryMinuteExecute {
List<Order> list = orderService.list(queryWrapper);
List<String> cancelSnList = list.stream().map(Order::getSn).collect(Collectors.toList());
for (String sn : cancelSnList) {
orderService.systemCancel(sn, "超时未支付自动取消");
orderService.systemCancel(sn, "超时未支付自动取消",false);
}
}
}