提交 cccd6ef6 作者: xiaowang

平台确认

上级 02f02f08
...@@ -656,53 +656,82 @@ public class LeaseOrderServiceImpl implements LeaseOrderService { ...@@ -656,53 +656,82 @@ public class LeaseOrderServiceImpl implements LeaseOrderService {
public ResultBody pfConfirmOrderWare(BaseAccountDTO currentAccount, LeaseOrderRefundVO param) { public ResultBody pfConfirmOrderWare(BaseAccountDTO currentAccount, LeaseOrderRefundVO param) {
LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(param.getOrderId()); LeaseOrderDO leaseOrderDO = leaseOrderDao.detail(param.getOrderId());
log.info("leaseOrderDO:{}", JSONObject.toJSONString(leaseOrderDO)); log.info("leaseOrderDO:{}", JSONObject.toJSONString(leaseOrderDO));
if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.WAITING_MERCHANT_CONFIRM.getCode()) || leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.APPLY_REFUND.getCode())) {
boolean isWaitingMerchantConfirm = leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.WAITING_MERCHANT_CONFIRM.getCode());
boolean isApplyRefund = leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.APPLY_REFUND.getCode());
if (isWaitingMerchantConfirm || isApplyRefund) {
if (param.getDamage().equals(0)) { if (param.getDamage().equals(0)) {
// 解冻用户钱包金额 // 解冻用户钱包金额
if (leaseOrderDO.getShareAmount().compareTo(BigDecimal.ZERO) > 0 || leaseOrderDO.getSalaryAmount().compareTo(BigDecimal.ZERO) > 0 BigDecimal shareAmount = leaseOrderDO.getShareAmount();
|| leaseOrderDO.getShareCashPledge().compareTo(BigDecimal.ZERO) > 0 || leaseOrderDO.getSalaryCashPledge().compareTo(BigDecimal.ZERO) > 0) { BigDecimal salaryAmount = leaseOrderDO.getSalaryAmount();
if (shareAmount.compareTo(BigDecimal.ZERO) > 0 || salaryAmount.compareTo(BigDecimal.ZERO) > 0) {
PayUavWalletVO userPayUavWalletVO = new PayUavWalletVO(); PayUavWalletVO userPayUavWalletVO = new PayUavWalletVO();
userPayUavWalletVO.setRemark("租赁订单金额解冻"); userPayUavWalletVO.setRemark("租赁订单金额解冻");
userPayUavWalletVO.setCashAmount(leaseOrderDO.getShareAmount()); userPayUavWalletVO.setCashAmount(shareAmount.add(leaseOrderDO.getShareCashPledge()));
userPayUavWalletVO.setSalaryAmount(leaseOrderDO.getSalaryAmount()); userPayUavWalletVO.setSalaryAmount(salaryAmount.add(leaseOrderDO.getSalaryCashPledge()));
userPayUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId()); userPayUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId());
userPayUavWalletVO.setOrderStatus(999); userPayUavWalletVO.setOrderStatus(isWaitingMerchantConfirm ? 999 : 1400);
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken()); ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) { if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody; return resultBody;
} }
// 退回微信支付的押金部分
if (leaseOrderDO.getOtherPledge().compareTo(BigDecimal.ZERO) > 0) {
ApplyRefundVO applyRefundVO = new ApplyRefundVO();
applyRefundVO.setOutTradeNo(leaseOrderDO.getOrderNo());
applyRefundVO.setReason("租赁押金退款");
applyRefundVO.setRefund(leaseOrderDO.getOtherPledge().multiply(BigDecimal.valueOf(100)).longValue());
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) {
BigDecimal shareCashPledge = leaseOrderDO.getShareCashPledge();
BigDecimal salaryCashPledge = leaseOrderDO.getSalaryCashPledge();
if ((shareCashPledge.compareTo(BigDecimal.ZERO) > 0 || salaryCashPledge.compareTo(BigDecimal.ZERO) > 0)) {
userPayUavWalletVO.setRemark("租赁押金退回");
userPayUavWalletVO.setCashAmount(shareCashPledge);
userPayUavWalletVO.setSalaryAmount(salaryCashPledge);
userPayUavWalletVO.setUserAccountId(leaseOrderDO.getUserAccountId());
userPayUavWalletVO.setOrderStatus(1600);
ResultBody giveBackPledge = userAppApi.feignPayUavWallet(userPayUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return giveBackPledge;
}
}
}
} }
BigDecimal thirdAmount = leaseOrderDO.getOrderTotalAmount().multiply( if (isWaitingMerchantConfirm) {
BigDecimal.valueOf(100).subtract(UavOrderProportion.PROPORTION).divide(BigDecimal.valueOf(100))); BigDecimal thirdAmount = leaseOrderDO.getOrderTotalAmount().multiply(
PayUavWalletVO payUavWalletVO = new PayUavWalletVO(); BigDecimal.valueOf(100).subtract(UavOrderProportion.PROPORTION).divide(BigDecimal.valueOf(100)));
payUavWalletVO.setSalaryAmount(thirdAmount); PayUavWalletVO payUavWalletVO = new PayUavWalletVO();
payUavWalletVO.setCashAmount(BigDecimal.ZERO); payUavWalletVO.setSalaryAmount(thirdAmount);
payUavWalletVO.setRemark("租赁订单收入,订单编号" + leaseOrderDO.getOrderNo()); payUavWalletVO.setCashAmount(BigDecimal.ZERO);
payUavWalletVO.setOrderStatus(1500); payUavWalletVO.setRemark("租赁订单收入,订单编号" + leaseOrderDO.getOrderNo());
// 拿到商家管理员的用户id payUavWalletVO.setOrderStatus(1500);
ResultBody managerRes = userAppApi.getManagerIdByBackUserId(leaseOrderDO.getThirdBackUserAccountId(), null); // 拿到商家管理员的用户id
if (!managerRes.getCode().equals(ResultEnum.SUCCESS.getResultCode())) { ResultBody managerRes = userAppApi.getManagerIdByBackUserId(leaseOrderDO.getThirdBackUserAccountId(), null);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); if (!managerRes.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
return managerRes; return managerRes;
} }
payUavWalletVO.setUserAccountId((Integer) managerRes.getResult()); payUavWalletVO.setUserAccountId((Integer) managerRes.getResult());
ResultBody resultBody = userAppApi.feignPayUavWallet(payUavWalletVO, currentAccount.getToken()); ResultBody resultIncomeBody = userAppApi.feignPayUavWallet(payUavWalletVO, currentAccount.getToken());
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) { if (!resultIncomeBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return resultIncomeBody;
return resultBody; }
} leaseOrderDao.updateLeaseOrderProportion(leaseOrderDO.getId(), UavOrderProportion.PROPORTION.intValue());
leaseOrderDao.updateLeaseOrderProportion(leaseOrderDO.getId(), UavOrderProportion.PROPORTION.intValue());
if (leaseOrderDO.getStatusCode().equals(LeaseOrderStatus.WAITING_MERCHANT_CONFIRM.getCode())) {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.REMAIN_TO_BE_EVALUATED); this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.REMAIN_TO_BE_EVALUATED);
} else {
this.updateLeaseOrderStatus(param.getOrderId(), LeaseOrderStatus.CLOSE);
} }
} else {
// todo 进行相应赔偿
} }
} else { } else {
return ResultBody.error("状态流程有误,请重试!"); // todo 进行相应赔偿
} }
return ResultBody.success(); return ResultBody.success();
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论