提交 d7d12576 作者: xiaowang

租赁订单

上级 9f520a47
...@@ -151,41 +151,73 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -151,41 +151,73 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
BigDecimal salaryAmount = BigDecimal.ZERO; BigDecimal salaryAmount = BigDecimal.ZERO;
Integer statusCode = null; Integer statusCode = null;
// 获取用户钱包信息 // 获取用户钱包信息
ResultBody<PayWalletDTO> payResInfo = userAppApi.getCurrentUserPayWalletInfo(currentAccount.getToken()); if (param.getDeductSalaryAmount().equals(1) || param.getDeductShareAmount().equals(1)) {
if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payResInfo.getResult() == null) { ResultBody<PayWalletDTO> payResInfo = userAppApi.getCurrentUserPayWalletInfo(currentAccount.getToken());
return payResInfo; if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payResInfo.getResult() == null) {
} return payResInfo;
PayWalletDTO payWalletDTO = payResInfo.getResult();
if (param.getDeductShareAmount().equals(1)) {
if (otherAmount.compareTo(payWalletDTO.getCashAmt()) >= 0) {
// 抵扣云享金小于等于订单总额时,直接使用云享金
shareAmount = payWalletDTO.getCashAmt();
} else {
// 余额超过订单金额时,订单总额使用余额支付
shareAmount = otherAmount;
} }
} PayWalletDTO payWalletDTO = payResInfo.getResult();
otherAmount = otherAmount.subtract(shareAmount); // 先使用云享金来扣减押金
// 支付完成 if (param.getDeductShareAmount().equals(1)) {
if (otherAmount.compareTo(BigDecimal.ZERO) == 0) { if (otherCashPledge.compareTo(payWalletDTO.getCashAmt()) >= 0) {
statusCode = LeaseOrderStatus.PAID.getCode(); // 不够抵扣押金
} else { shareCashPledge = payWalletDTO.getCashAmt();
if (param.getDeductSalaryAmount().equals(1)) {
if (otherAmount.compareTo(payWalletDTO.getSalaryAmt()) >= 0) {
// 抵扣余额小于等于订单总额时,直接使用余额
salaryAmount = payWalletDTO.getSalaryAmt();
} else { } else {
// 余额超过订单金额时,订单总额使用余额支付 // 够抵扣押金
salaryAmount = otherAmount; shareCashPledge = otherCashPledge;
} }
otherCashPledge = otherCashPledge.subtract(shareCashPledge);
if (otherCashPledge.compareTo(BigDecimal.ZERO) == 0) {
otherAmount = otherAmount.subtract(shareCashPledge);
} else {
if (param.getDeductSalaryAmount().equals(1)) {
if (otherCashPledge.compareTo(payWalletDTO.getSalaryAmt()) >= 0) {
salaryCashPledge = payWalletDTO.getSalaryAmt();
} else {
salaryCashPledge = otherCashPledge;
}
otherCashPledge = otherCashPledge.subtract(salaryCashPledge);
if (otherCashPledge.compareTo(BigDecimal.ZERO) == 0) {
otherAmount = otherAmount.subtract(salaryCashPledge.add(shareCashPledge));
}
}
}
} }
otherAmount = otherAmount.subtract(salaryAmount); // 抵扣完后当押金为0的时候 继续抵扣其余金额
if (otherAmount.compareTo(BigDecimal.ZERO) == 0) { if (otherCashPledge.compareTo(BigDecimal.ZERO) == 0) {
statusCode = LeaseOrderStatus.PAID.getCode(); if (param.getDeductShareAmount().equals(1)) {
if (otherAmount.compareTo(payWalletDTO.getCashAmt().subtract(shareCashPledge)) >= 0) {
// 抵扣云享金小于等于订单总额时,直接使用云享金
shareAmount = payWalletDTO.getCashAmt().subtract(shareCashPledge);
} else {
// 余额超过订单金额时,订单总额使用余额支付
shareAmount = otherAmount;
}
}
otherAmount = otherAmount.subtract(shareAmount);
// 支付完成
if (otherAmount.compareTo(BigDecimal.ZERO) == 0) {
statusCode = LeaseOrderStatus.PAID.getCode();
} else {
if (param.getDeductSalaryAmount().equals(1)) {
if (otherAmount.compareTo(payWalletDTO.getSalaryAmt().subtract(salaryCashPledge)) >= 0) {
// 抵扣余额小于等于订单总额时,直接使用余额
salaryAmount = payWalletDTO.getSalaryAmt().subtract(salaryCashPledge);
} else {
// 余额超过订单金额时,订单总额使用余额支付
salaryAmount = otherAmount;
}
}
otherAmount = otherAmount.subtract(salaryAmount);
if (otherAmount.compareTo(BigDecimal.ZERO) == 0) {
statusCode = LeaseOrderStatus.PAID.getCode();
}
}
} }
// 抵扣余额
uavOrderService.deductWallet(shareAmount.add(shareCashPledge), salaryAmount.add(salaryCashPledge), currentAccount);
} }
// 抵扣余额
uavOrderService.deductWallet(shareAmount, salaryAmount, currentAccount);
// 获取商品主图 // 获取商品主图
String url = null; String url = null;
for (GoodsResourcesVO goodsResourcesVO : leaseGoodsVO.getResourcesList()) { for (GoodsResourcesVO goodsResourcesVO : leaseGoodsVO.getResourcesList()) {
...@@ -212,6 +244,8 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -212,6 +244,8 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
} }
leaseOrderDO.setSalaryAmount(salaryAmount); leaseOrderDO.setSalaryAmount(salaryAmount);
leaseOrderDO.setSku(param.getSku()); leaseOrderDO.setSku(param.getSku());
leaseOrderDO.setSalaryCashPledge(salaryCashPledge);
leaseOrderDO.setShareCashPledge(shareCashPledge);
leaseOrderDO.setShareAmount(shareAmount); leaseOrderDO.setShareAmount(shareAmount);
leaseOrderDO.setOtherAmount(otherAmount); leaseOrderDO.setOtherAmount(otherAmount);
leaseOrderDO.setUserAddressId(param.getUserAddressId()); leaseOrderDO.setUserAddressId(param.getUserAddressId());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论