提交 d7d12576 作者: xiaowang

租赁订单

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