修改子订单完成的逻辑
This commit is contained in:
parent
5e5ad630f6
commit
5606c8fdbc
|
|
@ -45,10 +45,7 @@ import java.math.RoundingMode;
|
|||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -369,6 +366,19 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
|||
|
||||
// 更新订单状态
|
||||
orderDetailMapper.updateStatus(orderDetailId, OrderStatus.FINISH.code());
|
||||
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) {
|
||||
orderMasterMapper.updateStatus(orderDetail.getOrderMasterId(), OrderStatus.FINISH.code());
|
||||
}
|
||||
|
||||
// 加价单手续费补偿成功与否
|
||||
boolean compensate = false;
|
||||
|
|
@ -376,18 +386,19 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
|||
BigDecimal feeAmt = null;
|
||||
// 待提现金额
|
||||
BigDecimal dtx = BigDecimal.ZERO;
|
||||
// 加价金额
|
||||
BigDecimal addPrice;
|
||||
// 子单收款人的memberId
|
||||
String memberId = AdapayUtils.getWorkerMemberId(financialDetail.getPayeeId(), financialDetail.getDeptId());
|
||||
|
||||
// --------------------- 改价单分账部分 start ---------------------
|
||||
// 查询子订单的加价记录
|
||||
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectByDetailIds(String.valueOf(orderDetailId));
|
||||
if (financialChangeRecords.size() == 0) {
|
||||
logger.debug("子订单[code={}]没有改价单", odCode);
|
||||
} else if (financialChangeRecords.size() == 1) {
|
||||
if (!CollectionUtils.isEmpty(financialChangeRecords)) {
|
||||
ArrayList<DivMember> divMembers = new ArrayList<>();
|
||||
// 改价记录只会有一条 直接取出
|
||||
FinancialChangeRecord fcRecord = financialChangeRecords.get(0);
|
||||
addPrice = fcRecord.getChangeMoney();
|
||||
// 待提现金额里加入改价单金额
|
||||
dtx = dtx.add(fcRecord.getChangeMoney());
|
||||
// 这里先自己承担手续费 后面再用平台抽成来补偿
|
||||
|
|
@ -429,7 +440,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
logger.error("financialChangeRecords.size = " + financialChangeRecords.size());
|
||||
addPrice = BigDecimal.ZERO;
|
||||
}
|
||||
// --------------------- 改价单分账部分 end ---------------------
|
||||
|
||||
|
|
@ -437,9 +448,9 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
|||
// 分账账户信息
|
||||
|
||||
ArrayList<DivMember> divMembers = new ArrayList<>();
|
||||
// 子单的金额
|
||||
BigDecimal fdPayMoney = financialDetail.getPayMoney();
|
||||
// 实际要分账的金额(子单的金额 + 平台补偿改价单手续费)
|
||||
// 子单的实际金额
|
||||
BigDecimal fdPayMoney = financialDetail.getPayMoney().subtract(addPrice);
|
||||
// 实际要分账的金额(子单的实际金额 + 平台补偿改价单手续费)
|
||||
BigDecimal payMoney;
|
||||
if (compensate) {
|
||||
// 平台补偿改价单手续费
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ 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;
|
||||
|
|
@ -11,7 +10,6 @@ import com.ghy.payment.domain.OrderTimeoutRecord;
|
|||
import com.ghy.payment.mapper.OrderFineRecordMapper;
|
||||
import com.ghy.payment.service.FinancialDetailService;
|
||||
import com.ghy.quartz.service.OrderService;
|
||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
|
@ -137,7 +135,8 @@ public class OrderServiceImpl implements OrderService {
|
|||
// 查询出"待确认"状态的子订单
|
||||
List<OrderDetail> orderDetails = orderDetailService.selectByStatus(Collections.singletonList(OrderStatus.FINISH_CHECK.code()));
|
||||
long now = System.currentTimeMillis();
|
||||
long day14ago = now - (60 * 60 * 1000L);
|
||||
// long day14ago = now - (60 * 60 * 1000L);
|
||||
long day14ago = now - 10000L;
|
||||
for (OrderDetail orderDetail : orderDetails) {
|
||||
// 查询符合自动确认的订单
|
||||
if (day14ago > orderDetail.getUpdateTime().getTime()) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue