From c5b60fbff8008c95cef0236ea520041a43151d19 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 06 Apr 2023 23:03:13 +0800
Subject: [PATCH] 在mq之前,先更新订单状态

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 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 1a380ba..aea0a76 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
@@ -342,6 +342,7 @@
                 orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
                 orderInfo.setPayTime(new Date());
                 orderInfo.setPayResult("1");
+                this.baseMapper.updateById(orderInfo);
 
                 changeWallet(orderInfo.getId());
                 /**
@@ -448,6 +449,7 @@
          * 所有合伙人补贴至消费礼包的三倍额度需要复购一次。
          */
         BigDecimal scoreSum = BigDecimal.ZERO;
+        BigDecimal achieveSum = BigDecimal.ZERO;
         List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId());
         if (CollUtil.isNotEmpty(orderItems)) {
             for (MallOrderItem orderItem : orderItems) {
@@ -488,6 +490,11 @@
                             new BigDecimal(mallGoods.getPresentPrice())
                                     .multiply(new BigDecimal(orderItem.getCnt()))
                                     .multiply(basePercent)
+                                    .abs()
+                                    .setScale(2,BigDecimal.ROUND_DOWN));
+                    achieveSum = achieveSum.add(
+                            new BigDecimal(mallGoods.getPresentPrice())
+                                    .multiply(new BigDecimal(orderItem.getCnt()))
                                     .abs()
                                     .setScale(2,BigDecimal.ROUND_DOWN));
                 }
@@ -608,13 +615,15 @@
         /**
          * 产生一条业绩记录
          */
-        MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
-        mallAchieveRecord.setMemberId(memberId);
-        mallAchieveRecord.setAchieveTime(new Date());
-        mallAchieveRecord.setAmount(orderInfo.getAmount().subtract(orderInfo.getScoreAmount()));
-        mallAchieveRecord.setOrderId(orderId);
-        mallAchieveRecord.setPayTime(orderInfo.getPayTime());
-        mallAchieveRecordMapper.insert(mallAchieveRecord);
+        if(achieveSum.compareTo(BigDecimal.ZERO) > 0){
+            MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
+            mallAchieveRecord.setMemberId(memberId);
+            mallAchieveRecord.setAchieveTime(new Date());
+            mallAchieveRecord.setAmount(achieveSum.subtract(orderInfo.getScoreAmount()));
+            mallAchieveRecord.setOrderId(orderId);
+            mallAchieveRecord.setPayTime(orderInfo.getPayTime());
+            mallAchieveRecordMapper.insert(mallAchieveRecord);
+        }
     }
 
     public static void main(String[] args) {

--
Gitblit v1.9.1