From 5228e24ff93fae148db40c44d9deb8e93110c6eb Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 14 二月 2025 17:16:21 +0800
Subject: [PATCH] 开发新增加功能

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |   36 +++++++++++++++++++++++++-----------
 1 files changed, 25 insertions(+), 11 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 161c5ab..77dae76 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
@@ -59,6 +59,7 @@
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -789,9 +790,20 @@
         if(ToolUtil.isNotEmpty(remark)){
             if(ToolUtil.isNotEmpty(remark)){
                 List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+                List<String> list = Arrays.asList(remark.split(" "));
                 for(SensitiveWords s : sensitiveWords){
-                    remark = remark.replaceAll(s.getContent(), "***");
+                    List<String> str = new ArrayList<>();
+                    String lowerCase = s.getContent().toLowerCase();
+                    for (String s1 : list) {
+                        if(lowerCase.equals(s1.toLowerCase())){
+                            str.add("***");
+                        }else{
+                            str.add(s1);
+                        }
+                    }
+                    list = str;
                 }
+                remark = list.stream().collect(Collectors.joining(" "));
             }
         }
 
@@ -902,15 +914,20 @@
         //修改行程信息
         if(orderPrivateCar.getState() == 10 || orderPrivateCar.getState() == 12){
             Car car = carService.selectById(orderPrivateCar.getCarId());
-            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
+            boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, orderPrivateCar.getTripId(), null, null, null, null);
             if(!updateTrip){
                 for (int i = 0; i < 5; i++) {
-                    updateTrip = fleetEngineUtil.updateTrip("CANCELED", car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
+                    updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, orderPrivateCar.getTripId(), null, null, null, null);
                     if(updateTrip){
+                        orderPrivateCar.setIsover(1);
+                        this.updateById(orderPrivateCar);
                         break;
                     }
                     Thread.sleep(3000L);
                 }
+            }else{
+                orderPrivateCar.setIsover(1);
+                this.updateById(orderPrivateCar);
             }
         }
         //添加消息
@@ -1258,7 +1275,7 @@
 
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public ResultUtil payPrivateCarOrder(Integer payType, Integer bankCardId, Integer orderId, Integer couponId, Integer redDeduction, Integer type, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
         if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
@@ -1323,10 +1340,9 @@
         if(null != redDeduction && 1 == redDeduction && null == orderPrivateCar.getRedPacketId()){
             RedEnvelopePaymentSettings redEnvelopePaymentSettings = redEnvelopePaymentSettingsService.getRedEnvelopePaymentSettings();
             if(null != redEnvelopePaymentSettings){
-                Double total = userRedPacketRecordService.queryRemainingAmount(uid);
                 List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>().eq("userId", uid)
                         .eq("state", 1).eq("companyId", orderPrivateCar.getCompanyId()).gt("remainingAmount", 0).orderBy("insertTime", false));
-    
+                Double total = userRedPacketRecords.stream().mapToDouble(UserRedPacketRecord::getRemainingAmount).sum();
                 BigDecimal deductionRatio = redEnvelopePaymentSettings.getDeductionRatio();
                 BigDecimal multiply1 = orderMoney.multiply(deductionRatio.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_EVEN);
                 if(total > 0 && multiply1.doubleValue() > 0 && total.compareTo(multiply1.doubleValue()) >= 0){
@@ -1336,12 +1352,10 @@
                     //获取红包id
                     JSONArray jsonArray = new JSONArray();
                     for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
-                        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());
@@ -1354,14 +1368,14 @@
                             jsonObject.put("money", multiply1.setScale(2, RoundingMode.HALF_EVEN));
                             jsonArray.add(jsonObject);
                             multiply1 = BigDecimal.ZERO;
+                            break;
                         }
                     }
                     if(userRedPacketRecords.size() > 0){
                         userRedPacketRecordService.updateBatchById(userRedPacketRecords);
                     }
                     orderPrivateCar.setRedPacketId(jsonArray.toJSONString());
-                }
-                if(total > 0 && total.compareTo(multiply1.doubleValue()) < 0){
+                }else if(total > 0 && total.compareTo(multiply1.doubleValue()) < 0){
                     orderPrivateCar.setRedPacketMoney(total);
                     orderMoney = orderMoney.subtract(new BigDecimal(total)).setScale(2, RoundingMode.HALF_EVEN);
                     //获取红包id

--
Gitblit v1.7.1