From 1803c04e4c1d4baa6b213bc0ceba348459b8bc6b Mon Sep 17 00:00:00 2001 From: HH Date: Tue, 20 Dec 2022 00:07:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BB=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=BB=93=E7=AE=97=E6=97=B6=E5=BD=B1=E5=93=8D=E5=88=B0?= =?UTF-8?q?=E5=AD=90=E8=AE=A2=E5=8D=95=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderDetailServiceImpl.java | 27 +++---------------- .../quartz/service/impl/OrderServiceImpl.java | 25 +++++++++++++++++ 2 files changed, 29 insertions(+), 23 deletions(-) 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 6ebfc8f1..f707e4c6 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 @@ -33,7 +33,6 @@ import com.huifu.adapay.core.exception.BaseAdaPayException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; @@ -45,7 +44,10 @@ import java.math.RoundingMode; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -63,8 +65,6 @@ public class OrderDetailServiceImpl implements OrderDetailService { .appendValue(DAY_OF_MONTH, 2).appendValue(HOUR_OF_DAY, 2) .appendValue(MINUTE_OF_HOUR, 2).appendValue(SECOND_OF_MINUTE, 2).toFormatter(); - @Resource - private ThreadPoolTaskExecutor executor; @Resource private OrderDetailMapper orderDetailMapper; @Resource @@ -501,25 +501,6 @@ public class OrderDetailServiceImpl implements OrderDetailService { logger.error("自动发起提现失败: 子订单code={}, deptId={}, memberId={}", odCode, financialDetail.getDeptId(), memberId, e); } // --------------------- 自动提现流程 end --------------------- - - // --------------------- 触发主订单完单流程 start --------------------- - try { - List orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId()); - Set statusSet = orderDetails.stream().map(OrderDetail::getOrderStatus).collect(Collectors.toSet()); - boolean allFinish = true; - for (Integer integer : statusSet) { - if (integer < 5) { - allFinish = false; - break; - } - } - // 如果已经不存在"已完成"和"已取消"以外的子订单 就把主订单也改为完成 - if (allFinish) { - orderMasterService.finish(orderDetail.getOrderMasterId()); - } - } catch (Exception e) { - logger.error(e.getMessage(), e); - } } @Override diff --git a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java index badd6c85..a74b2526 100644 --- a/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java +++ b/ghy-quartz/src/main/java/com/ghy/quartz/service/impl/OrderServiceImpl.java @@ -3,6 +3,7 @@ package com.ghy.quartz.service.impl; import com.ghy.common.enums.FinancialDetailType; import com.ghy.common.enums.OrderStatus; import com.ghy.order.domain.OrderDetail; +import com.ghy.order.domain.OrderMaster; import com.ghy.order.service.OrderDetailService; import com.ghy.order.service.OrderMasterService; import com.ghy.payment.domain.FinancialDetail; @@ -23,6 +24,8 @@ import java.math.BigDecimal; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; @Service public class OrderServiceImpl implements OrderService { @@ -149,5 +152,27 @@ public class OrderServiceImpl implements OrderService { } } } + + List orderMasters = orderMasterService.selectUnfinished(); + for (OrderMaster om : orderMasters) { + try { + List ods = orderDetailService.selectByOrderMasterId(om.getId()); + Set statusSet = ods.stream().map(OrderDetail::getOrderStatus).collect(Collectors.toSet()); + boolean allFinish = true; + for (Integer integer : statusSet) { + if (integer < 5) { + allFinish = false; + break; + } + } + // 如果已经不存在"已完成"和"已取消"以外的子订单 就把主订单也改为完成 + if (allFinish) { + logger.info("主订单可以完成了[id={} code={}]", om.getId(), om.getCode()); + orderMasterService.finish(om.getId()); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } } } From c743577b2bc97f337fe709453fc341c69e83bb68 Mon Sep 17 00:00:00 2001 From: HH Date: Wed, 21 Dec 2022 15:17:46 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=92=8C=E5=AD=90=E8=AE=A2=E5=8D=95=E7=BB=93=E7=AE=97=E6=97=B6?= =?UTF-8?q?=E6=89=8B=E7=BB=AD=E8=B4=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ghy-admin/src/main/resources/logback.xml | 8 ++++---- .../order/service/impl/OrderDetailServiceImpl.java | 13 +++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ghy-admin/src/main/resources/logback.xml b/ghy-admin/src/main/resources/logback.xml index 2e47b5e4..8534f160 100644 --- a/ghy-admin/src/main/resources/logback.xml +++ b/ghy-admin/src/main/resources/logback.xml @@ -27,14 +27,14 @@ - INFO + DEBUG - ACCEPT + DENY - DENY + ACCEPT - + ${log.path}/sys-error.log 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 f707e4c6..11aa5c68 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 @@ -9,6 +9,7 @@ import com.ghy.common.adapay.model.PaymentDTO; import com.ghy.common.constant.UserConstants; import com.ghy.common.core.text.Convert; import com.ghy.common.enums.AdapayOrderType; +import com.ghy.common.enums.FinancialDetailType; import com.ghy.common.enums.OrderStatus; import com.ghy.common.enums.PayStatus; import com.ghy.common.exception.base.BaseException; @@ -357,10 +358,10 @@ public class OrderDetailServiceImpl implements OrderDetailService { } Long financialMasterId = financialDetail.getFinancialMasterId(); // 找到 type=平台抽成 的子财务单 用来承担手续费 - List details = financialDetailService.selectByFinancialMasterIdAndType(financialMasterId, 3); - FinancialDetail platformFD = details.get(0); + List details = financialDetailService.selectByFinancialMasterIdAndType(financialMasterId, FinancialDetailType.PLATFORM_FEE.getCode()); + FinancialDetail platformFeeFD = details.get(0); FinancialDetail update = new FinancialDetail(); - update.setId(platformFD.getId()); + update.setId(platformFeeFD.getId()); logger.debug("子订单[code={}]的完单流程开始", odCode); @@ -401,9 +402,9 @@ public class OrderDetailServiceImpl implements OrderDetailService { // 这是被扣掉的手续费 String fee_amt = response.getString("fee_amt"); feeAmt = new BigDecimal(fee_amt); - if (feeAmt.compareTo(platformFD.getPayMoney()) < 0 && !"0.00".equals(fee_amt)) { + if (feeAmt.compareTo(platformFeeFD.getPayMoney()) < 0 && !"0.00".equals(fee_amt)) { // 用平台抽成来补偿改价单的手续费 修改平台抽成子财务单金额 - update.setPayMoney(platformFD.getPayMoney().subtract(feeAmt)); + update.setPayMoney(platformFeeFD.getPayMoney().subtract(feeAmt)); int i = financialDetailService.updateFinancialDetail(update); compensate = i > 0; } else { @@ -470,7 +471,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { // 待提现金额里加入子财务单金额 dtx = dtx.add(payMoney); // 修改平台抽成子财务单金额 - update.setPayMoney(platformFD.getPayMoney().subtract(fee)); + update.setPayMoney(platformFeeFD.getPayMoney().subtract(fee)); financialDetailService.updateFinancialDetail(update); } // --------------------- 子财务单分账部分 end --------------------- From 88e5eab44750a6cecb0a9dce98eda09877264fdd Mon Sep 17 00:00:00 2001 From: HH Date: Wed, 21 Dec 2022 15:53:27 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=92=8C=E5=AD=90=E8=AE=A2=E5=8D=95=E7=BB=93=E7=AE=97=E6=97=B6?= =?UTF-8?q?=E6=89=8B=E7=BB=AD=E8=B4=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ghy-admin/src/main/resources/logback.xml | 16 ++++++++-------- .../service/impl/OrderDetailServiceImpl.java | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ghy-admin/src/main/resources/logback.xml b/ghy-admin/src/main/resources/logback.xml index 8534f160..8daba945 100644 --- a/ghy-admin/src/main/resources/logback.xml +++ b/ghy-admin/src/main/resources/logback.xml @@ -25,14 +25,14 @@ ${log.pattern} - - - DEBUG - - DENY - - ACCEPT - + + + + + + + + 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 11aa5c68..c5eb87cc 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 @@ -469,7 +469,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { // 如果确认支付失败 这里抛出异常 回滚订单状态 Assert.isTrue(status, response.getString("error_msg")); // 待提现金额里加入子财务单金额 - dtx = dtx.add(payMoney); + dtx = dtx.add(fdPayMoney); // 修改平台抽成子财务单金额 update.setPayMoney(platformFeeFD.getPayMoney().subtract(fee)); financialDetailService.updateFinancialDetail(update);