diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/wechatpaymentinfo/impl/WeChatPayNotifyServiceImpl.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/wechatpaymentinfo/impl/WeChatPayNotifyServiceImpl.java index a3ddbcb..238a114 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/wechatpaymentinfo/impl/WeChatPayNotifyServiceImpl.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/wechatpaymentinfo/impl/WeChatPayNotifyServiceImpl.java @@ -83,7 +83,6 @@ public class WeChatPayNotifyServiceImpl implements WeChatPayNotifyService { private RedisTemplate redisTemplate; @Resource private PatientCouponReceiveMapper patientCouponReceiveMapper; - @Resource private TrainingOrderMapper trainingOrderMapper; @@ -222,7 +221,7 @@ public class WeChatPayNotifyServiceImpl implements WeChatPayNotifyService { //商品订单信息 GoodsOrder goodsOrderInfo = goodsOrderMapper.getGoodsOrderByOrderNo(notifyPlaintext.getOutTradeNo()); if (Objects.nonNull(goodsOrderInfo)) { - insertPaymentInfo(notifyPlaintext, goodsOrderInfo, null,null, plainText); + insertPaymentInfo(notifyPlaintext, goodsOrderInfo, null, null, plainText); if (WeChatTradeStateEnum.SUCCESS.getInfo().equals(notifyPlaintext.getTradeState())) { goodsOrderMapper.updateGoodsOrderStatus(GooodsOrderStatusEnum.WAIT_RECEIVED_GOODS.getInfo(), goodsOrderInfo.getOrderNo()); } else { @@ -236,7 +235,7 @@ public class WeChatPayNotifyServiceImpl implements WeChatPayNotifyService { return; } //预约服务订单信息 - insertPaymentInfo(notifyPlaintext, null, appointmentOrderInfo,null, plainText); + insertPaymentInfo(notifyPlaintext, null, appointmentOrderInfo, null, plainText); if (WeChatTradeStateEnum.SUCCESS.getInfo().equals(notifyPlaintext.getTradeState())) { appointmentOrderMapper.updateAppointmentOrderStatus(OrderStatusEnum.WAIT_DISPATCH.getInfo(), appointmentOrderInfo.getOrderNo()); } else { @@ -262,10 +261,10 @@ public class WeChatPayNotifyServiceImpl implements WeChatPayNotifyService { * @param plainText 回调明文 */ private void insertPaymentInfo(WeChatPayNotifyPlaintextVO notifyPlaintext, GoodsOrder goodsOrderInfo, - AppointmentOrder appointmentOrder,TrainingOrder trainingOrderInfo, String plainText) { + AppointmentOrder appointmentOrder, TrainingOrder trainingOrderInfo, String plainText) { int paymentInfoCount = paymentInfoMapper.getPaymentInfoByOrderNo(notifyPlaintext.getOutTradeNo()); if (paymentInfoCount <= 0) { - PaymentInfo paymentInfo = buildPaymentInfo(notifyPlaintext, goodsOrderInfo, appointmentOrder,trainingOrderInfo, plainText); + PaymentInfo paymentInfo = buildPaymentInfo(notifyPlaintext, goodsOrderInfo, appointmentOrder, trainingOrderInfo, plainText); int insertCount = paymentInfoMapper.insertPaymentInfo(paymentInfo); if (insertCount <= 0) { log.error("记录支付日志出错,参数为 ====> [{}]", paymentInfo); @@ -282,7 +281,7 @@ public class WeChatPayNotifyServiceImpl implements WeChatPayNotifyService { * @param appointmentOrderInfo 预约订单信息 */ private PaymentInfo buildPaymentInfo(WeChatPayNotifyPlaintextVO notifyPlaintext, GoodsOrder goodsOrderInfo, - AppointmentOrder appointmentOrderInfo,TrainingOrder trainingOrder, String plainText) { + AppointmentOrder appointmentOrderInfo, TrainingOrder trainingOrder, String plainText) { PaymentInfo paymentInfo = new PaymentInfo(); if (Objects.nonNull(goodsOrderInfo)) { paymentInfo.setPatientId(Objects.isNull(goodsOrderInfo.getPatientId()) ? null : goodsOrderInfo.getPatientId()); @@ -327,7 +326,6 @@ public class WeChatPayNotifyServiceImpl implements WeChatPayNotifyService { TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition()); RedisAtomicLong redisAtomicLong = null; try { - //处理学习培训订单退款信息 TrainingOrder trainingOrderInfo = trainingOrderMapper.getTrainingOrderInfoByOrderNo(refundNotifyVO.getOutTradeNo()); if (Objects.nonNull(trainingOrderInfo)) { @@ -463,6 +461,7 @@ public class WeChatPayNotifyServiceImpl implements WeChatPayNotifyService { refundInfo.setOutRefundNo(StringUtils.isBlank(refundNotifyVO.getOutRefundNo()) ? "" : refundNotifyVO.getOutRefundNo()); return refundInfo; } + /** * 处理学习培训订单回调信息 * diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/wechatpaymentinfo/impl/WeChatRefundServiceImpl.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/wechatpaymentinfo/impl/WeChatRefundServiceImpl.java index d54c444..067474d 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/wechatpaymentinfo/impl/WeChatRefundServiceImpl.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/wechatpaymentinfo/impl/WeChatRefundServiceImpl.java @@ -110,7 +110,6 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { if (StringUtils.isNotBlank(refundDTO.getOrderType()) && StringUtils.equals(OrderTypeEnum.INTEGRAL_EXCHANGE.getInfo(), refundDTO.getOrderType())) { return refundPointsRedemption(refundDTO); } - //学习培训订单状态退款处理 if (StringUtils.isNotBlank(refundDTO.getTrainingOrderFlag()) && StringUtils.equals(BuySourceEnum.TRAINING.getInfo(), refundDTO.getTrainingOrderFlag())) { return refundTrainingOrder(refundDTO); @@ -132,9 +131,9 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { } Long patientId = Objects.isNull(appointmentOrderInfo.getPatientId()) ? 0 : appointmentOrderInfo.getPatientId(); String outRefundNo = com.xinelu.common.utils.StringUtils.fillZeroByPatientId(patientId, 5) + System.nanoTime(); - String refundParam = buildRefundParam(null, appointmentOrderInfo,null, refundDTO, outRefundNo); + String refundParam = buildRefundParam(null, appointmentOrderInfo, null, refundDTO, outRefundNo); String refundReason = StringUtils.isBlank(refundDTO.getRefundReason()) ? "" : refundDTO.getRefundReason(); - this.applyWeRefund(refundParam, appointmentOrderInfo, null,null, patientId, refundReason); + this.applyWeRefund(refundParam, appointmentOrderInfo, null, null, patientId, refundReason); return AjaxResult.success(); } GoodsOrder goodsOrderInfo = goodsOrderMapper.getGoodsOrderByOrderNo(refundDTO.getOrderNo()); @@ -154,9 +153,9 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { } Long patientId = Objects.isNull(goodsOrderInfo.getPatientId()) ? 0 : goodsOrderInfo.getPatientId(); String outRefundNo = com.xinelu.common.utils.StringUtils.fillZeroByPatientId(patientId, 5) + System.nanoTime(); - String refundParam = buildRefundParam(goodsOrderInfo, null,null, refundDTO, outRefundNo); + String refundParam = buildRefundParam(goodsOrderInfo, null, null, refundDTO, outRefundNo); String refundReason = StringUtils.isBlank(refundDTO.getRefundReason()) ? "" : refundDTO.getRefundReason(); - this.applyWeRefund(refundParam, null, goodsOrderInfo,null, patientId, refundReason); + this.applyWeRefund(refundParam, null, goodsOrderInfo, null, patientId, refundReason); return AjaxResult.success(); } return AjaxResult.success(); @@ -254,7 +253,7 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { String outRefundNo = com.xinelu.common.utils.StringUtils.fillZeroByPatientId(patientId, 5) + System.nanoTime(); String refundParam = this.buildHealthConsultationRefundParam(goodsOrderInfo, outRefundNo); String refundReason = StringUtils.isBlank(closeOrderDTO.getRemark()) ? "" : closeOrderDTO.getRemark(); - this.applyWeRefund(refundParam, null, goodsOrderInfo,null, patientId, refundReason); + this.applyWeRefund(refundParam, null, goodsOrderInfo, null, patientId, refundReason); // 查询是否为专家咨询订单,修改时间段的可预约状态 if (goodsOrderInfo.getConsultationInfoId() != null) { ConsultationInfoDTO consultationInfo = consultationInfoService.selectConsultationInfoById(goodsOrderInfo.getConsultationInfoId()); @@ -296,7 +295,7 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { * @param refundDTO 退款参数信息 * @return 退款申请Json串 */ - private String buildRefundParam(GoodsOrder goodsOrderInfo, AppointmentOrder appointmentOrderInfo,TrainingOrder trainingOrder, + private String buildRefundParam(GoodsOrder goodsOrderInfo, AppointmentOrder appointmentOrderInfo, TrainingOrder trainingOrder, RefundDTO refundDTO, String outRefundNo) { Map paramMap = new LinkedHashMap<>(); paramMap.put("out_trade_no", refundDTO.getOrderNo()); @@ -310,13 +309,8 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { if (Objects.nonNull(goodsOrderInfo) && Objects.isNull(appointmentOrderInfo)) { amountMap.put("total", goodsOrderInfo.getTotalPrice().multiply(BigDecimal.valueOf(100)).intValue()); } - //学习培训订单使用医路优品账户 if (Objects.nonNull(trainingOrder) && Objects.isNull(goodsOrderInfo) && Objects.isNull(appointmentOrderInfo)) { - //退款回调地址 - // paramMap.put("notify_url", ylypWeChatPaymentConfig.getYlypWeChatNotifyUrl() + YINLUYOUPIN_WE_CHAT_REFUND_URL); - //退款金额 amountMap.put("refund", refundDTO.getRefundPrice().multiply(BigDecimal.valueOf(100)).intValue()); - //原始订单金额 amountMap.put("total", trainingOrder.getTrainingOrderAmount().multiply(BigDecimal.valueOf(100)).intValue()); } amountMap.put("currency", "CNY"); @@ -334,7 +328,7 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { * @param refundReason 退款原因 */ public void applyWeRefund(String refundParam, AppointmentOrder appointmentOrderInfo, - GoodsOrder goodsOrderInfo,TrainingOrder trainingOrderInfo, Long patientId, String refundReason) { + GoodsOrder goodsOrderInfo, TrainingOrder trainingOrderInfo, Long patientId, String refundReason) { String requestUrl = weChatPaymentUrlConfig.getRefundApplyUrl(); HttpPost httpPost = new HttpPost(requestUrl); StringEntity entity = new StringEntity(refundParam, "utf-8"); @@ -342,11 +336,10 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { httpPost.setEntity(entity); httpPost.setHeader("Accept", "application/json"); String refundMerchantType = PaymentMerchantTypeEnum.XINYILU.getInfo(); - - //学习培训订单使用医路优品账户 - Long nursePersonId = Objects.isNull(trainingOrderInfo.getNurseStationPersonId()) ? null : trainingOrderInfo.getNurseStationPersonId(); - - + Long nursePersonId = null; + if (Objects.nonNull(trainingOrderInfo)) { + nursePersonId = Objects.isNull(trainingOrderInfo.getNurseStationPersonId()) ? null : trainingOrderInfo.getNurseStationPersonId(); + } try (CloseableHttpResponse response = xinYiLuWeChatPayClient.execute(httpPost)) { if (Objects.isNull(response)) { throw new ServiceException("获取httpclient对象失败!"); @@ -365,7 +358,7 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { WeChatRefundInfoVO weChatRefundInfoVO = JSONObject.parseObject(body, WeChatRefundInfoVO.class); int refundInfoCount = refundInfoMapper.getRefundInfoByOrderNo(weChatRefundInfoVO.getOutTradeNo()); if (refundInfoCount <= 0) { - RefundInfo refundInfo = buildRefundInfo(patientId, weChatRefundInfoVO, refundReason, body, refundMerchantType,nursePersonId); + RefundInfo refundInfo = buildRefundInfo(patientId, weChatRefundInfoVO, refundReason, body, refundMerchantType, nursePersonId); int insertCunt = refundInfoMapper.insertRefundInfo(refundInfo); if (insertCunt <= 0) { throw new ServiceException("记录退款信息失败,请联系管理员!"); @@ -386,7 +379,7 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { * @param refundMerchantType 退款账户类型,新医路或者医路优品 */ private RefundInfo buildRefundInfo(Long patientId, WeChatRefundInfoVO refundInfoVO, - String refundReason, String refundBody, String refundMerchantType,Long nursePersonId) { + String refundReason, String refundBody, String refundMerchantType, Long nursePersonId) { RefundInfo refundInfo = new RefundInfo(); refundInfo.setPatientId(patientId); refundInfo.setNurseStationPersonId(nursePersonId); @@ -493,19 +486,19 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { paramMap.put("amount", amountMap); return JSON.toJSONString(paramMap); } + /** * 学习培训订单退款处理 * * @param refundDTO 退款信息 * @return 退款结果 */ - public AjaxResult refundTrainingOrder(RefundDTO refundDTO){ + public AjaxResult refundTrainingOrder(RefundDTO refundDTO) { //查询学习培训订单信息 TrainingOrder trainingOrderInfo = trainingOrderMapper.getTrainingOrderInfoByOrderNo(refundDTO.getOrderNo()); if (Objects.isNull(trainingOrderInfo)) { return AjaxResult.error("当前订单信息不存在,无法进行退款!"); } - //判断订单状态是否为已支付,只有支付的订单才能进行退款 if (StringUtils.isBlank(trainingOrderInfo.getTrainingOrderStatus()) || !(StringUtils.equals(TrainingOrderStatusEnum.PAY.getInfo(), trainingOrderInfo.getTrainingOrderStatus()))) { return AjaxResult.error("当前订单状态不正确,无法进行退款!"); @@ -519,7 +512,6 @@ public class WeChatRefundServiceImpl implements WeChatRefundService { log.info("零元购退款信息,无需走微信退款逻辑!"); return AjaxResult.success(); } - //校验订单时间和订单金额 AjaxResult checkResult = judgeRefundInfo(trainingOrderInfo.getTrainingOrderTime(), refundDTO.getRefundPrice(), trainingOrderInfo.getTrainingOrderAmount()); if (Objects.nonNull(checkResult)) { return checkResult; diff --git a/xinelu-quartz/src/main/java/com/xinelu/quartz/service/impl/PaymentInfoTaskServiceImpl.java b/xinelu-quartz/src/main/java/com/xinelu/quartz/service/impl/PaymentInfoTaskServiceImpl.java index e7f8445..d78ce75 100644 --- a/xinelu-quartz/src/main/java/com/xinelu/quartz/service/impl/PaymentInfoTaskServiceImpl.java +++ b/xinelu-quartz/src/main/java/com/xinelu/quartz/service/impl/PaymentInfoTaskServiceImpl.java @@ -89,7 +89,6 @@ public class PaymentInfoTaskServiceImpl implements PaymentInfoTaskService { LocalDateTime localDateTime = LocalDateTime.now().minusHours(2); List appointmentOrderList = appointmentOrderMapper.getWaitPayAppointmentOrderList(localDateTime); List goodsOrderList = goodsOrderMapper.getWaitPayGoodsOrderList(localDateTime); - //查询学习培训订单信息 List waitPayTrainingOrderList = trainingOrderMapper.getWaitPayTrainingOrderListByTime(localDateTime, TrainingOrderStatusEnum.WAIT_PAY.getInfo()); if (CollectionUtils.isEmpty(appointmentOrderList) && CollectionUtils.isEmpty(goodsOrderList) && CollectionUtils.isEmpty(waitPayTrainingOrderList)) { return; @@ -103,7 +102,6 @@ public class PaymentInfoTaskServiceImpl implements PaymentInfoTaskService { if (CollectionUtils.isNotEmpty(goodsOrderList)) { processGoodsOrderInfo(goodsOrderList); } - //处理学习培训订单信息 if (CollectionUtils.isNotEmpty(waitPayTrainingOrderList)) { handleWaitPayTrainingOrderInfo(waitPayTrainingOrderList); } @@ -133,7 +131,6 @@ public class PaymentInfoTaskServiceImpl implements PaymentInfoTaskService { public void automaticUpdateOrderStatusTask() throws Exception { List appointmentOrderList = appointmentOrderMapper.getWaitPayStatusAppointmentOrderList(OrderStatusEnum.WAIT_PAY.getInfo()); List goodsOrderList = goodsOrderMapper.getWaitPayStatusGoodsOrderList(GooodsOrderStatusEnum.WAIT_PAY.getInfo()); - //查询未支付的学习培训订单信息 List waitPayTrainingOrderList = trainingOrderMapper.getWaitPayTrainingOrderList(TrainingOrderStatusEnum.WAIT_PAY.getInfo(), null); if (CollectionUtils.isEmpty(appointmentOrderList) && CollectionUtils.isEmpty(goodsOrderList) && CollectionUtils.isEmpty(waitPayTrainingOrderList)) { return; @@ -146,7 +143,6 @@ public class PaymentInfoTaskServiceImpl implements PaymentInfoTaskService { if (CollectionUtils.isNotEmpty(goodsOrderList)) { updateGoodsPaymentInfo(goodsOrderList); } - //修改学习培训订单状态以及记录支付信息 if (CollectionUtils.isNotEmpty(waitPayTrainingOrderList)) { handleWaitPayTrainingOrder(waitPayTrainingOrderList); } @@ -426,9 +422,7 @@ public class PaymentInfoTaskServiceImpl implements PaymentInfoTaskService { * @throws Exception 异常信息 */ private void handleWaitPayTrainingOrderInfo(List trainingOrderList) throws Exception { - //本地系统中超过两小时未支付的订单集合 List orderList = Lists.newArrayList(); - //微信系统已经关闭状态的订单集合 List closedOrderList = Lists.newArrayList(); for (TrainingOrder trainingOrder : trainingOrderList) { if (Objects.isNull(trainingOrder) || StringUtils.isBlank(trainingOrder.getTrainingOrderNo())) { diff --git a/xinelu-quartz/src/main/java/com/xinelu/quartz/service/impl/RefundInfoTaskServiceImpl.java b/xinelu-quartz/src/main/java/com/xinelu/quartz/service/impl/RefundInfoTaskServiceImpl.java index 07c2c2b..78cc69f 100644 --- a/xinelu-quartz/src/main/java/com/xinelu/quartz/service/impl/RefundInfoTaskServiceImpl.java +++ b/xinelu-quartz/src/main/java/com/xinelu/quartz/service/impl/RefundInfoTaskServiceImpl.java @@ -9,7 +9,9 @@ import com.xinelu.manage.mapper.appointmentorder.AppointmentOrderMapper; import com.xinelu.manage.mapper.goodsOrder.GoodsOrderMapper; import com.xinelu.manage.mapper.patientcouponreceive.PatientCouponReceiveMapper; import com.xinelu.manage.mapper.refundinfo.RefundInfoMapper; +import com.xinelu.manage.mapper.trainingorder.TrainingOrderMapper; import com.xinelu.manage.vo.RefundOrderInfoVO; +import com.xinelu.manage.vo.TrainingRefundOrderVO; import com.xinelu.quartz.service.RefundInfoTaskService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -55,6 +57,8 @@ public class RefundInfoTaskServiceImpl implements RefundInfoTaskService { private RedisTemplate redisTemplate; @Resource private PatientCouponReceiveMapper patientCouponReceiveMapper; + @Resource + private TrainingOrderMapper trainingOrderMapper; /** * 自动处理退款状态定时任务,每15分钟执行一次 @@ -64,7 +68,8 @@ public class RefundInfoTaskServiceImpl implements RefundInfoTaskService { public void automaticProcessRefundInfo() { List appointmentOrderList = appointmentOrderMapper.getRefundAppointmentOrderInfo(OrderStatusEnum.WAIT_REFUND.getInfo(), RefundStatusEnum.PROCESSING.getInfo(), ConfirmRefundStatusEnum.CONFIRMED.getInfo()); List refundGoodsOrderLit = goodsOrderMapper.getRefundGoodsOrderInfo(GooodsOrderStatusEnum.WAIT_REFUND.getInfo(), RefundStatusEnum.PROCESSING.getInfo(), ConfirmRefundStatusEnum.CONFIRMED.getInfo()); - if (CollectionUtils.isEmpty(appointmentOrderList) && CollectionUtils.isEmpty(refundGoodsOrderLit)) { + List trainingRefundOrderList = trainingOrderMapper.getTrainingRefundOrderList(TrainingOrderStatusEnum.PAY.getInfo(), RefundStatusEnum.PROCESSING.getInfo()); + if (CollectionUtils.isEmpty(appointmentOrderList) && CollectionUtils.isEmpty(refundGoodsOrderLit) && CollectionUtils.isEmpty(trainingRefundOrderList)) { return; } TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition()); @@ -76,6 +81,9 @@ public class RefundInfoTaskServiceImpl implements RefundInfoTaskService { if (CollectionUtils.isNotEmpty(refundGoodsOrderLit)) { processGoodsRefundInfo(refundGoodsOrderLit); } + if (CollectionUtils.isNotEmpty(trainingRefundOrderList)) { + handleRefundTrainingOrderInfo(trainingRefundOrderList); + } transactionManager.commit(transactionStatus); } catch (Exception e) { transactionManager.rollback(transactionStatus); @@ -202,4 +210,29 @@ public class RefundInfoTaskServiceImpl implements RefundInfoTaskService { goodsOrderMapper.updateBatchGoodsOrderStatus(orderNoList, OrderStatusEnum.REFUNDED.getInfo()); } } + + /** + * 处理退款成功的学习培训订单信息 + * + * @param trainingRefundOrderList 学习培训订单集合 + */ + private void handleRefundTrainingOrderInfo(List trainingRefundOrderList) { + List orderNoList = Lists.newArrayList(); + for (TrainingRefundOrderVO refundOrderVO : trainingRefundOrderList) { + if (StringUtils.isBlank(refundOrderVO.getTrainingOrderNo()) || StringUtils.isBlank(refundOrderVO.getOutRefundNo())) { + continue; + } + WeChatRefundInfoVO weChatRefundInfoVO = weChatRefundService.queryGoodsOrderRefundStatus(refundOrderVO.getOutRefundNo(), BuySourceEnum.TRAINING.getInfo()); + if (StringUtils.isNotBlank(weChatRefundInfoVO.getStatus()) + && RefundStatusEnum.SUCCESS.getInfo().equals(weChatRefundInfoVO.getStatus())) { + orderNoList.add(refundOrderVO.getTrainingOrderNo()); + } + log.info("修改学习培训订单微信退款状态和本地订单状态,订单编号=====> {}, 退款单号======> {}", refundOrderVO.getTrainingOrderNo(), refundOrderVO.getOutRefundNo()); + LocalDateTime successTime = StringUtils.isBlank(weChatRefundInfoVO.getSuccessTime()) ? LocalDateTime.now() : LocalDateTime.parse(weChatRefundInfoVO.getSuccessTime(), DateTimeFormatter.ISO_DATE_TIME); + refundInfoMapper.updateBatchRefundStatus(refundOrderVO.getTrainingOrderNo(), successTime, weChatRefundInfoVO.getStatus()); + } + if (CollectionUtils.isNotEmpty(orderNoList)) { + trainingOrderMapper.updateBatchTrainingOrderStatus(orderNoList, TrainingOrderStatusEnum.REFUNDED.getInfo()); + } + } }