提交 70811206 作者: xiaowang

bug修复

上级 854963e7
...@@ -14,6 +14,7 @@ public enum LeaseOrderStatus { ...@@ -14,6 +14,7 @@ public enum LeaseOrderStatus {
COMPLETE_TRANSACTION(700, "交易完成", "交易完成"), COMPLETE_TRANSACTION(700, "交易完成", "交易完成"),
APPLY_REFUND(800, "申请退款", "退款中"), APPLY_REFUND(800, "申请退款", "退款中"),
MODIFIED_DEPOSIT_TO_BE_CONFIRMED(900, "待确认修改后押金", "待确认修改后押金"), MODIFIED_DEPOSIT_TO_BE_CONFIRMED(900, "待确认修改后押金", "待确认修改后押金"),
MODIFIED_DEPOSIT_REFUND(950, "待确认修改后押金", "待确认修改后押金"),
CLOSE(999, "订单关闭", "订单关闭"); CLOSE(999, "订单关闭", "订单关闭");
public Integer getCode() { public Integer getCode() {
......
...@@ -688,6 +688,22 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -688,6 +688,22 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
// 解冻用户钱包金额 // 解冻用户钱包金额
BigDecimal shareAmount = leaseOrderDO.getShareAmount(); BigDecimal shareAmount = leaseOrderDO.getShareAmount();
BigDecimal salaryAmount = leaseOrderDO.getSalaryAmount(); BigDecimal salaryAmount = leaseOrderDO.getSalaryAmount();
ApplyRefundVO applyRefundVO = null;
if (isApplyRefund && leaseOrderDO.getOtherAmount().compareTo(BigDecimal.ZERO) > 0) {
applyRefundVO = wxRefund(leaseOrderDO);
applyRefundVO.setRefund((leaseOrderDO.getOtherPledge().add(leaseOrderDO.getOtherAmount())).multiply(BigDecimal.valueOf(100)).longValue());
} else if (leaseOrderDO.getOtherPledge() != null && leaseOrderDO.getOtherPledge().compareTo(BigDecimal.ZERO) > 0) {
applyRefundVO = wxRefund(leaseOrderDO);
}
if (applyRefundVO != null) {
ResultBody refundOtherPledge = paymentAppApi.applyRefund(applyRefundVO, currentAccount.getToken());
if (!refundOtherPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return refundOtherPledge;
}
}
if (shareAmount.compareTo(BigDecimal.ZERO) > 0 || salaryAmount.compareTo(BigDecimal.ZERO) > 0) { if (shareAmount.compareTo(BigDecimal.ZERO) > 0 || salaryAmount.compareTo(BigDecimal.ZERO) > 0) {
// 金额解冻 // 金额解冻
PayUavWalletVO userPayUavWalletVO = amountUnfreezing(leaseOrderDO, shareAmount, salaryAmount); PayUavWalletVO userPayUavWalletVO = amountUnfreezing(leaseOrderDO, shareAmount, salaryAmount);
...@@ -696,18 +712,6 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -696,18 +712,6 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) { if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return resultBody; return resultBody;
} }
// 退回微信支付的押金部分
if (leaseOrderDO.getOtherPledge() != null && leaseOrderDO.getOtherPledge().compareTo(BigDecimal.ZERO) > 0) {
ApplyRefundVO applyRefundVO = wxRefund(leaseOrderDO);
ResultBody refundOtherPledge = paymentAppApi.applyRefund(applyRefundVO, currentAccount.getToken());
if (!refundOtherPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return refundOtherPledge;
}
}
// 修改退款操作
if (isApplyRefund) {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.CLOSE);
}
// 如果是交易完成则退回押金 // 如果是交易完成则退回押金
if (isWaitingMerchantConfirm) { if (isWaitingMerchantConfirm) {
BigDecimal shareCashPledge = leaseOrderDO.getShareCashPledge(); BigDecimal shareCashPledge = leaseOrderDO.getShareCashPledge();
...@@ -717,6 +721,12 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -717,6 +721,12 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
} }
} }
} }
// 修改退款操作
if (isApplyRefund) {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.CLOSE);
}
if (isWaitingMerchantConfirm) { if (isWaitingMerchantConfirm) {
return businessIncome(currentAccount, param.getOrderId(), leaseOrderDO); return businessIncome(currentAccount, param.getOrderId(), leaseOrderDO);
} }
...@@ -730,7 +740,11 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -730,7 +740,11 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
leaseRefundOrderDO.setType(OrderType.PFREC.getCode()); leaseRefundOrderDO.setType(OrderType.PFREC.getCode());
leaseOrderDao.addLeaseRefundOrder(leaseRefundOrderDO); leaseOrderDao.addLeaseRefundOrder(leaseRefundOrderDO);
// 修改订单状态 // 修改订单状态
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.MODIFIED_DEPOSIT_TO_BE_CONFIRMED); if (isWaitingMerchantConfirm) {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.MODIFIED_DEPOSIT_TO_BE_CONFIRMED);
} else {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.MODIFIED_DEPOSIT_REFUND);
}
} }
} else { } else {
return ResultBody.error("状态流程有误"); return ResultBody.error("状态流程有误");
...@@ -799,67 +813,100 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -799,67 +813,100 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.REMAIN_TO_BE_EVALUATED.getCode())) { if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.REMAIN_TO_BE_EVALUATED.getCode())) {
return ResultBody.error("请勿重复操作"); return ResultBody.error("请勿重复操作");
} }
if (!leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.MODIFIED_DEPOSIT_TO_BE_CONFIRMED.getCode())) { boolean isModifiedConfirmed = leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.MODIFIED_DEPOSIT_TO_BE_CONFIRMED.getCode());
return ResultBody.error("状态流程有误"); boolean isRefund = leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.MODIFIED_DEPOSIT_REFUND.getCode());
} if (isModifiedConfirmed || isRefund) {
// 根据订单id查询出修改后的押金 // 根据订单id查询出修改后的押金
LeaseRefundOrderDO leaseRefundOrderDO = leaseOrderDao.selectGiveBackByOrderId(id, OrderType.PFREC.getCode()); LeaseRefundOrderDO leaseRefundOrderDO = leaseOrderDao.selectGiveBackByOrderId(id, OrderType.PFREC.getCode());
BigDecimal operatingDeposit = BigDecimal.ZERO; BigDecimal operatingDeposit = BigDecimal.ZERO;
operatingDeposit = operatingDeposit.add(leaseRefundOrderDO.getModifiedDeposit()); operatingDeposit = operatingDeposit.add(leaseRefundOrderDO.getModifiedDeposit());
// 判断用户之前的押金,然后进行操作: // 判断用户之前的押金,然后进行操作:
// 1、分别获取用户之前抵扣掉的押金 // 1、分别获取用户之前抵扣掉的押金
BigDecimal shareCashPledge = leaseOrderDO.getShareCashPledge(); BigDecimal shareCashPledge = leaseOrderDO.getShareCashPledge();
BigDecimal salaryCashPledge = leaseOrderDO.getSalaryCashPledge(); BigDecimal salaryCashPledge = leaseOrderDO.getSalaryCashPledge();
BigDecimal otherPledge = leaseOrderDO.getOtherPledge(); BigDecimal otherPledge = leaseOrderDO.getOtherPledge();
// 一一判断押金是否够扣减的 // 一一判断押金是否够扣减的
if (shareCashPledge.compareTo(BigDecimal.ZERO) > 0 || salaryCashPledge.compareTo(BigDecimal.ZERO) > 0) { if (shareCashPledge.compareTo(BigDecimal.ZERO) > 0 || salaryCashPledge.compareTo(BigDecimal.ZERO) > 0) {
if (shareCashPledge.compareTo(operatingDeposit) >= 0) { if (shareCashPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金足够抵扣 // 云享金押金足够抵扣
shareCashPledge = shareCashPledge.subtract(operatingDeposit); shareCashPledge = shareCashPledge.subtract(operatingDeposit);
} else {
operatingDeposit = operatingDeposit.subtract(shareCashPledge);
if (salaryCashPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金+余额押金足够抵扣
salaryCashPledge = salaryCashPledge.subtract(operatingDeposit);
// 进行后续操作
} else { } else {
operatingDeposit = operatingDeposit.subtract(salaryCashPledge); operatingDeposit = operatingDeposit.subtract(shareCashPledge);
if (otherPledge.compareTo(operatingDeposit) >= 0) { if (salaryCashPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金+余额押金+其他押金足够抵扣 // 云享金押金+余额押金足够抵扣
otherPledge = otherPledge.subtract(operatingDeposit); salaryCashPledge = salaryCashPledge.subtract(operatingDeposit);
// 进行后续操作 // 进行后续操作
} else {
operatingDeposit = operatingDeposit.subtract(salaryCashPledge);
if (otherPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge = otherPledge.subtract(operatingDeposit);
// 进行后续操作
}
} }
} }
// 进行金额解冻
PayUavWalletVO userPayUavWalletVO = amountUnfreezing(leaseOrderDO, leaseOrderDO.getShareAmount(), leaseOrderDO.getSalaryAmount());
userPayUavWalletVO.setOrderStatus(999);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return resultBody;
}
// 进行多余的押金退回
if ((shareCashPledge.compareTo(BigDecimal.ZERO) > 0 || salaryCashPledge.compareTo(BigDecimal.ZERO) > 0)) {
moneyRefund(shareCashPledge, salaryCashPledge, currentAccount, leaseOrderDO);
}
} else {
if (otherPledge.compareTo(operatingDeposit) >= 0) {
// 云享金押金+余额押金+其他押金足够抵扣
otherPledge = otherPledge.subtract(operatingDeposit);
}
} }
// 进行金额解冻 // 退回微信支付的押金部分
PayUavWalletVO userPayUavWalletVO = amountUnfreezing(leaseOrderDO, leaseOrderDO.getShareAmount(), leaseOrderDO.getSalaryAmount()); if (otherPledge != null && otherPledge.compareTo(BigDecimal.ZERO) > 0) {
userPayUavWalletVO.setOrderStatus(999); ApplyRefundVO applyRefundVO = wxRefund(leaseOrderDO);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken()); applyRefundVO.setRefund(otherPledge.multiply(BigDecimal.valueOf(100)).longValue());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) { ResultBody refundOtherPledge = paymentAppApi.applyRefund(applyRefundVO, currentAccount.getToken());
return resultBody; if (!refundOtherPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
} return refundOtherPledge;
// 进行多余的押金退回 }
if ((shareCashPledge.compareTo(BigDecimal.ZERO) > 0 || salaryCashPledge.compareTo(BigDecimal.ZERO) > 0)) {
moneyRefund(shareCashPledge, salaryCashPledge, currentAccount, leaseOrderDO);
} }
} else { if (isModifiedConfirmed) {
if (otherPledge.compareTo(operatingDeposit) >= 0) { // 进行平台打款
// 云享金押金+余额押金+其他押金足够抵扣 return businessIncome(currentAccount, id, leaseOrderDO);
otherPledge = otherPledge.subtract(operatingDeposit);
} }
} if (isRefund) {
// 退回微信支付的押金部分 // 退回微信的钱
if (otherPledge != null && otherPledge.compareTo(BigDecimal.ZERO) > 0) { if (leaseOrderDO.getOtherAmount().compareTo(BigDecimal.ZERO) > 0) {
ApplyRefundVO applyRefundVO = wxRefund(leaseOrderDO); ApplyRefundVO applyRefundVO = wxRefund(leaseOrderDO);
applyRefundVO.setRefund(otherPledge.multiply(BigDecimal.valueOf(100)).longValue()); applyRefundVO.setRefund((leaseOrderDO.getOtherPledge().add(leaseOrderDO.getOtherAmount())).multiply(BigDecimal.valueOf(100)).longValue());
ResultBody refundOtherPledge = paymentAppApi.applyRefund(applyRefundVO, currentAccount.getToken()); ResultBody refundOtherPledge = paymentAppApi.applyRefund(applyRefundVO, currentAccount.getToken());
if (!refundOtherPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) { if (!refundOtherPledge.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return refundOtherPledge; return refundOtherPledge;
}
}
if (leaseOrderDO.getShareAmount().compareTo(BigDecimal.ZERO) > 0 || leaseOrderDO.getSalaryAmount().compareTo(BigDecimal.ZERO) > 0) {
// 退回云享金及余额
PayUavWalletVO userPayUavWalletVO = new PayUavWalletVO();
userPayUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId());
userPayUavWalletVO.setCashAmount(leaseOrderDO.getShareAmount());
userPayUavWalletVO.setSalaryAmount(leaseOrderDO.getSalaryAmount());
userPayUavWalletVO.setRemark("租赁订单退款");
userPayUavWalletVO.setOrderStatus(1700);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return resultBody;
}
}
// 修改退款操状态
this.updateLeaseOrderStatus(id, LeaseOrderStatus.CLOSE);
} }
return ResultBody.success();
} else {
return ResultBody.error("状态流程有误");
} }
// 进行平台打款
return businessIncome(currentAccount, id, leaseOrderDO);
} }
@Override @Override
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论