获取订单货物售后数量调整,以防止申请售后未审核依然取消订单

This commit is contained in:
chc
2025-09-23 18:06:40 +08:00
parent f2cb6b56ea
commit 28cc0617c3

View File

@@ -4,6 +4,8 @@ import cn.lili.common.utils.CurrencyUtil;
import cn.lili.event.AfterSaleStatusChangeEvent; import cn.lili.event.AfterSaleStatusChangeEvent;
import cn.lili.event.TradeEvent; import cn.lili.event.TradeEvent;
import cn.lili.modules.order.aftersale.entity.dos.AfterSale; import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.modules.order.aftersale.entity.vo.AfterSaleSearchParams;
import cn.lili.modules.order.aftersale.service.AfterSaleService;
import cn.lili.modules.order.cart.entity.dto.TradeDTO; import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.entity.dos.Order; import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dos.OrderItem; import cn.lili.modules.order.order.entity.dos.OrderItem;
@@ -34,6 +36,8 @@ public class OrderStatusHandlerExecute implements TradeEvent, AfterSaleStatusCha
private OrderItemService orderItemService; private OrderItemService orderItemService;
@Autowired @Autowired
private OrderService orderService; private OrderService orderService;
@Autowired
private AfterSaleService afterSaleService;
@Override @Override
public void orderCreate(TradeDTO tradeDTO) { public void orderCreate(TradeDTO tradeDTO) {
@@ -64,10 +68,16 @@ public class OrderStatusHandlerExecute implements TradeEvent, AfterSaleStatusCha
int returnCount = 0; int returnCount = 0;
// 总购买数量 // 总购买数量
int deliverCount = 0; int deliverCount = 0;
for (OrderItem item : orderItems) { //获取订单货物已完成售后的数量
returnCount += item.getReturnGoodsNumber(); AfterSaleSearchParams saleSearchParams = new AfterSaleSearchParams();
deliverCount += item.getNum(); saleSearchParams.setOrderSn(afterSale.getOrderSn());
saleSearchParams.setServiceStatus(AfterSaleStatusEnum.COMPLETE.name());
List<AfterSale> afterSales = afterSaleService.exportAfterSaleOrder(saleSearchParams);
for (AfterSale sale : afterSales) {
returnCount += sale.getNum();
} }
//订单货物购买总数
deliverCount = order.getGoodsNum();
if (returnCount == deliverCount) { if (returnCount == deliverCount) {
orderService.systemCancel(afterSale.getOrderSn(),"订单货物全部退款",false); orderService.systemCancel(afterSale.getOrderSn(),"订单货物全部退款",false);
} }