diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java index 4d8b1aac..e44921a7 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderDetail.java @@ -2,6 +2,9 @@ package com.ghy.order.domain; import com.ghy.common.annotation.Excel; import com.ghy.common.core.domain.BaseEntity; +import com.ghy.common.enums.OrderStatus; +import com.ghy.common.enums.PayStatus; +import com.ghy.common.enums.PayTypeEnum; import com.ghy.goods.domain.Goods; import com.ghy.worker.domain.Worker; import lombok.Data; @@ -46,6 +49,9 @@ public class OrderDetail extends BaseEntity { @Excel(name = "订单类型", cellType = Excel.ColumnType.NUMERIC) private Integer orderType; + /** + * @see OrderStatus + */ @Excel(name = "订单状态", cellType = Excel.ColumnType.NUMERIC) private Integer orderStatus; @@ -118,9 +124,15 @@ public class OrderDetail extends BaseEntity { */ private Date arrivalTime; + /** + * @see PayTypeEnum + */ @Excel(name = "付款类型", cellType = Excel.ColumnType.NUMERIC) private Integer payType; + /** + * @see PayStatus + */ @Excel(name = "付款状态", cellType = Excel.ColumnType.NUMERIC) private Integer payStatus; diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java index 2ba7a1a3..6c313280 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java @@ -3,6 +3,9 @@ package com.ghy.order.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ghy.common.annotation.Excel; import com.ghy.common.core.domain.BaseEntity; +import com.ghy.common.enums.OrderStatus; +import com.ghy.common.enums.PayStatus; +import com.ghy.common.enums.PayTypeEnum; import com.ghy.payment.domain.FinancialMaster; import com.ghy.worker.domain.Worker; import lombok.Data; @@ -39,12 +42,21 @@ public class OrderMaster extends BaseEntity { @Excel(name = "订单类型", cellType = Excel.ColumnType.NUMERIC) private Integer orderType; + /** + * @see OrderStatus + */ @Excel(name = "订单状态", cellType = Excel.ColumnType.NUMERIC) private Integer orderStatus; + /** + * @see PayTypeEnum + */ @Excel(name = "付款类型", cellType = Excel.ColumnType.NUMERIC) private Integer payType; + /** + * @see PayStatus + */ @Excel(name = "付款状态", cellType = Excel.ColumnType.NUMERIC) private Integer payStatus; diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 35f74814..c52f7b21 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -260,29 +260,32 @@ public class OrderDetailServiceImpl implements OrderDetailService { public void cancel(long orderDetailId) throws BaseAdaPayException { OrderDetail orderDetail = selectById(orderDetailId); Assert.notNull(orderDetail, "找不到对应的子订单"); - + if (OrderStatus.CANCEL.code() == orderDetail.getOrderStatus()) { + logger.info("子订单[id={}]已经是取消状态了", orderDetailId); + return; + } + // 更新子订单状态 + orderDetailMapper.updateStatus(orderDetailId, OrderStatus.CANCEL.code()); // 查询出所有的子订单 就走主订单取消流程 List orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId()); + // 发起退款 + refund(orderDetail); + // 如果除了这个子订单以外 没有其它未取消的订单 boolean allCancel = true; for (OrderDetail od : orderDetails) { - if (!od.getId().equals(orderDetailId)) { - if (!od.getOrderStatus().equals(OrderStatus.CANCEL.code())) { - allCancel = false; - } + if (!od.getOrderStatus().equals(OrderStatus.CANCEL.code())) { + allCancel = false; + break; } } // 判断主单是否全部派单 boolean allAssign = orderMasterService.isAllAssign(orderDetail.getOrderMasterId()); - // 如果主单已经全部派单 并且 其它订单都已经取消 + // 如果主单已经全部派单 并且 所有单都已经取消 if (allAssign && allCancel) { logger.info("主订单[id={}]下所有的子订单都被取消 直接进入主订单取消流程", orderDetail.getOrderMasterId()); orderMasterService.cancelAgree(orderDetail.getOrderMasterId(), 1); - return; } - orderDetailMapper.updateStatus(orderDetailId, OrderStatus.CANCEL.code()); - // 发起退款 - refund(orderDetail); } /** diff --git a/ghy-payment/src/main/resources/mapper/financial/FinancialDetailMapper.xml b/ghy-payment/src/main/resources/mapper/financial/FinancialDetailMapper.xml index 05c2b4b2..b31322ed 100644 --- a/ghy-payment/src/main/resources/mapper/financial/FinancialDetailMapper.xml +++ b/ghy-payment/src/main/resources/mapper/financial/FinancialDetailMapper.xml @@ -127,6 +127,7 @@ pay_time = #{payTime}, pay_money = #{payMoney}, update_by = #{updateBy}, + reverse_id = #{reverseId}, update_time = SYSDATE() WHERE id = #{id}