merge master
This commit is contained in:
commit
118efe0833
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -42,8 +42,8 @@ public class VerificationOrderExecute implements OrderStatusChangeEvent {
|
||||
.eq(Order::getSn, orderMessage.getOrderSn()));
|
||||
//修改虚拟订单货物可以进行售后、投诉
|
||||
orderItemService.update(new LambdaUpdateWrapper<OrderItem>().eq(OrderItem::getOrderSn, orderMessage.getOrderSn())
|
||||
.set(OrderItem::getAfterSaleStatus, OrderItemAfterSaleStatusEnum.NOT_APPLIED)
|
||||
.set(OrderItem::getCommentStatus, OrderComplaintStatusEnum.NO_APPLY));
|
||||
.set(OrderItem::getAfterSaleStatus, OrderItemAfterSaleStatusEnum.ALREADY_APPLIED)
|
||||
.set(OrderItem::getCommentStatus, OrderComplaintStatusEnum.COMPLETE));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -201,9 +201,13 @@ public class DistributionOrderServiceImpl extends ServiceImpl<DistributionOrderM
|
||||
if (distributionOrder == null) {
|
||||
return;
|
||||
}
|
||||
if (distributionOrder.getSellBackRebate() == null) {
|
||||
distributionOrder.setSellBackRebate(refundStoreFlow.getDistributionRebate());
|
||||
} else {
|
||||
distributionOrder.setSellBackRebate(CurrencyUtil.add(distributionOrder.getSellBackRebate(), refundStoreFlow.getDistributionRebate()));
|
||||
}
|
||||
|
||||
distributionOrder.setSellBackRebate(CurrencyUtil.add(distributionOrder.getSellBackRebate(), refundStoreFlow.getDistributionRebate()));
|
||||
distributionOrder.setRebate(CurrencyUtil.sub(distributionOrder.getSellBackRebate(), refundStoreFlow.getDistributionRebate()));
|
||||
distributionOrder.setRebate(CurrencyUtil.sub(distributionOrder.getRebate(), refundStoreFlow.getDistributionRebate()));
|
||||
if (distributionOrder.getRebate() == 0) {
|
||||
distributionOrder.setDistributionOrderStatus(DistributionOrderStatusEnum.REFUND.name());
|
||||
}
|
||||
|
@ -32,8 +32,9 @@ public interface OrderService extends IService<Order> {
|
||||
*
|
||||
* @param orderSn 订单编号
|
||||
* @param reason 错误原因
|
||||
* @param refundMoney 是否退款
|
||||
*/
|
||||
void systemCancel(String orderSn, String reason);
|
||||
void systemCancel(String orderSn, String reason,Boolean refundMoney);
|
||||
|
||||
/**
|
||||
* 根据sn查询
|
||||
|
@ -321,14 +321,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
@Override
|
||||
@OrderLogPoint(description = "'订单['+#orderSn+']系统取消,原因为:'+#reason", orderSn = "#orderSn")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void systemCancel(String orderSn, String reason) {
|
||||
public void systemCancel(String orderSn, String reason,Boolean refundMoney) {
|
||||
Order order = this.getBySn(orderSn);
|
||||
order.setOrderStatus(OrderStatusEnum.CANCELLED.name());
|
||||
order.setCancelReason(reason);
|
||||
this.updateById(order);
|
||||
//生成店铺退款流水
|
||||
this.generatorStoreRefundFlow(order);
|
||||
orderStatusMessage(order);
|
||||
if(refundMoney){
|
||||
//生成店铺退款流水
|
||||
this.generatorStoreRefundFlow(order);
|
||||
orderStatusMessage(order);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -772,12 +774,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
//如果未开启虚拟成团且已参团人数小于成团人数,则自动取消订单
|
||||
String reason = "拼团活动结束订单未付款,系统自动取消订单";
|
||||
if (CharSequenceUtil.isNotEmpty(entry.getKey())) {
|
||||
this.systemCancel(entry.getKey(), reason);
|
||||
this.systemCancel(entry.getKey(), reason,true);
|
||||
} 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())) {
|
||||
this.systemCancel(order.getSn(), reason);
|
||||
this.systemCancel(order.getSn(), reason,true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -802,7 +804,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
//未付款订单自动取消
|
||||
if (unpaidOrders != null && !unpaidOrders.isEmpty()) {
|
||||
for (Order unpaidOrder : unpaidOrders) {
|
||||
this.systemCancel(unpaidOrder.getSn(), "拼团活动结束订单未付款,系统自动取消订单");
|
||||
this.systemCancel(unpaidOrder.getSn(), "拼团活动结束订单未付款,系统自动取消订单",false);
|
||||
}
|
||||
}
|
||||
List<Order> paidOrders = listMap.get(PayStatusEnum.PAID.name());
|
||||
@ -963,7 +965,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
private void pintuanOrderFailed(List<Order> list) {
|
||||
for (Order order : list) {
|
||||
try {
|
||||
this.systemCancel(order.getSn(), "拼团人数不足,拼团失败!");
|
||||
this.systemCancel(order.getSn(), "拼团人数不足,拼团失败!",true);
|
||||
} catch (Exception e) {
|
||||
log.error("拼团订单取消失败", e);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user