From f61293e97bb2cb21c8f49e88b1ae5a3cbadefb6a Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 25 Dec 2023 16:40:09 +0800
Subject: [PATCH] 富文本框输入版本变化
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 61 +++++++++++++++++++++++++++++-
1 files changed, 58 insertions(+), 3 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index e8d3ee8..0852804 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -82,6 +82,7 @@
private final IApiMallTeamLeaderService iApiMallTeamLeaderService;
private final IMallElectronicFenceService iMallElectronicFenceService;
private final MallElectronicFenceMapper mallElectronicFenceMapper;
+ private final MallMemberWalletMapper mallMemberWalletMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -344,6 +345,11 @@
throw new FebsException("订单状态不能支付");
}
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(member.getId());
+ if (ObjectUtil.isEmpty(mallMemberWallet)) {
+ throw new FebsException("用户钱包不存在。");
+ }
+
String payResultStr = "";
String wxResultStr = "";
switch (payOrderDto.getType()) {
@@ -373,14 +379,63 @@
agentProducer.sendOrderReturn(orderInfo.getId());
break;
case "3":
- payResultStr = balancePay(orderInfo, payOrderDto.getTradePwd(), "balance");
+ BigDecimal score = mallMemberWallet.getScore();//积分
+ BigDecimal balance = mallMemberWallet.getBalance();//余额
+
+ //这里将运费定义成折扣总金额
+ /**
+ * 积分 + 余额 1:1来折扣支付金额
+ */
+ BigDecimal total = orderInfo.getAmount();
+ BigDecimal totalCarriage = BigDecimal.ZERO;//总折扣金额
+ BigDecimal memberAmount = score.add(balance);//用户积分加余额总数
+ if(memberAmount.compareTo(BigDecimal.ZERO) > 0){
+ //折扣金额
+ if(total.compareTo(memberAmount) >= 0){
+ totalCarriage = memberAmount;
+ }else{
+ 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);
+ }
+ }
+ orderInfo.setCarriage(totalCarriage);
+ payResultStr = "支付成功";
+// payResultStr = balancePay(orderInfo, payOrderDto.getTradePwd(), "balance");
orderInfo.setPayOrderNo(orderInfo.getOrderNo());
orderInfo.setPayMethod("余额支付");
- orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
+ orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
+// orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
orderInfo.setPayTime(new Date());
orderInfo.setPayResult(1);
- orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
+ orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_FINISH.getValue());
+// orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
// boolean hasTc = false;
// // 静态倍数
--
Gitblit v1.9.1