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

---
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java                 |   50 +++---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java        |   44 ++---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                     |   36 ++--
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java                       |    6 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java           |    6 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java                                   |    6 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java  |   64 +++++++-
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java |   58 ++++++-
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java    |    8 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml               |    2 
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java              |   46 +++++-
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java         |   40 ++---
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java           |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml              |    2 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java                     |    6 
 15 files changed, 231 insertions(+), 145 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index 614f715..add9fcb 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -1986,7 +1986,7 @@
                                     Element rewardToday_award = document1.getElementById("rewardToday_award");
                                     rewardToday_award.text("奖金 GHS" + driverActivityHistory.getMoney());
                                     Element rewardToday_content = document1.getElementById("rewardToday_content");
-                                    rewardToday_content.text("邀请司机注册即可获得奖励。<br/>注意此活动是有时间限制的,详情请查看I-GO平台。");
+                                    rewardToday_content.html("邀请司机注册即可获得奖励。<br/>注意此活动是有时间限制的,详情请查看I-GO平台。");
                                 }
                                 if (2 == language) {
                                     document1.getElementById("chinese").remove();
@@ -2007,7 +2007,7 @@
                                     Element rewardToday1_award = document1.getElementById("rewardToday1_award");
                                     rewardToday1_award.text("GHS " + driverActivityHistory.getMoney() + " BONUS");
                                     Element rewardToday1_content = document1.getElementById("rewardToday1_content");
-                                    rewardToday1_content.text("Invite drivers to register to get the bonus.<br/>Note that this is a limited-time offer. Check your app for more details.");
+                                    rewardToday1_content.html("Invite drivers to register to get the bonus.<br/>Note that this is a limited-time offer. Check your app for more details.");
                                 }
                                 if (3 == language) {
                                     document1.getElementById("chinese").remove();
@@ -2028,7 +2028,7 @@
                                     Element rewardToday2_award = document1.getElementById("rewardToday2_award");
                                     rewardToday2_award.text("Bonus GHS " + driverActivityHistory.getMoney());
                                     Element rewardToday2_content = document1.getElementById("rewardToday2_content");
-                                    rewardToday2_content.text("Invitez les chauffeurs à s’inscrire pour obtenir le bonus.<br/>Notez qu’il s’agit d’une offre d’une durée limitée. Consultez votre application pour plus de détails.");
+                                    rewardToday2_content.html("Invitez les chauffeurs à s’inscrire pour obtenir le bonus.<br/>Notez qu’il s’agit d’une offre d’une durée limitée. Consultez votre application pour plus de détails.");
                                 }
                                 EmailUtil.send(driver.getEmail(), language == 1 ? "邀请司机奖励(活动)" : language == 2 ? "Invite drivers and earn" : "Invitez des chauffeurs et gagnez de l’argent", document1.html());
                                 String randomString = ToolUtil.getRandomString(10);
@@ -2109,7 +2109,7 @@
                                     Element rewardToday_award = document1.getElementById("rewardToday_award");
                                     rewardToday_award.text("奖金 GHS" + driverActivityHistory.getMoney());
                                     Element rewardToday_content = document1.getElementById("rewardToday_content");
-                                    rewardToday_content.text("邀请用户注册即可获得奖励。<br/> 注意此活动是有时间限制的,详情请查看I-GO平台。");
+                                    rewardToday_content.html("邀请用户注册即可获得奖励。<br/> 注意此活动是有时间限制的,详情请查看I-GO平台。");
                                 }
                                 if (2 == language) {
                                     document1.getElementById("chinese").remove();
@@ -2130,7 +2130,7 @@
                                     Element rewardToday1_award = document1.getElementById("rewardToday1_award");
                                     rewardToday1_award.text("GHS " + driverActivityHistory.getMoney() + " BONUS");
                                     Element rewardToday1_content = document1.getElementById("rewardToday1_content");
-                                    rewardToday1_content.text("Invite users to register to get the bonus.<br/>Note that this is a limited-time offer. Check your app for more details.");
+                                    rewardToday1_content.html("Invite users to register to get the bonus.<br/>Note that this is a limited-time offer. Check your app for more details.");
                                 }
                                 if (3 == language) {
                                     document1.getElementById("chinese").remove();
@@ -2151,7 +2151,7 @@
                                     Element rewardToday2_award = document1.getElementById("rewardToday2_award");
                                     rewardToday2_award.text("Bonus GHS " + driverActivityHistory.getMoney());
                                     Element rewardToday2_content = document1.getElementById("rewardToday2_content");
-                                    rewardToday2_content.text("Invitez les utilisateurs à s’inscrire pour obtenir le bonus.<br/>Notez qu’il s’agit d’une offre d’une durée limitée. Consultez votre application pour plus de détails.");
+                                    rewardToday2_content.html("Invitez les utilisateurs à s’inscrire pour obtenir le bonus.<br/>Notez qu’il s’agit d’une offre d’une durée limitée. Consultez votre application pour plus de détails.");
                                 }
                                 EmailUtil.send(driver.getEmail(), language == 1 ? "邀请用户奖励(活动)" : language == 2 ? "Invite users and earn" : "Invitez des utilisateurs et gagnez de l’argent", document1.html());
                                 String randomString = ToolUtil.getRandomString(10);
@@ -2233,7 +2233,7 @@
                                     Element rewardToday_award = document1.getElementById("rewardToday_award");
                                     rewardToday_award.text("奖金 GHS" + driverActivityHistory.getMoney());
                                     Element rewardToday_content = document1.getElementById("rewardToday_content");
-                                    rewardToday_content.text("今日累计在线" + driverActivityOnline.getOnline() + "小时即可活动奖励。<br/> 注意此活动是有时间限制的,详情请查看I-GO平台。");
+                                    rewardToday_content.html("今日累计在线" + driverActivityOnline.getOnline() + "小时即可活动奖励。<br/> 注意此活动是有时间限制的,详情请查看I-GO平台。");
                                 }
                                 if (2 == language) {
                                     document1.getElementById("chinese").remove();
@@ -2254,7 +2254,7 @@
                                     Element rewardToday1_award = document1.getElementById("rewardToday1_award");
                                     rewardToday1_award.text("GHS " + driverActivityHistory.getMoney() + " BONUS");
                                     Element rewardToday1_content = document1.getElementById("rewardToday1_content");
-                                    rewardToday1_content.text("Stay online for " + driverActivityOnline.getOnline() + " hours to get the bonus.<br/>Note that this is a limited-time offer. Check your app for more details.");
+                                    rewardToday1_content.html("Stay online for " + driverActivityOnline.getOnline() + " hours to get the bonus.<br/>Note that this is a limited-time offer. Check your app for more details.");
                                 }
                                 if (3 == language) {
                                     document1.getElementById("chinese").remove();
@@ -2275,7 +2275,7 @@
                                     Element rewardToday2_award = document1.getElementById("rewardToday2_award");
                                     rewardToday2_award.text("Bonus GHS " + driverActivityHistory.getMoney());
                                     Element rewardToday2_content = document1.getElementById("rewardToday2_content");
-                                    rewardToday2_content.text("Restez en ligne pendant " + driverActivityOnline.getOnline() + " heures pour obtenir le bonus.<br/>Notez qu’il s’agit d’une offre d’une durée limitée. Consultez votre application pour plus de détails.");
+                                    rewardToday2_content.html("Restez en ligne pendant " + driverActivityOnline.getOnline() + " heures pour obtenir le bonus.<br/>Notez qu’il s’agit d’une offre d’une durée limitée. Consultez votre application pour plus de détails.");
                                 }
                                 EmailUtil.send(driver.getEmail(), language == 1 ? "在线时长奖励(活动)" : language == 2 ? "Online-duration reward activity" : "Activité de récompense en ligne", document1.html());
                                 String randomString = ToolUtil.getRandomString(10);
