子订单finish判断调整日志调整
This commit is contained in:
parent
49f52d0845
commit
ce77b24b47
|
|
@ -407,6 +407,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public synchronized void finish(Long orderDetailId) throws BaseAdaPayException {
|
public synchronized void finish(Long orderDetailId) throws BaseAdaPayException {
|
||||||
|
logger.debug("子订单[{}]finish......", orderDetailId);
|
||||||
// 校验订单
|
// 校验订单
|
||||||
OrderDetail orderDetail = selectById(orderDetailId);
|
OrderDetail orderDetail = selectById(orderDetailId);
|
||||||
if (orderDetail == null) {
|
if (orderDetail == null) {
|
||||||
|
|
@ -432,17 +433,23 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
throw new BaseException("订单不是“已支付”状态");
|
throw new BaseException("订单不是“已支付”状态");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改子订单状态为完成
|
|
||||||
updateStatus(orderDetailId, OrderStatus.FINISH.code());
|
|
||||||
|
|
||||||
Long financialMasterId = financialDetail.getFinancialMasterId();
|
Long financialMasterId = financialDetail.getFinancialMasterId();
|
||||||
// 找到 type=平台抽成 的子财务单 用来承担手续费
|
// 找到 type=平台抽成 的子财务单 用来承担手续费
|
||||||
List<FinancialDetail> details = financialDetailService.selectByFinancialMasterIdAndType(financialMasterId, FinancialDetailType.PLATFORM_FEE.getCode());
|
List<FinancialDetail> details = financialDetailService.selectByFinancialMasterIdAndType(financialMasterId, FinancialDetailType.PLATFORM_FEE.getCode());
|
||||||
|
if (CollectionUtils.isEmpty(details)) {
|
||||||
|
logger.error("找不到平台抽成的子财务单 orderDetailId={}", orderDetailId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改子订单状态为完成
|
||||||
|
updateStatus(orderDetailId, OrderStatus.FINISH.code());
|
||||||
|
|
||||||
|
// 平台抽成的子财务单
|
||||||
FinancialDetail platformFeeFD = details.get(0);
|
FinancialDetail platformFeeFD = details.get(0);
|
||||||
FinancialDetail fdUpdate = new FinancialDetail();
|
FinancialDetail fdUpdate = new FinancialDetail();
|
||||||
fdUpdate.setId(platformFeeFD.getId());
|
fdUpdate.setId(platformFeeFD.getId());
|
||||||
fdUpdate.setPayMoney(platformFeeFD.getPayMoney());
|
fdUpdate.setPayMoney(platformFeeFD.getPayMoney());
|
||||||
logger.debug("子订单[code={}]的完单流程开始", odCode);
|
logger.debug("子订单[{}]的完单流程开始", orderDetailId);
|
||||||
|
|
||||||
// 加价单手续费补偿成功与否
|
// 加价单手续费补偿成功与否
|
||||||
boolean compensate = false;
|
boolean compensate = false;
|
||||||
|
|
@ -451,7 +458,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
// 待提现金额
|
// 待提现金额
|
||||||
BigDecimal dtx = BigDecimal.ZERO;
|
BigDecimal dtx = BigDecimal.ZERO;
|
||||||
// 加价金额
|
// 加价金额
|
||||||
BigDecimal addPrice;
|
BigDecimal addPrice = BigDecimal.ZERO;
|
||||||
// 子单收款人的memberId
|
// 子单收款人的memberId
|
||||||
String memberId = AdapayUtils.getWorkerMemberId(financialDetail.getPayeeId(), financialDetail.getDeptId());
|
String memberId = AdapayUtils.getWorkerMemberId(financialDetail.getPayeeId(), financialDetail.getDeptId());
|
||||||
|
|
||||||
|
|
@ -534,8 +541,8 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
// 这是被扣掉的手续费 按理说这里应该大于0
|
// 这是被扣掉的手续费 按理说这里应该大于0
|
||||||
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(platformFeeFD.getPayMoney()) < 0 && !"0.00".equals(fee_amt)) {
|
// 当 0.00 < 改价单的手续费 < 平台抽成金额 时
|
||||||
// 当 0.00<改价单的手续费<=平台抽成金额 时
|
if (MoneyUtil.gt0(feeAmt) && MoneyUtil.gt(fdUpdate.getPayMoney(), feeAmt)) {
|
||||||
// 用平台抽成来补偿改价单的手续费 修改平台抽成子财务单金额
|
// 用平台抽成来补偿改价单的手续费 修改平台抽成子财务单金额
|
||||||
fdUpdate.setPayMoney(fdUpdate.getPayMoney().subtract(feeAmt));
|
fdUpdate.setPayMoney(fdUpdate.getPayMoney().subtract(feeAmt));
|
||||||
int i = financialDetailService.updateFinancialDetail(fdUpdate);
|
int i = financialDetailService.updateFinancialDetail(fdUpdate);
|
||||||
|
|
@ -561,11 +568,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
throw new IllegalArgumentException(response.getString("error_msg"));
|
throw new IllegalArgumentException(response.getString("error_msg"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
addPrice = BigDecimal.ZERO;
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
addPrice = BigDecimal.ZERO;
|
|
||||||
}
|
}
|
||||||
// --------------------- 改价单分账部分 end ---------------------
|
// --------------------- 改价单分账部分 end ---------------------
|
||||||
|
|
||||||
|
|
@ -584,7 +587,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
// 平台不补偿改价单手续费
|
// 平台不补偿改价单手续费
|
||||||
payMoney = fdPayMoney;
|
payMoney = fdPayMoney;
|
||||||
}
|
}
|
||||||
if (BigDecimal.ZERO.compareTo(payMoney) > -1) {
|
if (MoneyUtil.lte0(payMoney)) {
|
||||||
logger.info("子财务单[{}] 应支付金额={} 不需要分账", financialDetail.getId(), payMoney);
|
logger.info("子财务单[{}] 应支付金额={} 不需要分账", financialDetail.getId(), payMoney);
|
||||||
} else {
|
} else {
|
||||||
// 查询师傅的超时扣款记录
|
// 查询师傅的超时扣款记录
|
||||||
|
|
@ -613,7 +616,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
|
||||||
DivMember divMember = new DivMember(memberId, payMoneyS, false);
|
DivMember divMember = new DivMember(memberId, payMoneyS, false);
|
||||||
divMembers.add(divMember);
|
divMembers.add(divMember);
|
||||||
// 是否有罚金
|
// 是否有罚金
|
||||||
boolean haveFine = BigDecimal.ZERO.compareTo(fineMoney) < 0;
|
boolean haveFine = MoneyUtil.gt0(fineMoney);
|
||||||
if (haveFine) { // 有罚金 从罚金里扣除手续费
|
if (haveFine) { // 有罚金 从罚金里扣除手续费
|
||||||
// 平台的分账信息 用来承担罚金
|
// 平台的分账信息 用来承担罚金
|
||||||
DivMember fineDivMember = new DivMember("0", AdapayUtils.bigDecimalToString(fineMoney), true);
|
DivMember fineDivMember = new DivMember("0", AdapayUtils.bigDecimalToString(fineMoney), true);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue