diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 71bb0d83..f8d5113b 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -1734,6 +1734,7 @@ public class OrderController extends BaseController { orderListResponse.setExpectTimeEndFront(master.getExpectTimeEnd()); orderListResponse.setOrderStatus(master.getOrderStatus()); orderListResponse.setPayStatus(master.getPayStatus()); + orderListResponse.setRefundPayStatus(master.getRefundPayStatus()); orderListResponse.setPayType(master.getPayType()); orderListResponse.setOrderMasterCode(master.getCode()); orderListResponse.setStandardList(standardList); @@ -1899,6 +1900,7 @@ public class OrderController extends BaseController { } orderListResponse.setShowAfterServiceRecord(showAfterServiceRecord); // 编辑返回属性 + orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus()); orderListResponse.setGoodsBrand(orderMaster.getGoodsBrand()); orderListResponse.setGoodsSpecification(orderMaster.getGoodsSpecification()); orderListResponse.setOrderDetailId(detail.getId()); @@ -2151,6 +2153,7 @@ public class OrderController extends BaseController { // 编辑返回属性 + orderListResponse.setRefundPayStatus(master.getRefundPayStatus()); orderListResponse.setServiceCancelled(master.getServiceCancelled()); orderListResponse.setAfterPlatformServiceStatus(master.getAfterServiceStatus()); orderListResponse.setShowInMonitor(master.getShowInMonitor()); @@ -2407,6 +2410,7 @@ public class OrderController extends BaseController { // 编辑返回属性 + orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus()); orderListResponse.setAfterPlatformServiceStatus(detail.getAfterServiceStatus()); orderListResponse.setWorkerRemark(detail.getWorkerRemark()); orderListResponse.setGoods(goods); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index eb1e7f9b..f07d0264 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -587,6 +587,7 @@ public class OrderDetailController extends BaseController { orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone()); orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus()); + orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); orderListResponse.setStandardList(standardList); orderListResponse.setAddress(StringUtils.isNotEmpty(orderMaster.getAddress()) ? orderMaster.getAddress() : completeAddress); @@ -879,6 +880,7 @@ public class OrderDetailController extends BaseController { orderListResponse.setServiceShopId(serviceShop != null ? serviceShop.getShopId() : null); // 编辑返回属性 + orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus()); orderListResponse.setAfterPlatformServiceStatus(detail.getAfterServiceStatus()); orderListResponse.setShareAccountCountdownEndTime(detail.getShareAccountCountdownEndTime()); orderListResponse.setShareAccountCountdownDuration(detail.getShareAccountCountdownDuration()); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index e3fbe633..9b3e399b 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -1021,7 +1021,7 @@ public class OrderMasterController extends BaseController { } List list = orderMasterService.selectOrderMasterList(orderMaster); Long count=orderMasterService.selectOrderMasterCount(orderMaster); - logger.info("初始 list数量:{},总数{}", list.size(),count); + // 处理orderType为0的情况,额外查询原师傅ID相关的订单并添加到list中 OrderMaster origiOrderMaster = new OrderMaster(); @@ -1085,7 +1085,7 @@ public class OrderMasterController extends BaseController { List goodsList = goodsService.selectByIds(goodsIds); goodsList.forEach(goods -> goodsMap.put(goods.getGoodsId(), goods)); } - logger.info("list:数量{}", list.size()); + list.forEach(master -> { // 子单 List detailList = orderDetailService.selectByOrderMasterId(master.getId()); @@ -1280,6 +1280,7 @@ public class OrderMasterController extends BaseController { orderListResponse.setExpectTimeEndFront(master.getExpectTimeEnd()); orderListResponse.setOrderStatus(master.getOrderStatus()); orderListResponse.setPayStatus(financialMaster.getPayStatus()); + orderListResponse.setRefundPayStatus(master.getRefundPayStatus()); orderListResponse.setPayType(master.getPayType()); orderListResponse.setOrderMasterCode(master.getCode()); orderListResponse.setStandardList(standardList); @@ -1720,8 +1721,10 @@ public class OrderMasterController extends BaseController { OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); if (orderMaster != null) { orderMaster.setAfterServiceStatus(2); + // 设置退款支付状态为已支付(因为执行了退款逻辑) + orderMaster.setRefundPayStatus(1); orderMasterService.updateOrderMaster(orderMaster); - logger.info("已将主单[{}]售后状态设置为已完成", orderMaster.getId()); + logger.info("已将主单[{}]售后状态设置为已完成,退款支付状态设置为已支付", orderMaster.getId()); } } @@ -2073,6 +2076,7 @@ public class OrderMasterController extends BaseController { : customerAddress.getPhone()); orderListResponse.setOrderStatus(orderMaster.getOrderStatus()); orderListResponse.setPayStatus(goodsPayStatus!=null?goodsPayStatus:orderMaster.getPayStatus()); + orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); orderListResponse.setStandardList(standardList); orderListResponse.setAddress(completeAddress); @@ -2712,6 +2716,13 @@ public class OrderMasterController extends BaseController { // 检查支付状态,只有已支付的订单才需要退款 if (financialMaster.getPayStatus() == null || financialMaster.getPayStatus() != 1) { logger.info("商品主单未支付,无需退款,goodsOrderMasterId={}, payStatus={}", goodsOrderMasterId, financialMaster.getPayStatus()); + // 设置退款支付状态为未支付 + OrderMaster orderMaster = orderMasterService.selectById(goodsOrderMasterId); + if (orderMaster != null) { + orderMaster.setRefundPayStatus(0); + orderMasterService.updateOrderMaster(orderMaster); + logger.info("商品主单无需退款,设置退款支付状态为未支付,goodsOrderMasterId={}", goodsOrderMasterId); + } return AjaxResult.success("商品主单退单成功,无需退款(未支付)"); } @@ -2747,6 +2758,14 @@ public class OrderMasterController extends BaseController { financialDetailService.updateFinancialDetail(detail); } + // 设置退款支付状态为已支付 + OrderMaster orderMaster = orderMasterService.selectById(goodsOrderMasterId); + if (orderMaster != null) { + orderMaster.setRefundPayStatus(1); + orderMasterService.updateOrderMaster(orderMaster); + logger.info("退款成功,设置退款支付状态为已支付,goodsOrderMasterId={}", goodsOrderMasterId); + } + logger.info("退款成功,reverseId={}, goodsOrderMasterId={}", reverseId, goodsOrderMasterId); return AjaxResult.success("商品主单退单退款成功,退款ID:" + reverseId); } else { diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java index cf65d319..6a28d694 100644 --- a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListResponse.java @@ -91,6 +91,11 @@ public class OrderListResponse { private Integer payStatus; + /** + * 退款支付状态:0=未支付,1=已支付 + */ + private Integer refundPayStatus; + private Integer payType; private BigDecimal totalMoney; 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 af433df2..538012e7 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 @@ -373,4 +373,10 @@ public class OrderMaster extends BaseEntity { * 是否排除商品订单标识(用于Service层过滤逻辑) */ private Boolean excludeGoodsOrder; + + /** + * 退款时是否已支付:0=未支付,1=已支付 + */ + @Excel(name = "退款时是否已支付", cellType = Excel.ColumnType.NUMERIC, readConverterExp = "0=未支付,1=已支付") + private Integer refundPayStatus; } diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java index e32f3b11..fcd6b26d 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java @@ -929,6 +929,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService // 是否已付款,用于判断是否需要退款 boolean payReverse = PayStatus.PAID.getCode().equals(financialMaster.getPayStatus()); log.info("当前订单是否已支付: {}", payReverse); + + // 设置退款时支付状态:已支付=1,未支付=0 + if (payReverse) { + orderMaster.setRefundPayStatus(1); + } else { + orderMaster.setRefundPayStatus(0); + } + orderMasterService.updateOrderMaster(orderMaster); // 申请退款金额 BigDecimal refundMoney=BigDecimal.ZERO; if (ObjectUtils.isNotEmpty(afterServiceRecord.getPlatformRefund())) { @@ -1106,6 +1114,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService log.warn("子单[{}]已发起分账,不能自动退款", afterServiceRecord.getOrderDetailId()); afterServiceRecord.setOriginalRefund(BigDecimal.ZERO); afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord); + + // 设置主单退款支付状态为未支付(因为无需退款) + OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); + if (orderMaster != null) { + orderMaster.setRefundPayStatus(0); + orderMasterService.updateOrderMaster(orderMaster); + log.info("子单已分账无法退款,设置主单退款支付状态为未支付,orderMasterId={}", orderMaster.getId()); + } return; } @@ -1117,6 +1133,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService if (afterServiceRecord.getWorkerReceiveConfirm() == null || afterServiceRecord.getWorkerReceiveConfirm() != 1) { log.info("商品售后非即时退款,师傅未确认收货,暂不执行退款,售后记录ID:{},同意方式:{},收货确认:{}", afterServiceRecord.getId(), afterServiceRecord.getWorkerAgreeType(), afterServiceRecord.getWorkerReceiveConfirm()); + + // 设置主单退款支付状态为未支付(因为暂不执行退款) + OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); + if (orderMaster != null) { + orderMaster.setRefundPayStatus(0); + orderMasterService.updateOrderMaster(orderMaster); + log.info("商品售后师傅未确认收货暂不执行退款,设置主单退款支付状态为未支付,orderMasterId={}", orderMaster.getId()); + } return; } } else if (afterServiceRecord.getWorkerAgreeType() != null && afterServiceRecord.getWorkerAgreeType() == 1) { @@ -1124,6 +1148,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService if (afterServiceRecord.getCustomerFinalCheck() == null || afterServiceRecord.getCustomerFinalCheck() != 1) { log.info("商品售后即时退款,客户未同意,暂不执行退款,售后记录ID:{},客户确认:{}", afterServiceRecord.getId(), afterServiceRecord.getCustomerFinalCheck()); + + // 设置主单退款支付状态为未支付(因为暂不执行退款) + OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); + if (orderMaster != null) { + orderMaster.setRefundPayStatus(0); + orderMasterService.updateOrderMaster(orderMaster); + log.info("商品售后客户未同意暂不执行退款,设置主单退款支付状态为未支付,orderMasterId={}", orderMaster.getId()); + } return; } } diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index e7674873..1347bac0 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -75,6 +75,7 @@ + @@ -147,7 +148,8 @@ share_account_countdown_end_time, share_account_countdown_duration, show_in_monitor, - service_cancelled + service_cancelled, + refund_pay_status FROM order_master @@ -219,7 +221,8 @@ om.share_account_countdown_end_time, om.share_account_countdown_duration, om.show_in_monitor, - om.service_cancelled + om.service_cancelled, + om.refund_pay_status FROM order_master om LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id LEFT JOIN goods g ON g.goods_id = om.goods_id @@ -581,6 +584,7 @@ share_account_countdown_end_time = #{shareAccountCountdownEndTime}, share_account_countdown_duration = #{shareAccountCountdownDuration}, service_cancelled = #{serviceCancelled}, + refund_pay_status = #{refundPayStatus}, update_time = SYSDATE() WHERE id = #{id} @@ -655,6 +659,7 @@ worker_remark, share_account_countdown_end_time, share_account_countdown_duration, + refund_pay_status, service_cancelled, create_time, update_time @@ -712,6 +717,7 @@ #{workerRemark}, #{shareAccountCountdownEndTime}, #{shareAccountCountdownDuration}, + #{refundPayStatus}, 0, SYSDATE(), SYSDATE()