@@ -2357,7 +2357,7 @@
                                     Element rewardToday_award = document1.getElementById("rewardToday_award");
                                     rewardToday_award.text("奖金 GHS" + driverActivityHistory.getMoney());
                                     Element rewardToday_content = document1.getElementById("rewardToday_content");
-                                    rewardToday_content.text("今日累计完成" + driverActivityOrder.getOrderNum() + "单即可活动奖励。<br/> 注意此活动是有时间限制的,详情请查看I-GO平台。");
+                                    rewardToday_content.html("今日累计完成" + driverActivityOrder.getOrderNum() + "单即可活动奖励。<br/> 注意此活动是有时间限制的,详情请查看I-GO平台。");
                                 }
                                 if (2 == language) {
                                     document1.getElementById("chinese").remove();
@@ -2378,7 +2378,7 @@
                                     Element rewardToday1_award = document1.getElementById("rewardToday1_award");
                                     rewardToday1_award.text("GHS " + driverActivityHistory.getMoney() + " BONUS");
                                     Element rewardToday1_content = document1.getElementById("rewardToday1_content");
-                                    rewardToday1_content.text("Stay online and complete " + driverActivityOrder.getOrderNum() + " trips to get the bonus.<br/>Note that this is a limited-time offer. Check your app for more details.");
+                                    rewardToday1_content.html("Stay online and complete " + driverActivityOrder.getOrderNum() + " trips to get the bonus.<br/>Note that this is a limited-time offer. Check your app for more details.");
                                 }
                                 if (3 == language) {
                                     document1.getElementById("chinese").remove();
@@ -2399,7 +2399,7 @@
                                     Element rewardToday2_award = document1.getElementById("rewardToday2_award");
                                     rewardToday2_award.text("Bonus GHS " + driverActivityHistory.getMoney());
                                     Element rewardToday2_content = document1.getElementById("rewardToday2_content");
-                                    rewardToday2_content.text("Restez en ligne et effectuez " + driverActivityOrder.getOrderNum() + " trajets pour obtenir le bonus.<br/>Notez qu’il s’agit d’une offre d’une durée limitée. Consultez votre application pour plus de détails.");
+                                    rewardToday2_content.html("Restez en ligne et effectuez " + driverActivityOrder.getOrderNum() + " trajets pour obtenir le bonus.<br/>Notez qu’il s’agit d’une offre d’une durée limitée. Consultez votre application pour plus de détails.");
                                 }
                                 EmailUtil.send(driver.getEmail(), language == 1 ? "累计接单奖励(活动)" : language == 2 ? "Cumulative order activity" : "Activité cumulée des commandes", document1.html());
                                 String randomString = ToolUtil.getRandomString(10);
@@ -2502,7 +2502,7 @@
                         Element reward_user = document1.getElementById("reward_user");
                         reward_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
                         Element reward_content = document1.getElementById("reward_content");
