From 13d2bd6a27f941cfd8f096a7ae2def858a565363 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期三, 04 九月 2024 11:01:34 +0800
Subject: [PATCH] 修改2.0 bug

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   40 +++++++++++++++-------------------------
 1 files changed, 15 insertions(+), 25 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 350283b..e85c825 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -1259,12 +1259,12 @@
                     //获取红包id
                     JSONArray jsonArray = new JSONArray();
                     for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
-                        JSONObject jsonObject = new JSONObject();
-                        jsonObject.put("id", userRedPacketRecord.getId());
-                        BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount());
                         if(multiply1.compareTo(BigDecimal.ZERO) == 0){
                             break;
                         }
+                        JSONObject jsonObject = new JSONObject();
+                        jsonObject.put("id", userRedPacketRecord.getId());
+                        BigDecimal remainingAmount = new BigDecimal(userRedPacketRecord.getRemainingAmount());
                         if(multiply1.compareTo(remainingAmount) >= 0){
                             userRedPacketRecord.setRemainingAmount(0D);
                             userRedPacketRecord.setEndTime(new Date());
@@ -1272,14 +1272,15 @@
                             multiply1 = multiply1.subtract(remainingAmount).setScale(2, RoundingMode.HALF_EVEN);
                             jsonObject.put("money", remainingAmount);
                             jsonArray.add(jsonObject);
-                            userRedPacketRecordService.updateById(userRedPacketRecord);
                         }else if(remainingAmount.compareTo(multiply1) > 0){
                             userRedPacketRecord.setRemainingAmount(remainingAmount.subtract(multiply1).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
                             jsonObject.put("money", multiply1);
                             jsonArray.add(jsonObject);
-                            userRedPacketRecordService.updateById(userRedPacketRecord);
                             multiply1 = BigDecimal.ZERO;
                         }
+                    }
+                    if(userRedPacketRecords.size() > 0){
+                        userRedPacketRecordService.updateBatchById(userRedPacketRecords);
                     }
                     orderPrivateCar.setRedPacketId(jsonArray.toJSONString());
                 }
@@ -1288,29 +1289,18 @@
                     orderMoney = orderMoney.subtract(new BigDecimal(total)).setScale(2, RoundingMode.HALF_EVEN);
                     //获取红包id
                     JSONArray jsonArray = new JSONArray();
-                    BigDecimal multiply = new BigDecimal(total);
                     for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
                         JSONObject jsonObject = new JSONObject();
                         jsonObject.put("id", userRedPacketRecord.getId());
-                        BigDecimal remainingAmount = BigDecimal.valueOf(userRedPacketRecord.getRemainingAmount());
-                        if(multiply.compareTo(BigDecimal.ZERO) == 0){
-                            break;
-                        }
-                        if(multiply.compareTo(remainingAmount) >= 0){
-                            userRedPacketRecord.setRemainingAmount(0D);
-                            userRedPacketRecord.setEndTime(new Date());
-                            userRedPacketRecord.setState(2);
-                            multiply = multiply.subtract(remainingAmount).setScale(2, RoundingMode.HALF_EVEN);
-                            jsonObject.put("money", remainingAmount);
-                            jsonArray.add(jsonObject);
-                            userRedPacketRecordService.updateById(userRedPacketRecord);
-                        }else if(remainingAmount.compareTo(multiply) > 0){
-                            userRedPacketRecord.setRemainingAmount(remainingAmount.subtract(multiply).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
-                            jsonObject.put("money", multiply);
-                            jsonArray.add(jsonObject);
-                            userRedPacketRecordService.updateById(userRedPacketRecord);
-                            multiply = BigDecimal.ZERO;
-                        }
+                        jsonObject.put("money", userRedPacketRecord.getRemainingAmount());
+                        jsonArray.add(jsonObject);
+    
+                        userRedPacketRecord.setRemainingAmount(0D);
+                        userRedPacketRecord.setEndTime(new Date());
+                        userRedPacketRecord.setState(2);
+                    }
+                    if(userRedPacketRecords.size() > 0){
+                        userRedPacketRecordService.updateBatchById(userRedPacketRecords);
                     }
                     orderPrivateCar.setRedPacketId(jsonArray.toJSONString());
                 }

--
Gitblit v1.7.1