| | |
| | | totalCarriage = total; |
| | | } |
| | | //减少用户积分和余额 |
| | | |
| | | BigDecimal avaAmount = totalCarriage;//剩余需要折扣的金额 |
| | | if(avaAmount.compareTo(memberAmount) >= 0){ |
| | | //清零用户的积分和余额 |
| | | mallMemberWallet.setBalance(BigDecimal.ZERO); |
| | | mallMemberWallet.setScore(BigDecimal.ZERO); |
| | | mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); |
| | | }else{ |
| | | /** |
| | | * 先扣积分,再扣余额 |
| | | */ |
| | | if(avaAmount.compareTo(score) >= 0){ |
| | | mallMemberWallet.setScore(BigDecimal.ZERO); |
| | | avaAmount = avaAmount.subtract(score); |
| | | }else{ |
| | | mallMemberWallet.setScore(score.subtract(avaAmount)); |
| | | avaAmount = BigDecimal.ZERO; |
| | | } |
| | | //积分不够 |
| | | if(avaAmount.compareTo(BigDecimal.ZERO) > 0){ |
| | | mallMemberWallet.setBalance(balance.subtract(avaAmount)); |
| | | }else{ |
| | | mallMemberWallet.setBalance(balance); |
| | | } |
| | | mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); |
| | | } |
| | | // BigDecimal avaAmount = totalCarriage;//剩余需要折扣的金额 |
| | | // if(avaAmount.compareTo(memberAmount) >= 0){ |
| | | // //清零用户的积分和余额 |
| | | // mallMemberWallet.setBalance(BigDecimal.ZERO); |
| | | // mallMemberWallet.setScore(BigDecimal.ZERO); |
| | | // mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); |
| | | // }else{ |
| | | // /** |
| | | // * 先扣积分,再扣余额 |
| | | // */ |
| | | // if(avaAmount.compareTo(score) >= 0){ |
| | | // mallMemberWallet.setScore(BigDecimal.ZERO); |
| | | // avaAmount = avaAmount.subtract(score); |
| | | // }else{ |
| | | // mallMemberWallet.setScore(score.subtract(avaAmount)); |
| | | // avaAmount = BigDecimal.ZERO; |
| | | // } |
| | | // //积分不够 |
| | | // if(avaAmount.compareTo(BigDecimal.ZERO) > 0){ |
| | | // mallMemberWallet.setBalance(balance.subtract(avaAmount)); |
| | | // }else{ |
| | | // mallMemberWallet.setBalance(balance); |
| | | // } |
| | | // mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); |
| | | // } |
| | | } |
| | | orderInfo.setCarriage(totalCarriage); |
| | | } |
| | |
| | | } |
| | | // mallOrderInfo.setPayResult(2); |
| | | mallOrderInfoMapper.updateById(mallOrderInfo); |
| | | //减少用户积分和余额 |
| | | if(ObjectUtil.isNotEmpty(mallOrderInfo.getMemberId())){ |
| | | MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallOrderInfo.getMemberId()); |
| | | BigDecimal totalCarriage = mallOrderInfo.getCarriage(); |
| | | BigDecimal score = mallMemberWallet.getScore(); |
| | | BigDecimal balance = mallMemberWallet.getBalance(); |
| | | BigDecimal memberAmount = score.add(balance); |
| | | BigDecimal avaAmount = totalCarriage;//剩余需要折扣的金额 |
| | | if(avaAmount.compareTo(memberAmount) >= 0){ |
| | | //清零用户的积分和余额 |
| | | mallMemberWallet.setBalance(BigDecimal.ZERO); |
| | | mallMemberWallet.setScore(BigDecimal.ZERO); |
| | | mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); |
| | | }else{ |
| | | /** |
| | | * 先扣积分,再扣余额 |
| | | */ |
| | | if(avaAmount.compareTo(score) >= 0){ |
| | | mallMemberWallet.setScore(BigDecimal.ZERO); |
| | | avaAmount = avaAmount.subtract(score); |
| | | }else{ |
| | | mallMemberWallet.setScore(score.subtract(avaAmount)); |
| | | avaAmount = BigDecimal.ZERO; |
| | | } |
| | | //积分不够 |
| | | if(avaAmount.compareTo(BigDecimal.ZERO) > 0){ |
| | | mallMemberWallet.setBalance(balance.subtract(avaAmount)); |
| | | }else{ |
| | | mallMemberWallet.setBalance(balance); |
| | | } |
| | | mallMemberWalletMapper.updateBalanceScoreWithId(mallMemberWallet); |
| | | } |
| | | } |
| | | // 发起付款码支付请求 |
| | | String payResult = xcxCodePayService.pay(mallOrderInfo); |
| | | BigDecimal amount = mallOrderInfo.getAmount(); |
| | | BigDecimal carriage = mallOrderInfo.getCarriage(); |
| | | String payResult = "支付成功"; |
| | | if(amount.subtract(carriage).compareTo(BigDecimal.ZERO) > 0){ |
| | | payResult = xcxCodePayService.pay(mallOrderInfo); |
| | | } |
| | | return new FebsResponse().success().message(payResult); |
| | | } |
| | | |