提交 d7d12576 作者: xiaowang

租赁订单

上级 9f520a47
...@@ -151,15 +151,45 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -151,15 +151,45 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
BigDecimal salaryAmount = BigDecimal.ZERO; BigDecimal salaryAmount = BigDecimal.ZERO;
Integer statusCode = null; Integer statusCode = null;
// 获取用户钱包信息 // 获取用户钱包信息
if (param.getDeductSalaryAmount().equals(1) || param.getDeductShareAmount().equals(1)) {
ResultBody<PayWalletDTO> payResInfo = userAppApi.getCurrentUserPayWalletInfo(currentAccount.getToken()); ResultBody<PayWalletDTO> payResInfo = userAppApi.getCurrentUserPayWalletInfo(currentAccount.getToken());
if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payResInfo.getResult() == null) { if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payResInfo.getResult() == null) {
return payResInfo; return payResInfo;
} }
PayWalletDTO payWalletDTO = payResInfo.getResult(); PayWalletDTO payWalletDTO = payResInfo.getResult();
// 先使用云享金来扣减押金
if (param.getDeductShareAmount().equals(1)) { 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 { } else {
// 余额超过订单金额时,订单总额使用余额支付 // 余额超过订单金额时,订单总额使用余额支付
shareAmount = otherAmount; shareAmount = otherAmount;
...@@ -171,9 +201,9 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -171,9 +201,9 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
statusCode = LeaseOrderStatus.PAID.getCode(); statusCode = LeaseOrderStatus.PAID.getCode();
} else { } else {
if (param.getDeductSalaryAmount().equals(1)) { 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 { } else {
// 余额超过订单金额时,订单总额使用余额支付 // 余额超过订单金额时,订单总额使用余额支付
salaryAmount = otherAmount; salaryAmount = otherAmount;
...@@ -184,8 +214,10 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -184,8 +214,10 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
statusCode = LeaseOrderStatus.PAID.getCode(); statusCode = LeaseOrderStatus.PAID.getCode();
} }
} }
}
// 抵扣余额 // 抵扣余额
uavOrderService.deductWallet(shareAmount, salaryAmount, currentAccount); uavOrderService.deductWallet(shareAmount.add(shareCashPledge), salaryAmount.add(salaryCashPledge), 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论