-                        reward_content.text("今日累计在线" + dao.getOnline() + "小时,获得奖励GHS" + dah.getMoney() + ",请查收。<br/>详情请查看I-GO平台。");
+                        reward_content.html("今日累计在线" + dao.getOnline() + "小时,获得奖励GHS" + dah.getMoney() + ",请查收。<br/>详情请查看I-GO平台。");
                     }
                     if (2 == language) {
                         document1.getElementById("chinese").remove();
@@ -2521,7 +2521,7 @@
                         Element reward1_user = document1.getElementById("reward1_user");
                         reward1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
                         Element reward1_content = document1.getElementById("reward1_content");
-                        reward1_content.text("You stayed online for " + dao.getOnline() + " hours today, and got a bonus of GHS" + dah.getMoney() + ", please check.<br/>Check your app for more details.");
+                        reward1_content.html("You stayed online for " + dao.getOnline() + " hours today, and got a bonus of GHS" + dah.getMoney() + ", please check.<br/>Check your app for more details.");
                     }
                     if (3 == language) {
                         document1.getElementById("chinese").remove();
@@ -2540,7 +2540,7 @@
                         Element reward2_user = document1.getElementById("reward2_user");
                         reward2_user.text("Cher(ère) " + driver.getFirstName() + "" + driver.getLastName() + ",");
                         Element reward2_content = document1.getElementById("reward2_content");
-                        reward2_content.text("Vous êtes resté en ligne pendant " + dao.getOnline() + " heures aujourd’hui et avez obtenu un bonus de GHS" + dah.getMoney() + ", veuillez vérifier.<br/>Consultez votre application pour plus de détails.");
+                        reward2_content.html("Vous êtes resté en ligne pendant " + dao.getOnline() + " heures aujourd’hui et avez obtenu un bonus de GHS" + dah.getMoney() + ", veuillez vérifier.<br/>Consultez votre application pour plus de détails.");
                     }
                     EmailUtil.send(driver.getEmail(), language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense", document1.html());
                     String randomString = ToolUtil.getRandomString(10);
@@ -2621,7 +2621,7 @@
                         Element reward_user = document1.getElementById("reward_user");
                         reward_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
                         Element reward_content = document1.getElementById("reward_content");
-                        reward_content.text("今日累计接单" + dao.getOrderNum() + "单,获得奖励GHS" + dah.getMoney() + ",请查收。<br/>详情请查看I-GO平台。");
+                        reward_content.html("今日累计接单" + dao.getOrderNum() + "单,获得奖励GHS" + dah.getMoney() + ",请查收。<br/>详情请查看I-GO平台。");
                     }
                     if (2 == language) {
                         document1.getElementById("chinese").remove();
@@ -2640,7 +2640,7 @@
                         Element reward1_user = document1.getElementById("reward1_user");
                         reward1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
                         Element reward1_content = document1.getElementById("reward1_content");
-                        reward1_content.text("You completed " + dao.getOrderNum() + " trips today, and got a bonus of GHS" + dah.getMoney() + ", please check.<br/>Check your app for more details.");
+                        reward1_content.html("You completed " + dao.getOrderNum() + " trips today, and got a bonus of GHS" + dah.getMoney() + ", please check.<br/>Check your app for more details.");
                     }
                     if (3 == language) {
                         document1.getElementById("chinese").remove();
@@ -2659,7 +2659,7 @@
                         Element reward2_user = document1.getElementById("reward2_user");
                         reward2_user.text("Cher(ère) " + driver.getFirstName() + "" + driver.getLastName() + ",");
                         Element reward2_content = document1.getElementById("reward2_content");
-                        reward2_content.text("Vous avez effectué " + dao.getOrderNum() + " trajets aujourd’hui et avez reçu un bonus de GHS" + dah.getMoney() + ", veuillez vérifier.<br/>Consultez votre application pour plus de détails.");
+                        reward2_content.html("Vous avez effectué " + dao.getOrderNum() + " trajets aujourd’hui et avez reçu un bonus de GHS" + dah.getMoney() + ", veuillez vérifier.<br/>Consultez votre application pour plus de détails.");
                     }
 
                     EmailUtil.send(driver.getEmail(), language == 1 ? "司机奖励通知" : language == 2 ? "Reward-driver notice" : "Avis de chauffeur de récompense", document1.html());
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
index 7f03fc2..91c4677 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
@@ -79,11 +79,11 @@
             querySettlementAmount.setAmount(new BigDecimal(sum).add(new BigDecimal(sum1)).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
     
             List<Integer> collect = settlementRecords.stream().map(SettlementRecord::getId).collect(Collectors.toList());
-            Wrapper<SettlementDetail> wrapper = new EntityWrapper<SettlementDetail>().eq("driverId", driverId);
+            Wrapper<SettlementDetail> wrapper = new EntityWrapper<SettlementDetail>();
             if(collect.size() > 0){
-                wrapper.in("settlementRecordId", collect).or().isNull("settlementRecordId");
+                wrapper.eq("driverId", driverId).in("settlementRecordId", collect).or().eq("driverId", driverId).isNull("settlementRecordId");
             }else{
-                wrapper.isNull("settlementRecordId");
+                wrapper.eq("driverId", driverId).isNull("settlementRecordId");
             }
             settlementDetailList = settlementDetailService.selectList(wrapper.orderBy("createTime desc"));
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index 9e0a46b..8715943 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -57,11 +57,11 @@
 	private final static String key = "AIzaSyCG6PsfkaCEc94VK2vIAZk1YYKvOS_Ewts";
 	
 	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
-	
+
 	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
-	
+
 	private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
-	
+
 	private final String provider = "i-go-gcp";
 	
 	@Autowired
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java
index 2db1585..fc00f46 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java
@@ -273,20 +273,52 @@
     public void sendEmail(TUser userInfo1, Integer num, String startTime, String endTime, Double fullMoney){
         try {
             if(ToolUtil.isNotEmpty(userInfo1.getEmail())){
+                Integer language = userInfo1.getLanguage();
                 String path1 = templatePath +  "user/coupon.html";
                 Document document1 = Jsoup.parse(new File(path1), "UTF-8");
-                document1.getElementById("chinese").remove();
-                document1.getElementById("french").remove();
-                document1.getElementsByTag("title").get(0).text("Coupon is in");
-                Element english_user = document1.getElementById("english_user");
-                english_user.text("Hello " + userInfo1.getNickName() + ",");
-                Element english_number = document1.getElementById("english_number");
-                english_number.text("You have received " + num + " coupons");
-                Element english_date = document1.getElementById("english_date");
-                english_date.text("You could use them from " + startTime + " to " + endTime);
-                Element english_remark = document1.getElementById("english_remark");
-                english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + fullMoney + " per ride.");
-                EmailUtil.send(userInfo1.getEmail(), "Coupon is in",  document1.html());
+                if(1 == language){
+                    document1.getElementById("english").remove();
+                    document1.getElementById("french").remove();
+                    document1.getElementsByTag("title").get(0).text("优惠券到账");
+                    Element chinese_user = document1.getElementById("chinese_user");
+                    chinese_user.text("您好 " + userInfo1.getNickName() + ",");
+                    Element chinese_number = document1.getElementById("chinese_number");
+                    chinese_number.text("您有" + num + "张优惠券到账");
+                    Element chinese_date = document1.getElementById("chinese_date");
+                    chinese_date.text("此活动有效期在" + startTime + "至" + endTime + ",详情请查看I-GO平台");
+                    Element chinese_remark = document1.getElementById("chinese_remark");
+                    chinese_remark.text("注意:满减活动,每单消费至少GHS " + fullMoney + ",才可享用。");
+                    EmailUtil.send(userInfo1.getEmail(), "优惠券到账",  document1.html());
+                }
+                if(2 == language){
+                    document1.getElementById("chinese").remove();
+                    document1.getElementById("french").remove();
+                    document1.getElementsByTag("title").get(0).text("Coupon is in");
+                    Element english_user = document1.getElementById("english_user");
+                    english_user.text("Hello " + userInfo1.getNickName() + ",");
+                    Element english_number = document1.getElementById("english_number");
+                    english_number.text("You have received " + num + " coupons");
+                    Element english_date = document1.getElementById("english_date");
+                    english_date.text("You could use them from " + com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, startTime) + " to " + com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, endTime));
+                    Element english_remark = document1.getElementById("english_remark");
+                    english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + fullMoney + " per ride.");
+                    EmailUtil.send(userInfo1.getEmail(), "Coupon is in",  document1.html());
+                }
+                if(3 == language){
+                    document1.getElementById("chinese").remove();
+                    document1.getElementById("english").remove();
+                    document1.getElementsByTag("title").get(0).text("Le coupon est arrivé");
+                    Element french_user = document1.getElementById("french_user");
+                    french_user.text("Cher(ère) " + userInfo1.getNickName() + ",");
+                    Element french_number = document1.getElementById("french_number");
+                    french_number.text("Vous avez reçu " + num + " coupons.");
+                    Element french_date = document1.getElementById("french_date");
+                    french_date.text("Vous devriez les utiliser du " + com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(3, startTime) + " au " + com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(3, endTime) + ", voir le détail sur la plate-forme I-GO.");
+                    Element french_remark = document1.getElementById("french_remark");
+                    french_remark.text("Remarque! Le coupon n'est valable que pour le tarif d'au moins GHS " + fullMoney + " par trajet.");
+                    EmailUtil.send(userInfo1.getEmail(), "Le coupon est arrivé",  document1.html());
+                }
+                
                 //开始生成pdf收据和html收据
                 File file = new File("/home/igotechgh/nginx/html/files/html/");
                 if(!file.exists()){
@@ -307,7 +339,7 @@
                 tEmail.setLink(link);
                 tEmail.setUserId(userInfo1.getId());
                 tEmail.setType(1);
-                tEmail.setName("Coupon is in");
+                tEmail.setName(language == 1 ? "优惠券到账" : language == 2 ? "Coupon is in" : "Le coupon est arrivé");
                 tEmail.setCreateTime(new Date());
                 int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
                 tEmail.setWeek(EmailUtil.getWeek(2,i));
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java
index 2df350a..2466814 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java
@@ -632,6 +632,7 @@
             @Override
             public void run() {
                 try {
+                    Integer language = tDriver.getLanguage();
                     String path = templatePath +  "driver/index.html";
                     Document document = Jsoup.parse(new File(path), "UTF-8");
                     document.getElementById("chinese").remove();
@@ -645,17 +646,42 @@
                     document.getElementById("reward1").remove();
                     document.getElementById("rewardToday1").remove();
                     document.getElementById("driverAudit1").remove();
-
-                    document.getElementsByTag("title").get(0).text(2 == finalTCar.getAuthState() ? "Vehicle is verified and qualified" : "Vehicle is not verified and qualified");
-                    Element car_audit1_user = document.getElementById("car_audit1_user");
-                    car_audit1_user.text("Hello " + tDriver.getFirstName() + " " + tDriver.getLastName() + ",");
-                    Element car_audit1_content = document.getElementById("car_audit1_content");
-                    if(2 == finalTCar.getAuthState()){
-                        car_audit1_content.text("You vehicle application has been approved. See the I-GO platform for details.");
-                    }else{
-                        car_audit1_content.text("We are sorry to inform you that your vehicle application was rejected. Please contact our service for relevant details, call 0577777767 or send e-mail to support@i-go.group");
+                    if(1 == language){
+                        document.getElementsByTag("title").get(0).text(2 == finalTCar.getAuthState() ? "车辆审核通过" : "车辆审核不通过");
+                        Element car_audit1_user = document.getElementById("car_audit1_user");
+                        car_audit1_user.text("Hello " + tDriver.getFirstName() + " " + tDriver.getLastName() + ",");
+                        Element car_audit1_content = document.getElementById("car_audit1_content");
+                        if(2 == finalTCar.getAuthState()){
+                            car_audit1_content.html("您的车辆注册申请已获批准<br>详情请查看I-GO APP");
+                        }else{
+                            car_audit1_content.html("我们很遗憾地通知您: 您的车辆申请已被拒绝。相关详情,请与我们的客服联系,致电0577777767或发送电子邮件至support@i-go.group");
+                        }
+                        EmailUtil.send(tDriver.getEmail(), 2 == finalTCar.getAuthState() ? "车辆审核通过" : "车辆审核不通过",  document.html());
                     }
-                    EmailUtil.send(tDriver.getEmail(), 2 == finalTCar.getAuthState() ? "Vehicle is verified and qualified" : "Vehicle is not verified and qualified",  document.html());
+                    if(2 == language){
+                        document.getElementsByTag("title").get(0).text(2 == finalTCar.getAuthState() ? "Vehicle is verified and qualified" : "Vehicle is not verified and qualified");
+                        Element car_audit2_user = document.getElementById("car_audit2_user");
+                        car_audit2_user.text("Hello " + tDriver.getFirstName() + " " + tDriver.getLastName() + ",");
+                        Element car_audit2_content = document.getElementById("car_audit2_content");
+                        if(2 == finalTCar.getAuthState()){
+                            car_audit2_content.html("Your vehicle application has been approved. <br>See the I-GO platform for details.");
+                        }else{
+                            car_audit2_content.html("We are sorry to inform you that your vehicle application was rejected. Please contact our service for relevant details, call 0577777767 or send e-mail to support@i-go.group");
+                        }
+                        EmailUtil.send(tDriver.getEmail(), 2 == finalTCar.getAuthState() ? "Vehicle is verified and qualified" : "Vehicle is not verified and qualified",  document.html());
+                    }
+                    if(3 == language){
+                        document.getElementsByTag("title").get(0).text(2 == finalTCar.getAuthState() ? "Le véhicule est vérifié et qualifié" : "Le véhicule n’est pas vérifié et qualifié");
+                        Element car_audit3_user = document.getElementById("car_audit3_user");
+                        car_audit3_user.text("Bonjour " + tDriver.getFirstName() + " " + tDriver.getLastName() + ",");
+                        Element car_audit3_content = document.getElementById("car_audit3_content");
+                        if(2 == finalTCar.getAuthState()){
+                            car_audit3_content.html("Votre demande de véhicule a été approuvée.<br>Veuillez consulter la plateforme I-GO pour plus de détails.");
+                        }else{
+                            car_audit3_content.html("Nous avons le regret de vous informer que votre demande de véhicule a été rejetée. Veuillez contacter notre service pour plus de détails, appelez 0577777767 ou envoyez un e-mail à support@i-go.group");
+                        }
+                        EmailUtil.send(tDriver.getEmail(), 2 == finalTCar.getAuthState() ? "Le véhicule est vérifié et qualifié" : "Le véhicule n’est pas vérifié et qualifié",  document.html());
+                    }
                 }catch (Exception e){
                     e.printStackTrace();
                 }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
index 94ba83b..dcd9667 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -614,7 +614,7 @@
                         driver_audit1_user.text("Hello " + tDriver.getFirstName() + " " + tDriver.getLastName() + ",");
                         Element driver_audit1_content = document.getElementById("driver_audit1_content");
                         if(1 == authState){
-                            driver_audit1_content.text("You application has been approved.");
+                            driver_audit1_content.text("Your application has been approved.");
                         }else{
                             driver_audit1_content.text("We are sorry to inform you that your application was rejected. Please contact our service for relevant details, call 0577777767 or send e-mail to support@i-go.group");
                         }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
index d788977..b46e84d 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
@@ -144,17 +144,18 @@
     public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) {
         TPubWithdrawal tPubWithdrawal = tPubWithdrawalService.selectById(id);
         if (SinataUtil.isNotEmpty(tPubWithdrawal)){
-            TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
-            Integer language = tDriver.getLanguage();
             tPubWithdrawal.setRemark(remark);
-
             String serviceCode = "";
             String phone = "";
+            Integer language = null;
             if(tPubWithdrawal.getUserType() == 1){
                 TUser tUser = userService.selectById(tPubWithdrawal.getUserId());
+                language = tUser.getLanguage();
                 serviceCode = tUser.getPhoneOperator();
                 phone = tUser.getPhone();
             }else{
+                TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
+                language = tDriver.getLanguage();
                 serviceCode = tDriver.getPhoneOperator();
                 phone = tDriver.getPhone();
             }
@@ -181,6 +182,7 @@
                     tUser.setBalance(tUser.getBalance().add(tPubWithdrawal.getMoney()));
                     userService.updateById(tUser);
                 }else{
+                    TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
                     tDriver.setBalance(tDriver.getBalance().add(tPubWithdrawal.getMoney()));
                     if(tPubWithdrawal.getType() == 1){//活动提现
                         tDriver.setLaveActivityMoney(new BigDecimal(tDriver.getLaveActivityMoney()).add(tPubWithdrawal.getMoney()).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
index 32c08ec..723d671 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
@@ -332,16 +332,60 @@
                         Double aDouble = map.get(key);
                         String path1 = templatePath +  "user/discount.html";
                         Document document1 = Jsoup.parse(new File(path1), "UTF-8");
-                        document1.getElementById("chinese").remove();
-                        document1.getElementById("french").remove();
-                        document1.getElementsByTag("title").get(0).text("Discount activities");
-                        Element english_user = document1.getElementById("english_user");
-                        english_user.text("Hello " + user.getNickName() + ",");
-                        Element english_ride = document1.getElementById("english_ride");
-                        english_ride.text("Discount for I-GO " + key);
-                        Element english_discount = document1.getElementById("english_discount");
-                        english_discount.text(" Enjoy " + new BigDecimal((100 - aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% off your trip fare.");
-                        EmailUtil.send(user.getEmail(), "Discount activities",  document1.html());
+                        if(1 == language){
+                            document1.getElementById("english").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementsByTag("title").get(0).text("折扣活动");
+                            Element chinese_user = document1.getElementById("chinese_user");
+                            chinese_user.text("您好 " + user.getNickName() + ",");
+                            Element chinese_ride = document1.getElementById("chinese_ride");
+                            chinese_ride.text("I-GO" + key + "打折活动奖励");
+                            Element chinese_go = document1.getElementById("chinese_go");
+                            if("ride".equals(key)){
+                                chinese_go.text("去打车");
+                            }else{
+                                chinese_go.text("寄包裹");
+                            }
+                            Element chinese_discount = document1.getElementById("chinese_discount");
+                            chinese_discount.text("每单费用折扣" + new BigDecimal((100 - aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "%");
+                            EmailUtil.send(user.getEmail(), "折扣活动",  document1.html());
+                        }
+                        if(2 == language){
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementsByTag("title").get(0).text("Discount activities");
+                            Element english_user = document1.getElementById("english_user");
+                            english_user.text("Hello " + user.getNickName() + ",");
+                            Element english_ride = document1.getElementById("english_ride");
+                            english_ride.text("Discount for I-GO " + key);
+                            Element english_go = document1.getElementById("english_go");
+                            if("ride".equals(key)){
+                                english_go.text("REQUEST A RIDE");
+                            }else{
+                                english_go.text("REQUEST A DELIVERY");
+                            }
+                            Element english_discount = document1.getElementById("english_discount");
+                            english_discount.text(" Enjoy " + new BigDecimal((100 - aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% off your trip fare.");
+                            EmailUtil.send(user.getEmail(), "Discount activities",  document1.html());
+                        }
+                        if(3 == language){
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("english").remove();
+                            document1.getElementsByTag("title").get(0).text("Activités à rabais");
+                            Element french_user = document1.getElementById("french_user");
+                            french_user.text("Hello " + user.getNickName() + ",");
+                            Element french_ride = document1.getElementById("french_ride");
+                            french_ride.text("Remise pour I-GO (commande de " + key + ")!");
+                            Element french_go = document1.getElementById("french_go");
+                            if("ride".equals(key)){
+                                french_go.text("Déplacez-vous avec I-GO");
+                            }else{
+                                french_go.text("Demander une livraison avec I-GO");
+                            }
+                            Element french_discount = document1.getElementById("french_discount");
+                            french_discount.text("Profitez aujourd’hui de 10" + new BigDecimal((100 - aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% de réduction sur les commandes de course, allez sur la plate-forme I-GO pour voir le détail.");
+                            EmailUtil.send(user.getEmail(), "Activités à rabais",  document1.html());
+                        }
                         //开始生成pdf收据和html收据
                         File file = new File("/home/igotechgh/nginx/html/files/html/");
                         if(!file.exists()){
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index 087dfcd..ae6e9f6 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -37,32 +37,32 @@
 	
 	private final static String key = "AIzaSyCG6PsfkaCEc94VK2vIAZk1YYKvOS_Ewts";
 	
-//	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-odrd-testing.iam.gserviceaccount.com";
-//
-//	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-odrd-testing.iam.gserviceaccount.com";
-//
-//	private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-odrd-testing.iam.gserviceaccount.com";
-//
-//	private final String serverPrivateKeyId = "254e18eefa9fdcca64d5899cdcd793d466c47c7d";
-//
-//	private final String serverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCfbNAWnukqLKIxItqmSABxsH5glySEHJ2gfL5KsRF0M02e0Z8/KNKZkoh7I6bOMt1fEtttFaWOeq70IdI2WAd5wVazL3upvl5FW4P08ly33LklfGyLljlJ7ChPny9x6OjAaiS0yD9fh7NWti7rZKU7gzcGL8HddNYXgXV5OajvoG3TGdu52WTxce9AUzU6gLPboz/RbGqrdrmgVJVb0EPlhTJf/NSsaiW4NoL8SEzf/pJGYBmqJs97mXwCHTY4avaC+CP/zz9yS8AQEJlApbVT6lSOhYoR0hNOBj5B886EZOssjubO6hQaiwRnGrV2RdpHynqA1iekfGpUGEtWTsqjAgMBAAECggEALyPbMd0iP8y71sCiG4nty7Au5ju62e+mMkbAc9CAwzXKTVxZdLEK+MsJ3TNxBsami47FYC+G6SbgpaJ8iIImD7v5+XjgXZRDRsnlLmAdx2YWPv3YELxGS1PvpX+B5XJDpGWeXfBaQNKc1lZ/cC4t53eIpSUo82UxSvkGNea1S8lR6vIByhNyCQOvLG4yqaxUy0hZi0kge37XrjYMGS+BivBBnDiVlBPLBVbrNBxOf31Lzz+XX0iwXX7Zl2jN759oe0xQyuIGWUSj8xBDIF8nNaJrla7rWVml3sZJh6/3r1Acj0mhZtE0ZMu5hiPGiIXgb1ng30j3dMP4yVPhXrpAtQKBgQDaU01VnHsnHxc0DQHE2vEOPGmPxVS0/JAssePAEUmKEueUogGef91YY+Vm/ItbhLwGjbytnXxe88zRAdB1u07efZ83ey93TrGl2CJUzLHIcgb+Q1tT642rqlfl+q8ep86hcZ+63pDiIPt2Z+HkbKIR0SWf5LIH4flquQOTQufXXQKBgQC674qDsjOJepZjMMN6PkVMcWBYDNmXHnqa5Oto0rZM745UulbXqEFGuBOsXPU7O33Kfz1vbtoluubKZi5B6cFNnPypE2SCfvdObHq4FuTuKPV6lN93SyhZchmSEXEs0PU4cGDRt+RRqQcjft1Wigiy4Y1y1SInCtcaP1hLejEJ/wKBgFAhvwKrGnBzctrB42JTUaJ9/eis7rg28tvUttjp/2nUIndlNt7r41vr3mj8TFHc1/43y4aVhO584THdTpvHkd0LkoKUjglmMsHCIGercZ02bOap5j1Y+XiGXxij995yjN6oi43U3qyAmosM+dYTITEU6JBVKhrGj/rhyTQlnF5pAoGBAKFGmo0mR/pbDbYD0xH6+VSLGCC+7VbIT+SkjUjBSdA0eOo2XUfvfGmj1C1HgbcZi1wRzJH/5CrbBdQmtc/d+QyZ3Q2NkpBXM8uwIWwDLH0gTzDzkZvc9rG8k70GWUrd+EI6Cf3FFjExj9wazqCjs/+IQr2Ijc97NbsKXYW4pOhHAoGAKf5wYk+cn0cVTsyAom0UbGD5Uijqh5732MeqFYs2Rcwx0OErJZo68COSFFF40hJmmIKn7p3qycIyd1FcYlXN1l4s8mEWTGTInRE0OlBU0+jLtIV9pwNgffpbPYcrWZU6s6YVeJ2nDwl+aD+4QvN0rkPTfho9kjgeyF3PW0I2u4E=";
-//
-//	private final String driverPrivateKeyId = "859e85fb3aa4d18b4afaac3e24e8f65700da5cc9";
-//
-//	private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmzL1BqSH+Zh9Fct5mXqe5sYOMTnJtOJhwKXnjjo2tNPXv4alzUHz8Vbj6nMar5u5IuKRZMeRBlhoRSFrLm+J1+sfvpH8N4wsnG7hDANknqWzdsk9a68qMHxNQF3hFzs9+KKrR1LAG8e9ytMfliN0kX+xls4uPZDPu1Q39K6V9KXrH/GrMA56i3TtWi7Hmakt5YTELeGjhx4nGrfuQLFFovs1Z9uJtf7E8R95+65StrOAmbJNf7VciEqwBpWYlU5VeyLXMg/oHwnTv2cjdcFozyDrlUHbDmtTiVeBBsYFVLyAsDGfl1p6eiVTiBBuo56YSYLWfaLgYvTyEcZ9jBQsfAgMBAAECggEAQzbTuObX3PT3+vtb5XKVMf33XY2rDJo2y1PbWzhxnO9vf3e22dIAW4qLnOmaIWFQeht1lr/FFCzRWk+Gzu+FJTemY8osrMLmFp9T9CQeXZ4nUXruAVxs5WQMW0Tp4W+CK3tlwmJrgJDzhYyV1Mf/HQ5Oa3kbbu/ZAY/3MCLrb/ClJQvD2rZSDdzAkNMQm8P2hsE71+rH7mI2hHrSCHl2OIp2A64QT8HjtyRc5yHZtTp6ZST1ge9SSIsT0ZfmXKtKF7yGEIPtKNU+oLrGyK5P30xBWJ/bwb3PEz2MZcPvz31+B2+UvZMm7OTkqfcRwEztAf8Ckiuo4im2BRYbVmd9OQKBgQDd0MeLxR+Qtv12bVA0bHtagFEq36THgWG7IM1/1vS4Cl9sveKSOS8A6oKLy624fGE7PKcuTTIzkVA81GXtWBQ9Coq/4TmllQkFTH7pz9C2PNHSCychPwNNV8qUx3lE3d4DOjGKgoVFD4l90AO7lOvmLTSc3pDpr+jSjUH4lqGrbQKBgQDAgXBmpXfCTxwqkBzGwxX+hwJen9qSkCM47qnQ1L4NnXPL6s0EN6rQ3FnFemGIzBUGJ2tajntkKlUu5DzsQeoBGu/SaSwgqD+1UQDcUyo+retmqZ+QYbpeyd3l53bLJJuJNsfak0X76Ft6hrm4julx6RGlmboQyx4kZWbhx4YNOwKBgEG9/2aNpi1eDwFqpLrk7CqGnYf3gP8gebbcoguhyiZB7MZuARkVmbjLyKVmWLa1JpxH/cTbXGWsS/u7d/pAgL8WwMjeGBfbdDD92x+xWEqq/AUlCRPxeSkTPBech3TBzWtndAd5Z8ZwNG/1lyWhnck63L0huhGI8Zh2BXeILaKBAoGAKK3xq69BvGztPc1QV2w4RJ4RER/kl14gI1LDzd52/veL1cabZk3BKfu2eLWg0MCXnMJNvEgpqQQNFiii+yX+phckIKma6pfDRrSEYwqr/azQ9tPXZTJRqOAtpPyhrNHikD9kQjsm6dGzKxQ3QNnqWOjwkrcGi6/wga5v7Dw2hqsCgYEA2T/kSNQ9dqpVBAkfi2J50hqnfFESPjKeirJJZllqhVqsiV0ly8a8Fz8SjGqTzrq+UErko+QmtSlo5h3Uq9Ln+0CwYfrUL+74q2zLHdS0DpY3QsGTEDJXTxCyy9kO26X2UsM3Ez3YUAkdMwdpVz0uVZtinv2735QZOBxoVQV2kQ8=";
-//
-//	private final String consumerPrivateKeyId = "40acf82cbd5250de2f5123caff40738bdd403b08";
-//
-//	private final String consumerPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSwtbSBFgIXna6mWeKFWCK31NXUJH6uGduR1XrODGRedrqrTgr0BdNg8PDo6/zh/T+K0Svor6kgqpwnl9soOdn73oC4Nu+Ad7EiKa38j650jlZdLAr4hR0Ou9Kcnv45x/94auUO8jBz844cu24swLKiPsK9OnX65wVlKRfhhkGFuS/4OI76CmE7NqZDqPOW16o8tBO5TsgPVNkglFAU73fTp0kcHoLauT9QOB0+yZi39mnNXyU+2cL3Ylp5oaQCJpyssDRUqz/EiHa7FxUUgzCadG00+ePf5iYSnZKQRKWoOIawFvcCfcHx8GAl8Nn+79HtVQHB9hLsQ5+jqcdfKPfAgMBAAECggEAE9Ufz912xzrUY1TCKH1Ae3Dub732Lqihmv/9dsfv6ieUURcBvSW0u6eViVhi20DE7hH2QazH0cU18qkEg71UaTRgv9qW8vdMFiRhw9d4zZWZrfBMD6UTlahiEhhZ0B83pHVS5v0FNC+w0SEHe6Tks1hWfz5yrs3N/z3ghdihjC/5i1jeBoHXs1262SMazuwNGHblLApGPG+86taeFtbDI+31TKvZ8nomZHkEVFnARRUoBBcIwowRMqNfwlpcJhlz6kDWnoD08kHJ2zzJokozu7Lim+Ugt/MWwUOcA0hgq2QdymZFpkRkDl7tZmJtwTfTirjbGlpnPHVXEc1bWM7ocQKBgQD0LJ8e7JXf6bVFngq0jSJNKK7XDHYg0KhHXMApF59xxi29hdHXWPzgRJ45KkoUJc7MITpIJLXfCmi1XyDMf9m8lIf/oaqhJ7idYi7iAAPOJkdnHbSt0lebyjBWzCQ6OgS4NfF1+LEibTzRqiFs5K8EAyPYAVSTrpWoguoWtTzIGQKBgQDc9/I2PS+91Eb5RvuidTNsDqZJliTJQFlBjlDViFo3+l1N7jDFYwPBR/Tv4TVM5p9Zb+/Lo9X1pjDbm8QriTR4V+4HaLXkcCnmOsdSRInFUW4UIafwLX5ifjgfyaWgdKdn2UP1Lu/1qBN6GU1xjSfBQ6N3UqQiKkNPb7tuPJGqtwKBgQCQ4hU8vTclGMC14VQK1B/BVt1/vuYtDIJ9bZycBWdXlDc52LitpiDOVgjodJ5mHBT77M9vVVERWlTNIfgNP+OL0TptRZlAbJhP0p1s/oNDhFUj6211InVXfH54UkNAxYJdZ6yxynIYsma/JcsVmQ/8Ony/Q/LSempVBfEurjW1qQKBgQCQWPjFLdtOKqnildg0HFPnNvqx/38waPTluk5b76LgBpGFIyCBEVmWnacIPRpQjidyiYkggnp26oXoMC1KM2svYmGAPYr1G8CDQcqLl3JYkAVU6VeHsnBpbwLC4TttQkdJs8iNFohy9cUjcfwBPbDGs6TJghbuqqUl81uBe9e8qQKBgQDZm8T2KB34J7HAc5A+vqkmAo7mQLZg51OrzB1KnDU86pSAf0o3eSvfDUT6dpU9fRuZ1XYnbPnpoJwjFH3m4u9gqKF3PtVYfZyJrEqYwmhB9z6vd+dcsUlXM0fi37bGZkKBD0JGGt5OljM1qJG15x/LYfC/nwOmqWoOhNPCst2Z7w==";
-//	private final String provider = "i-go-odrd-testing";
+	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-odrd-testing.iam.gserviceaccount.com";
+
+	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-odrd-testing.iam.gserviceaccount.com";
+
+	private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-odrd-testing.iam.gserviceaccount.com";
+
+	private final String serverPrivateKeyId = "254e18eefa9fdcca64d5899cdcd793d466c47c7d";
+
+	private final String serverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCfbNAWnukqLKIxItqmSABxsH5glySEHJ2gfL5KsRF0M02e0Z8/KNKZkoh7I6bOMt1fEtttFaWOeq70IdI2WAd5wVazL3upvl5FW4P08ly33LklfGyLljlJ7ChPny9x6OjAaiS0yD9fh7NWti7rZKU7gzcGL8HddNYXgXV5OajvoG3TGdu52WTxce9AUzU6gLPboz/RbGqrdrmgVJVb0EPlhTJf/NSsaiW4NoL8SEzf/pJGYBmqJs97mXwCHTY4avaC+CP/zz9yS8AQEJlApbVT6lSOhYoR0hNOBj5B886EZOssjubO6hQaiwRnGrV2RdpHynqA1iekfGpUGEtWTsqjAgMBAAECggEALyPbMd0iP8y71sCiG4nty7Au5ju62e+mMkbAc9CAwzXKTVxZdLEK+MsJ3TNxBsami47FYC+G6SbgpaJ8iIImD7v5+XjgXZRDRsnlLmAdx2YWPv3YELxGS1PvpX+B5XJDpGWeXfBaQNKc1lZ/cC4t53eIpSUo82UxSvkGNea1S8lR6vIByhNyCQOvLG4yqaxUy0hZi0kge37XrjYMGS+BivBBnDiVlBPLBVbrNBxOf31Lzz+XX0iwXX7Zl2jN759oe0xQyuIGWUSj8xBDIF8nNaJrla7rWVml3sZJh6/3r1Acj0mhZtE0ZMu5hiPGiIXgb1ng30j3dMP4yVPhXrpAtQKBgQDaU01VnHsnHxc0DQHE2vEOPGmPxVS0/JAssePAEUmKEueUogGef91YY+Vm/ItbhLwGjbytnXxe88zRAdB1u07efZ83ey93TrGl2CJUzLHIcgb+Q1tT642rqlfl+q8ep86hcZ+63pDiIPt2Z+HkbKIR0SWf5LIH4flquQOTQufXXQKBgQC674qDsjOJepZjMMN6PkVMcWBYDNmXHnqa5Oto0rZM745UulbXqEFGuBOsXPU7O33Kfz1vbtoluubKZi5B6cFNnPypE2SCfvdObHq4FuTuKPV6lN93SyhZchmSEXEs0PU4cGDRt+RRqQcjft1Wigiy4Y1y1SInCtcaP1hLejEJ/wKBgFAhvwKrGnBzctrB42JTUaJ9/eis7rg28tvUttjp/2nUIndlNt7r41vr3mj8TFHc1/43y4aVhO584THdTpvHkd0LkoKUjglmMsHCIGercZ02bOap5j1Y+XiGXxij995yjN6oi43U3qyAmosM+dYTITEU6JBVKhrGj/rhyTQlnF5pAoGBAKFGmo0mR/pbDbYD0xH6+VSLGCC+7VbIT+SkjUjBSdA0eOo2XUfvfGmj1C1HgbcZi1wRzJH/5CrbBdQmtc/d+QyZ3Q2NkpBXM8uwIWwDLH0gTzDzkZvc9rG8k70GWUrd+EI6Cf3FFjExj9wazqCjs/+IQr2Ijc97NbsKXYW4pOhHAoGAKf5wYk+cn0cVTsyAom0UbGD5Uijqh5732MeqFYs2Rcwx0OErJZo68COSFFF40hJmmIKn7p3qycIyd1FcYlXN1l4s8mEWTGTInRE0OlBU0+jLtIV9pwNgffpbPYcrWZU6s6YVeJ2nDwl+aD+4QvN0rkPTfho9kjgeyF3PW0I2u4E=";
+
+	private final String driverPrivateKeyId = "859e85fb3aa4d18b4afaac3e24e8f65700da5cc9";
+
+	private final String driverPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmzL1BqSH+Zh9Fct5mXqe5sYOMTnJtOJhwKXnjjo2tNPXv4alzUHz8Vbj6nMar5u5IuKRZMeRBlhoRSFrLm+J1+sfvpH8N4wsnG7hDANknqWzdsk9a68qMHxNQF3hFzs9+KKrR1LAG8e9ytMfliN0kX+xls4uPZDPu1Q39K6V9KXrH/GrMA56i3TtWi7Hmakt5YTELeGjhx4nGrfuQLFFovs1Z9uJtf7E8R95+65StrOAmbJNf7VciEqwBpWYlU5VeyLXMg/oHwnTv2cjdcFozyDrlUHbDmtTiVeBBsYFVLyAsDGfl1p6eiVTiBBuo56YSYLWfaLgYvTyEcZ9jBQsfAgMBAAECggEAQzbTuObX3PT3+vtb5XKVMf33XY2rDJo2y1PbWzhxnO9vf3e22dIAW4qLnOmaIWFQeht1lr/FFCzRWk+Gzu+FJTemY8osrMLmFp9T9CQeXZ4nUXruAVxs5WQMW0Tp4W+CK3tlwmJrgJDzhYyV1Mf/HQ5Oa3kbbu/ZAY/3MCLrb/ClJQvD2rZSDdzAkNMQm8P2hsE71+rH7mI2hHrSCHl2OIp2A64QT8HjtyRc5yHZtTp6ZST1ge9SSIsT0ZfmXKtKF7yGEIPtKNU+oLrGyK5P30xBWJ/bwb3PEz2MZcPvz31+B2+UvZMm7OTkqfcRwEztAf8Ckiuo4im2BRYbVmd9OQKBgQDd0MeLxR+Qtv12bVA0bHtagFEq36THgWG7IM1/1vS4Cl9sveKSOS8A6oKLy624fGE7PKcuTTIzkVA81GXtWBQ9Coq/4TmllQkFTH7pz9C2PNHSCychPwNNV8qUx3lE3d4DOjGKgoVFD4l90AO7lOvmLTSc3pDpr+jSjUH4lqGrbQKBgQDAgXBmpXfCTxwqkBzGwxX+hwJen9qSkCM47qnQ1L4NnXPL6s0EN6rQ3FnFemGIzBUGJ2tajntkKlUu5DzsQeoBGu/SaSwgqD+1UQDcUyo+retmqZ+QYbpeyd3l53bLJJuJNsfak0X76Ft6hrm4julx6RGlmboQyx4kZWbhx4YNOwKBgEG9/2aNpi1eDwFqpLrk7CqGnYf3gP8gebbcoguhyiZB7MZuARkVmbjLyKVmWLa1JpxH/cTbXGWsS/u7d/pAgL8WwMjeGBfbdDD92x+xWEqq/AUlCRPxeSkTPBech3TBzWtndAd5Z8ZwNG/1lyWhnck63L0huhGI8Zh2BXeILaKBAoGAKK3xq69BvGztPc1QV2w4RJ4RER/kl14gI1LDzd52/veL1cabZk3BKfu2eLWg0MCXnMJNvEgpqQQNFiii+yX+phckIKma6pfDRrSEYwqr/azQ9tPXZTJRqOAtpPyhrNHikD9kQjsm6dGzKxQ3QNnqWOjwkrcGi6/wga5v7Dw2hqsCgYEA2T/kSNQ9dqpVBAkfi2J50hqnfFESPjKeirJJZllqhVqsiV0ly8a8Fz8SjGqTzrq+UErko+QmtSlo5h3Uq9Ln+0CwYfrUL+74q2zLHdS0DpY3QsGTEDJXTxCyy9kO26X2UsM3Ez3YUAkdMwdpVz0uVZtinv2735QZOBxoVQV2kQ8=";
+
+	private final String consumerPrivateKeyId = "40acf82cbd5250de2f5123caff40738bdd403b08";
+
+	private final String consumerPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSwtbSBFgIXna6mWeKFWCK31NXUJH6uGduR1XrODGRedrqrTgr0BdNg8PDo6/zh/T+K0Svor6kgqpwnl9soOdn73oC4Nu+Ad7EiKa38j650jlZdLAr4hR0Ou9Kcnv45x/94auUO8jBz844cu24swLKiPsK9OnX65wVlKRfhhkGFuS/4OI76CmE7NqZDqPOW16o8tBO5TsgPVNkglFAU73fTp0kcHoLauT9QOB0+yZi39mnNXyU+2cL3Ylp5oaQCJpyssDRUqz/EiHa7FxUUgzCadG00+ePf5iYSnZKQRKWoOIawFvcCfcHx8GAl8Nn+79HtVQHB9hLsQ5+jqcdfKPfAgMBAAECggEAE9Ufz912xzrUY1TCKH1Ae3Dub732Lqihmv/9dsfv6ieUURcBvSW0u6eViVhi20DE7hH2QazH0cU18qkEg71UaTRgv9qW8vdMFiRhw9d4zZWZrfBMD6UTlahiEhhZ0B83pHVS5v0FNC+w0SEHe6Tks1hWfz5yrs3N/z3ghdihjC/5i1jeBoHXs1262SMazuwNGHblLApGPG+86taeFtbDI+31TKvZ8nomZHkEVFnARRUoBBcIwowRMqNfwlpcJhlz6kDWnoD08kHJ2zzJokozu7Lim+Ugt/MWwUOcA0hgq2QdymZFpkRkDl7tZmJtwTfTirjbGlpnPHVXEc1bWM7ocQKBgQD0LJ8e7JXf6bVFngq0jSJNKK7XDHYg0KhHXMApF59xxi29hdHXWPzgRJ45KkoUJc7MITpIJLXfCmi1XyDMf9m8lIf/oaqhJ7idYi7iAAPOJkdnHbSt0lebyjBWzCQ6OgS4NfF1+LEibTzRqiFs5K8EAyPYAVSTrpWoguoWtTzIGQKBgQDc9/I2PS+91Eb5RvuidTNsDqZJliTJQFlBjlDViFo3+l1N7jDFYwPBR/Tv4TVM5p9Zb+/Lo9X1pjDbm8QriTR4V+4HaLXkcCnmOsdSRInFUW4UIafwLX5ifjgfyaWgdKdn2UP1Lu/1qBN6GU1xjSfBQ6N3UqQiKkNPb7tuPJGqtwKBgQCQ4hU8vTclGMC14VQK1B/BVt1/vuYtDIJ9bZycBWdXlDc52LitpiDOVgjodJ5mHBT77M9vVVERWlTNIfgNP+OL0TptRZlAbJhP0p1s/oNDhFUj6211InVXfH54UkNAxYJdZ6yxynIYsma/JcsVmQ/8Ony/Q/LSempVBfEurjW1qQKBgQCQWPjFLdtOKqnildg0HFPnNvqx/38waPTluk5b76LgBpGFIyCBEVmWnacIPRpQjidyiYkggnp26oXoMC1KM2svYmGAPYr1G8CDQcqLl3JYkAVU6VeHsnBpbwLC4TttQkdJs8iNFohy9cUjcfwBPbDGs6TJghbuqqUl81uBe9e8qQKBgQDZm8T2KB34J7HAc5A+vqkmAo7mQLZg51OrzB1KnDU86pSAf0o3eSvfDUT6dpU9fRuZ1XYnbPnpoJwjFH3m4u9gqKF3PtVYfZyJrEqYwmhB9z6vd+dcsUlXM0fi37bGZkKBD0JGGt5OljM1qJG15x/LYfC/nwOmqWoOhNPCst2Z7w==";
+	private final String provider = "i-go-odrd-testing";
 	
-	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
-	
-	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
-	
-	private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
-	
-	private final String provider = "i-go-gcp";
+//	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
+//
+//	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
+//
+//	private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
+//
+//	private final String provider = "i-go-gcp";
 	
 	@Autowired
 	private RedisUtil redisUtil;
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java
index f8b2e81..b8d402e 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java
@@ -81,11 +81,13 @@
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>().eq("userId", uid).ne("state", 0));
+            List<UserRedPacketRecord> userRedPacketRecords = userRedPacketRecordService.selectList(new EntityWrapper<UserRedPacketRecord>()
+                    .eq("userId", uid).ne("state", 0));
             List<Double> collect = userRedPacketRecords.stream().map(UserRedPacketRecord::getMoney).collect(Collectors.toList());
             double sum = collect.stream().mapToDouble(Double::doubleValue).sum();
 
-            double sum1 = userRedPacketRecords.stream().filter(v -> v.getRemainingAmount().compareTo(0D) > 0).map(UserRedPacketRecord::getRemainingAmount).mapToDouble(Double::doubleValue).sum();
+            double sum1 = userRedPacketRecords.stream().filter(v -> v.getRemainingAmount().compareTo(0D) > 0)
+                    .map(UserRedPacketRecord::getRemainingAmount).mapToDouble(Double::doubleValue).sum();
 
             List<Map<String, Object>> list = userRedPacketRecordService.queryMyRedEnvelope(pageNum, size, uid);
             List<MyRedEnvelope> baseWarppers = new ArrayList<>();
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
index bbf39a1..23a1753 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
@@ -304,7 +304,7 @@
             DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
         ('包裹') as name,
         UNIX_TIMESTAMP(insertTime) as insertTime
-        from t_order_logistics where userId = #{uid} and state in (8, 9) and redPacketId is not null
+        from t_order_logistics where userId = #{uid} and redPacketId is not null
     </select>
     
     
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index 495ce14..2c2ce0b 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -1045,13 +1045,13 @@
         }
     
         //计算红包
-        if(null != redDeduction && 1 == redDeduction){
+        if(null != redDeduction && 1 == redDeduction && null == orderLogistics.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", orderLogistics.getCompanyId()).gt("remainingAmount", 0).orderBy("insertTime", false));
-    
+            
                 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){
@@ -1061,12 +1061,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());
@@ -1074,14 +1074,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);
                     }
                     orderLogistics.setRedPacketId(jsonArray.toJSONString());
                 }
@@ -1090,29 +1091,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 = new BigDecimal(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);
                     }
                     orderLogistics.setRedPacketId(jsonArray.toJSONString());
                 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
index 5bf3916..b2192e0 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -478,7 +478,7 @@
         DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
         ('打车') as name,
         UNIX_TIMESTAMP(insertTime) as insertTime
-        from t_order_private_car where userId = #{uid} and state in (8, 9) and redPacketId is not null
+        from t_order_private_car where userId = #{uid} and redPacketId is not null
     </select>
 
 
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());
                 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index 0d73b3c..47d2387 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -54,11 +54,11 @@
 //	private final String provider = "i-go-odrd-testing";
 	
 	private final String SERVICE_ACCOUNT = "odrd-fleetengine-ondemandadmin@i-go-gcp.iam.gserviceaccount.com";
-	
+
 	private final String DRIVER_ACCOUNT = "odrd-fleetengine-driversdkuser@i-go-gcp.iam.gserviceaccount.com";
-	
+
 	private final String CONSUMER_ACCOUNT = "odrd-fleetengine-consumersdkus@i-go-gcp.iam.gserviceaccount.com";
-	
+
 	private final String provider = "i-go-gcp";
 	
 	@Autowired

--
Gitblit v1.7.1