Merge branch 'master' of https://gitee.com/op-souls/ghy-all
This commit is contained in:
commit
a9a05faeb9
|
|
@ -25,16 +25,16 @@
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>${log.pattern}</pattern>
|
<pattern>${log.pattern}</pattern>
|
||||||
</encoder>
|
</encoder>
|
||||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<!-- <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
|
||||||
<!-- 过滤的级别 -->
|
<!-- <!– 过滤的级别 –>-->
|
||||||
<level>INFO</level>
|
<!-- <level>DEBUG</level>-->
|
||||||
<!-- 匹配时的操作:接收(记录) -->
|
<!-- <!– 匹配时的操作:接收(记录) –>-->
|
||||||
<onMatch>ACCEPT</onMatch>
|
<!-- <onMatch>DENY</onMatch>-->
|
||||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
<!-- <!– 不匹配时的操作:拒绝(不记录) –>-->
|
||||||
<onMismatch>DENY</onMismatch>
|
<!-- <onMismatch>ACCEPT</onMismatch>-->
|
||||||
</filter>
|
<!-- </filter>-->
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
<file>${log.path}/sys-error.log</file>
|
<file>${log.path}/sys-error.log</file>
|
||||||
<!-- 循环政策:基于时间创建日志文件 -->
|
<!-- 循环政策:基于时间创建日志文件 -->
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import com.ghy.common.adapay.model.PaymentDTO;
|
||||||
import com.ghy.common.constant.UserConstants;
|
import com.ghy.common.constant.UserConstants;
|
||||||
import com.ghy.common.core.text.Convert;
|
import com.ghy.common.core.text.Convert;
|
||||||
import com.ghy.common.enums.AdapayOrderType;
|
import com.ghy.common.enums.AdapayOrderType;
|
||||||
|
import com.ghy.common.enums.FinancialDetailType;
|
||||||
import com.ghy.common.enums.OrderStatus;
|
import com.ghy.common.enums.OrderStatus;
|
||||||
import com.ghy.common.enums.PayStatus;
|
import com.ghy.common.enums.PayStatus;
|
||||||
import com.ghy.common.exception.base.BaseException;
|
import com.ghy.common.exception.base.BaseException;
|
||||||
|
|
@ -33,7 +34,6 @@ import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
@ -45,7 +45,10 @@ import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeFormatterBuilder;
|
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.concurrent.atomic.AtomicLong;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -63,8 +66,6 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
.appendValue(DAY_OF_MONTH, 2).appendValue(HOUR_OF_DAY, 2)
|
.appendValue(DAY_OF_MONTH, 2).appendValue(HOUR_OF_DAY, 2)
|
||||||
.appendValue(MINUTE_OF_HOUR, 2).appendValue(SECOND_OF_MINUTE, 2).toFormatter();
|
.appendValue(MINUTE_OF_HOUR, 2).appendValue(SECOND_OF_MINUTE, 2).toFormatter();
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ThreadPoolTaskExecutor executor;
|
|
||||||
@Resource
|
@Resource
|
||||||
private OrderDetailMapper orderDetailMapper;
|
private OrderDetailMapper orderDetailMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -357,10 +358,10 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
}
|
}
|
||||||
Long financialMasterId = financialDetail.getFinancialMasterId();
|
Long financialMasterId = financialDetail.getFinancialMasterId();
|
||||||
// 找到 type=平台抽成 的子财务单 用来承担手续费
|
// 找到 type=平台抽成 的子财务单 用来承担手续费
|
||||||
List<FinancialDetail> details = financialDetailService.selectByFinancialMasterIdAndType(financialMasterId, 3);
|
List<FinancialDetail> details = financialDetailService.selectByFinancialMasterIdAndType(financialMasterId, FinancialDetailType.PLATFORM_FEE.getCode());
|
||||||
FinancialDetail platformFD = details.get(0);
|
FinancialDetail platformFeeFD = details.get(0);
|
||||||
FinancialDetail update = new FinancialDetail();
|
FinancialDetail update = new FinancialDetail();
|
||||||
update.setId(platformFD.getId());
|
update.setId(platformFeeFD.getId());
|
||||||
|
|
||||||
logger.debug("子订单[code={}]的完单流程开始", odCode);
|
logger.debug("子订单[code={}]的完单流程开始", odCode);
|
||||||
|
|
||||||
|
|
@ -401,9 +402,9 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
// 这是被扣掉的手续费
|
// 这是被扣掉的手续费
|
||||||
String fee_amt = response.getString("fee_amt");
|
String fee_amt = response.getString("fee_amt");
|
||||||
feeAmt = new BigDecimal(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);
|
int i = financialDetailService.updateFinancialDetail(update);
|
||||||
compensate = i > 0;
|
compensate = i > 0;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -468,9 +469,9 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
// 如果确认支付失败 这里抛出异常 回滚订单状态
|
// 如果确认支付失败 这里抛出异常 回滚订单状态
|
||||||
Assert.isTrue(status, response.getString("error_msg"));
|
Assert.isTrue(status, response.getString("error_msg"));
|
||||||
// 待提现金额里加入子财务单金额
|
// 待提现金额里加入子财务单金额
|
||||||
dtx = dtx.add(payMoney);
|
dtx = dtx.add(fdPayMoney);
|
||||||
// 修改平台抽成子财务单金额
|
// 修改平台抽成子财务单金额
|
||||||
update.setPayMoney(platformFD.getPayMoney().subtract(fee));
|
update.setPayMoney(platformFeeFD.getPayMoney().subtract(fee));
|
||||||
financialDetailService.updateFinancialDetail(update);
|
financialDetailService.updateFinancialDetail(update);
|
||||||
}
|
}
|
||||||
// --------------------- 子财务单分账部分 end ---------------------
|
// --------------------- 子财务单分账部分 end ---------------------
|
||||||
|
|
@ -501,25 +502,6 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
logger.error("自动发起提现失败: 子订单code={}, deptId={}, memberId={}", odCode, financialDetail.getDeptId(), memberId, e);
|
logger.error("自动发起提现失败: 子订单code={}, deptId={}, memberId={}", odCode, financialDetail.getDeptId(), memberId, e);
|
||||||
}
|
}
|
||||||
// --------------------- 自动提现流程 end ---------------------
|
// --------------------- 自动提现流程 end ---------------------
|
||||||
|
|
||||||
// --------------------- 触发主订单完单流程 start ---------------------
|
|
||||||
try {
|
|
||||||
List<OrderDetail> orderDetails = orderDetailMapper.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
|
||||||
Set<Integer> 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
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.ghy.quartz.service.impl;
|
||||||
import com.ghy.common.enums.FinancialDetailType;
|
import com.ghy.common.enums.FinancialDetailType;
|
||||||
import com.ghy.common.enums.OrderStatus;
|
import com.ghy.common.enums.OrderStatus;
|
||||||
import com.ghy.order.domain.OrderDetail;
|
import com.ghy.order.domain.OrderDetail;
|
||||||
|
import com.ghy.order.domain.OrderMaster;
|
||||||
import com.ghy.order.service.OrderDetailService;
|
import com.ghy.order.service.OrderDetailService;
|
||||||
import com.ghy.order.service.OrderMasterService;
|
import com.ghy.order.service.OrderMasterService;
|
||||||
import com.ghy.payment.domain.FinancialDetail;
|
import com.ghy.payment.domain.FinancialDetail;
|
||||||
|
|
@ -23,6 +24,8 @@ import java.math.BigDecimal;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class OrderServiceImpl implements OrderService {
|
public class OrderServiceImpl implements OrderService {
|
||||||
|
|
@ -149,5 +152,27 @@ public class OrderServiceImpl implements OrderService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<OrderMaster> orderMasters = orderMasterService.selectUnfinished();
|
||||||
|
for (OrderMaster om : orderMasters) {
|
||||||
|
try {
|
||||||
|
List<OrderDetail> ods = orderDetailService.selectByOrderMasterId(om.getId());
|
||||||
|
Set<Integer> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue