| | |
| | | } |
| | | order.setOrderStatus(5); |
| | | this.updateById(order); |
| | | refundPayMoney(order); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 返回订单支付金额和回退积分和会员等级 |
| | | * @param order |
| | | */ |
| | | public void refundPayMoney(Order order){ |
| | | //开始退款 |
| | | Integer payMethod = order.getPayMethod(); |
| | | BigDecimal paymentAmount = order.getPaymentAmount(); |
| | |
| | | } |
| | | if(2 == payMethod){ |
| | | //余额退款 |
| | | OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, orderId)); |
| | | OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, order.getId())); |
| | | BigDecimal balance = appUser.getBalance(); |
| | | appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | appUser.setBalance(balance.add(paymentAmount).setScale(2, RoundingMode.HALF_EVEN)); |
| | | appUser.setShopAmount(appUser.getShopAmount().subtract(paymentAmount).setScale(2, RoundingMode.HALF_EVEN)); |
| | | |
| | | |
| | | //构建账户余额流水明细 |
| | | BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); |
| | | balanceChangeRecord.setOrderId(orderId); |
| | | balanceChangeRecord.setOrderId(order.getId()); |
| | | balanceChangeRecord.setAppUserId(order.getAppUserId()); |
| | | balanceChangeRecord.setChangeType(6); |
| | | balanceChangeRecord.setBeforeAmount(balance); |
| | |
| | | if(3 == payMethod){ |
| | | //积分退款 |
| | | appUser.setLavePoint(appUser.getLavePoint() + order.getPoint()); |
| | | |
| | | |
| | | //开始运费退款,积分支付,运费是单独进行支付的,所以需要单独退款 |
| | | if(null != order.getExpressAmount() && BigDecimal.ZERO.compareTo(order.getExpressAmount()) < 0){ |
| | | BigDecimal expressAmount = order.getExpressAmount(); |
| | |
| | | } |
| | | if(2 == order.getExpressPayMethod()){ |
| | | //余额退款 |
| | | OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, orderId)); |
| | | OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, order.getId())); |
| | | BigDecimal balance = appUser.getBalance(); |
| | | appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN)); |
| | | appUser.setBalance(balance.add(expressAmount).setScale(2, RoundingMode.HALF_EVEN)); |
| | | //构建账户余额流水明细 |
| | | BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); |
| | | balanceChangeRecord.setOrderId(orderId); |
| | | balanceChangeRecord.setOrderId(order.getId()); |
| | | balanceChangeRecord.setAppUserId(order.getAppUserId()); |
| | | balanceChangeRecord.setChangeType(6); |
| | | balanceChangeRecord.setBeforeAmount(balance); |
| | |
| | | userPoint.setBalance(appUser.getLavePoint()); |
| | | userPoint.setCreateTime(LocalDateTime.now()); |
| | | userPoint.setAppUserId(order.getAppUserId()); |
| | | userPoint.setObjectId(orderId); |
| | | userPoint.setObjectId(order.getId()); |
| | | userPointClient.saveUserPoint(userPoint); |
| | | appUserClient.editAppUserById(appUser); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |