From dae4651a80ac06f432a2ff448a199afb6dc0d2b3 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 01 十二月 2023 18:17:14 +0800
Subject: [PATCH] 更新

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java  |  269 +++++++++++--
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml                       |    4 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java    |   12 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                   |   62 +-
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java           |   14 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java                                  |    4 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java                  |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java         |   10 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java           |    8 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java |   12 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java               |   12 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java    |   15 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml        |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java          |   14 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml            |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml             |    4 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java                        |   12 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java                |   56 ++
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java |   15 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java   |  183 +++++----
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java          |   12 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                  |    4 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java               |   60 +-
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java             |    6 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java         |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java                |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java                             |    8 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java               |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java                                  |  161 ++++++++
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java       |   25 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java       |   61 ++
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java                        |   18 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                                |   20 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java               |    4 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml           |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java            |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java            |   10 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java                    |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java         |    2 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java                       |    6 
 40 files changed, 796 insertions(+), 325 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java
index aaef3f9..1c8e2c1 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java
@@ -38,7 +38,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception;
 
 
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
index dc3c1b7..aa57443 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
@@ -50,7 +50,6 @@
 
     /**
      * 保存数据
-     * @param traveltime
      * @param carTime
      * @param modelUse
      * @param peopleNumber
@@ -67,7 +66,7 @@
         orderCharteredCar.setUserId(uid);
         Company query = companyCityService.query1(placeLonLat.split(",")[0], placeLonLat.split(",")[1]);
         if(null == query){
-            return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No corporate services are available at this location" : "Aucun service d’entreprise n’est disponible pour cet emplacement");
+            return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No service yet at this area" : "Pas encore de service dans cette zone");
         }
         orderCharteredCar.setCompanyId(query.getId());
         orderCharteredCar.setOrderNumber(this.getOrderNum());
@@ -94,9 +93,15 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> maps = orderCharteredCarMapper.queryMyOrderList(uid, pageNum, size);
+        for (Map<String, Object> map : maps) {
+            String orderTime = map.get("orderTime").toString();
+            map.put("orderTime", DateUtil.conversionFormat(language, orderTime));
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
         return maps;
     }
 
@@ -114,10 +119,10 @@
 
         OrderCharteredCar orderCharteredCar = this.selectById(id);
         if(null == orderCharteredCar){
-            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Cancel order failed, order information is incorrect" : "Annulation échouée, informations de commande incorrectes");
+            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande.");
         }
         if(orderCharteredCar.getState() != 1){
-            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Cancel order failed, illegal operation" : "Annulation de la commande échouée, opération illégale");
+            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale.");
         }
 
         OrderCancel orderCancel = new OrderCancel();
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java
index 1872c94..5b72584 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java
@@ -51,13 +51,13 @@
 
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<List<CouponWarpper>> queryMyCoupons(Integer state, Integer pageNum, Integer size, HttpServletRequest request){
+    public ResultUtil<List<CouponWarpper>> queryMyCoupons(Integer language, Integer state, Integer pageNum, Integer size, HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
                return ResultUtil.tokenErr();
             }
-            List<Map<String, Object>> list = userCouponRecordService.queryMyCoupons(state, pageNum, size, uid);
+            List<Map<String, Object>> list = userCouponRecordService.queryMyCoupons(language, state, pageNum, size, uid);
             return ResultUtil.success(CouponWarpper.getCouponWarppers(list));
         }catch (Exception e){
             e.printStackTrace();
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 62ca9dd..aef4e71 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -108,9 +108,9 @@
             @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<List<OrderEvaluateWarpper>> queryOrderEvaluate(Integer id, Integer pageNum, Integer size){
+    public ResultUtil<List<OrderEvaluateWarpper>> queryOrderEvaluate(Integer language, Integer id, Integer pageNum, Integer size){
         try {
-            List<Map<String, Object>> list = orderEvaluateService.queryOrderEvaluate(id, pageNum, size);
+            List<Map<String, Object>> list = orderEvaluateService.queryOrderEvaluate(language, id, pageNum, size);
             return ResultUtil.success(OrderEvaluateWarpper.getOrderEvaluateWarpper(list));
         }catch (Exception e){
             e.printStackTrace();
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 1d64ae8..9ce3860 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -193,19 +193,19 @@
             List<Map<String, Object>> list = null;
             switch (type){
                 case 1:
-                    list = orderPrivateCarService.queryMyOrderList(uid, pageNum, size);
+                    list = orderPrivateCarService.queryMyOrderList(language, uid, pageNum, size);
                     break;
                 case 2:
-                    list = orderTaxiService.queryMyOrderList(uid, pageNum, size);
+                    list = orderTaxiService.queryMyOrderList(language, uid, pageNum, size);
                     break;
                 case 3:
-                    list = orderCrossCityService.queryMyOrderList(uid, pageNum, size);
+                    list = orderCrossCityService.queryMyOrderList(language, uid, pageNum, size);
                     break;
                 case 4:
                     list = orderLogisticsService.queryMyOrderList(uid, pageNum, size, language);
                     break;
                 case 5:
-                    list = orderCharteredCarService.queryMyOrderList(uid, pageNum, size);
+                    list = orderCharteredCarService.queryMyOrderList(language, uid, pageNum, size);
                     break;
             }
             return ResultUtil.success(OrderWarpper.getOrderWarpper(list));
@@ -238,7 +238,7 @@
             }
             String name = language == 1 ? "打车" : language == 2 ? "Ride" : "Course";
             pageNum = (pageNum - 1) * size;
-            List<Map<String, Object>> maps = orderCancelService.queryCancel(uid, 2);
+            List<Map<String, Object>> maps = orderCancelService.queryCancel(language, uid, 2);
             for (Map<String, Object> map : maps) {
                 Integer orderType = Integer.valueOf(map.get("orderType").toString());
                 if(1 == orderType){
@@ -248,12 +248,12 @@
                     map.put("name", language == 1 ? "包裹订单取消" : language == 2 ? "Parcel order cancellation" : "Annulation de commande de colis");
                 }
             }
-            List<Map<String, Object>> list = orderPrivateCarService.queryMyTravelRecord(uid);//专车
+            List<Map<String, Object>> list = orderPrivateCarService.queryMyTravelRecord(language, uid);//专车
             for (Map<String, Object> map : list) {
                 map.put("name", name);
             }
             name = language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison";
-            List<Map<String, Object>> list3 = orderLogisticsService.queryMyTravelRecord(uid);//小件物流
+            List<Map<String, Object>> list3 = orderLogisticsService.queryMyTravelRecord(language, uid);//小件物流
             for (Map<String, Object> map : list3) {
                 map.put("name", name);
             }
@@ -264,7 +264,7 @@
             for(TransactionDetails transactionDetails1 : transactionDetails){
                 Map<String, Object> map = new HashMap<>();
                 map.put("money", transactionDetails1.getMoney());
-                map.put("time", sdf.format(transactionDetails1.getInsertTime()));
+                map.put("time", DateUtil.conversionFormat(language, sdf.format(transactionDetails1.getInsertTime())));
                 map.put("name", "跨城订单取消退款");
                 map.put("insertTime", Double.valueOf(transactionDetails1.getInsertTime().getTime() / 1000).intValue());
                 list4.add(map);
@@ -320,7 +320,7 @@
             @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<List<OrderWarpper>> queryInvoiceOrder(Integer type, Integer orderType, Date startTime,
+    public ResultUtil<List<OrderWarpper>> queryInvoiceOrder(Integer language, Integer type, Integer orderType, Date startTime,
                                                             Date endTime, Double startMoney, Double endMoney,
                                                             Integer pageNum, Integer size, HttpServletRequest request){
         pageNum = (pageNum - 1) * size;
@@ -333,7 +333,7 @@
             if(null != orderType){
                 switch (orderType){
                     case 1://专车
-                        list = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+                        list = orderPrivateCarService.queryInvoiceOrder(language, type, startTime, endTime, startMoney, endMoney, uid);
                         break;
 //                    case 2://出租车
 //                        list = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
@@ -342,7 +342,7 @@
 //                        list = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
 //                        break;
                     case 4://同城小件物流
-                        list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+                        list = orderLogisticsService.queryInvoiceOrder(language, type, startTime, endTime, startMoney, endMoney, uid, orderType);
                         break;
 //                    case 5://跨城小件物流
 //                        list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
@@ -350,7 +350,7 @@
                 }
             }else{
                 //专车
-                List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+                List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(language, type, startTime, endTime, startMoney, endMoney, uid);
                 list.addAll(maps);
 //                //出租车
 //                List<Map<String, Object>> list1 = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
@@ -359,7 +359,7 @@
 //                List<Map<String, Object>> list2 = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
 //                list.addAll(list2);
                 //同城小件物流
-                List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+                List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(language, type, startTime, endTime, startMoney, endMoney, uid, orderType);
                 list.addAll(list3);
 //                //跨城小件物流
 //                List<Map<String, Object>> list4 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
@@ -439,19 +439,19 @@
             Map<String, Object> map = null;
             switch (orderType){
                 case 1://专车
-                    map = orderPrivateCarService.queryOrderInfo(orderId);
+                    map = orderPrivateCarService.queryOrderInfo(language, orderId);
                     break;
                 case 2://出租车
-                    map = orderTaxiService.queryOrderInfo(orderId);
+                    map = orderTaxiService.queryOrderInfo(language, orderId);
                     break;
                 case 3://跨城
-                    map = orderCrossCityService.queryOrderInfo(orderId);
+                    map = orderCrossCityService.queryOrderInfo(language, orderId);
                     break;
                 case 4://同城小件
-                    map = orderLogisticsService.queryOrderInfo(orderId);
+                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                     break;
                 case 5://跨城小件
-                    map = orderLogisticsService.queryOrderInfo(orderId);
+                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                     break;
             }
             if(map.get("telX") != null){
@@ -507,19 +507,19 @@
             Map<String, Object> map = null;
             switch (orderType){
                 case 1://专车
-                    map = orderPrivateCarService.queryOrderInfo(orderId);
+                    map = orderPrivateCarService.queryOrderInfo(language, orderId);
                     break;
                 case 2://出租车
-                    map = orderTaxiService.queryOrderInfo(orderId);
+                    map = orderTaxiService.queryOrderInfo(language, orderId);
                     break;
                 case 3://跨城
-                    map = orderCrossCityService.queryOrderInfo(orderId);
+                    map = orderCrossCityService.queryOrderInfo(language, orderId);
                     break;
                 case 4://同城小件
-                    map = orderLogisticsService.queryOrderInfo(orderId);
+                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                     break;
                 case 5://跨城小件
-                    map = orderLogisticsService.queryOrderInfo(orderId);
+                    map = orderLogisticsService.queryOrderInfo(language, orderId);
                     break;
             }
             if(null != map.get("telX")){
@@ -563,17 +563,17 @@
             Map<String, Object> map = null;
             switch (orderType) {
                 case 1://专车
-                    map = orderPrivateCarService.queryOrderInfo(orderId);
-                    ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId);
+                    map = orderPrivateCarService.queryOrderInfo(language, orderId);
+                    ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId, language);
                     map.put("cancelPayMoney", res.getData().getAmount());
                     break;
                 case 2://出租车
-                    map = orderTaxiService.queryOrderInfo(orderId);
+                    map = orderTaxiService.queryOrderInfo(language, orderId);
                     ResultUtil<BaseWarpper> re = orderTaxiService.queryCancleAmount(orderId);
                     map.put("cancelPayMoney", re.getData().getAmount());
                     break;
                 case 3://跨城
-                    map = orderCrossCityService.queryOrderInfo(orderId);
+                    map = orderCrossCityService.queryOrderInfo(language, orderId);
                     ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId);
                     map.put("cancelPayMoney", r.getData().getAmount());
                     break;
@@ -836,11 +836,11 @@
             @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType){
+    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType, Integer language){
         try {
             switch (orderType){
                 case 1:
-                    return orderPrivateCarService.queryCancleAmount(id);
+                    return orderPrivateCarService.queryCancleAmount(id, language);
                 case 2:
                     return orderTaxiService.queryCancleAmount(id);
                 case 3:
@@ -1085,7 +1085,7 @@
             @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil queryCoupon(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){
+    public ResultUtil queryCoupon(Integer language, Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
@@ -1094,7 +1094,7 @@
             List<Map<String, Object>> list = new ArrayList<>();
             switch (orderType){
                 case 1:
-                    list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size);
+                    list = orderPrivateCarService.queryCoupon(language, orderId, uid, pageNum, size);
                     break;
 //                case 2:
 //                    list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
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 fabc30c..b3ecfe9 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
@@ -101,16 +101,16 @@
             @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<List<TravelRecordWarpper>> queryRedEnvelope(Integer pageNum, Integer size, HttpServletRequest request){
+    public ResultUtil<List<TravelRecordWarpper>> queryRedEnvelope(Integer language, Integer pageNum, Integer size, HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
             pageNum = (pageNum - 1) * size;
-            List<Map<String, Object>> list = orderPrivateCarService.queryRedEnvelope(uid);//专车
-            List<Map<String, Object>> list1 = orderTaxiService.queryRedEnvelope(uid);//出租车
-            List<Map<String, Object>> list2 = orderCrossCityService.queryRedEnvelope(uid);//跨城
+            List<Map<String, Object>> list = orderPrivateCarService.queryRedEnvelope(language, uid);//专车
+            List<Map<String, Object>> list1 = orderTaxiService.queryRedEnvelope(language, uid);//出租车
+            List<Map<String, Object>> list2 = orderCrossCityService.queryRedEnvelope(language, uid);//跨城
             list.addAll(list1);
             list.addAll(list2);
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
index 94c967f..8d3bfa7 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -144,7 +144,7 @@
                 String code = redisUtil.getValue(phone+"_Code");
                 System.out.println("缓存中验证码为:"+code);
                 if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) {
-                    return ResultUtil.error(language == 1 ? "图形验证码错误" : language == 2 ? "The graphic verification code is incorrect" : "Code de vérification graphique incorrect");
+                    return ResultUtil.error(language == 1 ? "图形验证码错误" : language == 2 ? "Wrong CAPTCHA" : "CAPTCHA erroné");
                 }
                 return userInfoService.queryCaptcha(phone, type, language);
             }catch (Exception e){
@@ -195,7 +195,7 @@
             Integer uid = userInfoService.getUserIdFormRedis(request);
 
             if(ToolUtil.isEmpty(email)){
-                return ResultUtil.error(language == 1 ? "邮箱不能为空" : language == 2 ? "The mailbox cannot be empty" : "L’email ne peut pas être vide");
+                return ResultUtil.error(language == 1 ? "邮箱不能为空" : language == 2 ? "E-mail address cannot be empty." : "L’adresse e-mail ne peut pas être vide.");
             }
 
             Random random = new Random();
@@ -463,9 +463,9 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "微信jscode(小程序登录上传)", name = "jscode", required = false, dataType = "String")
     })
-    public ResultUtil<LoginWarpper> wxIsLogin( String jscode){
+    public ResultUtil<LoginWarpper> wxIsLogin(Integer language, String jscode){
         try {
-            return userInfoService.wxIsLogin(jscode);
+            return userInfoService.wxIsLogin(language, jscode);
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
@@ -617,13 +617,13 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<UserInfoWarpper> queryUserInfo(HttpServletRequest request){
+    public ResultUtil<UserInfoWarpper> queryUserInfo(Integer language, HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            Map<String, Object> map = userInfoService.queryUserInfo(uid);
+            Map<String, Object> map = userInfoService.queryUserInfo(language, uid);
             return ResultUtil.success(UserInfoWarpper.getUserInfoWarpper(map));
         }catch (Exception e){
             e.printStackTrace();
@@ -643,7 +643,7 @@
             @ApiImplicitParam(value = "电话号码", name = "phone", required = true, dataType = "String"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<Object> queryUser(String phone){
+    public ResultUtil<Object> queryUser(Integer language, String phone){
         try {
             String substring = phone.substring(0, 1);
             if("0".equals(substring)){
@@ -652,7 +652,7 @@
             if(phone.indexOf("233") < 0){
                 phone = "233" + phone;
             }
-            Map<String, Object> map = userInfoService.queryUser(phone);
+            Map<String, Object> map = userInfoService.queryUser(language, phone);
             if(null != map){
                 return ResultUtil.success(UserInfoWarpper.getUserInfoWarpper(map));
             }
@@ -1146,11 +1146,11 @@
             BigDecimal bigDecimal = new BigDecimal(code);
             long max = Long.MAX_VALUE;
             if(bigDecimal.compareTo(new BigDecimal(max)) >= 0){
-                return ResultUtil.error(language == 1 ? "银行卡号格式错误" : language == 2 ? "The format of bank card number is incorrect" : "Format incorrect du numéro de carte bancaire");
+                return ResultUtil.error(language == 1 ? "银行卡号格式错误" : language == 2 ? "Format error of bank card" : "Erreur de format de la carte bancaire");
             }
             BankCard bankCard = bankCardService.selectOne(new EntityWrapper<BankCard>().eq("code", code));
             if(null != bankCard){
-                return ResultUtil.error(language == 1 ? "银行卡重复" : language == 2 ? "Duplicate bank card" : "Double carte bancaire");
+                return ResultUtil.error(language == 1 ? "银行卡重复" : language == 2 ? "Reduplication of bank card" : "Reduplication de la carte bancaire");
             }
             bankCard = new BankCard();
             bankCard.setUserId(uid);
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
index f5c28b3..7342fe8 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
@@ -302,7 +302,7 @@
         a.state as state,
         a.oldState as oldState,
         DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
-        DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime,
+        DATE_FORMAT(a.travelTime, '%m-%d %H:%i') as travelTime,
         DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
         DATE_FORMAT(a.travelTime, '%Y-%m-%d %H:%i:%s') as travelTime1,
         a.startLon as startLon,
@@ -361,7 +361,7 @@
         select
         id as orderId,
         DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
-        DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time,
+        DATE_FORMAT(travelTime, '%m-%d %H:%i') as time,
         startAddress as startAddress,
         endAddress as endAddress,
         driverId as driverId,
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
index 1c5d9a9..6d9e27f 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -50,7 +50,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
 
 
 
@@ -103,7 +103,7 @@
      * @param orderId
      * @return
      */
-    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+    Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception;
 
 
 
@@ -173,7 +173,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception;
 
 
 
@@ -182,7 +182,7 @@
      * @param uid
      * @return
      */
-    List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid);
+    List<Map<String, Object>> queryMyTravelRecord(Integer language, @Param("uid") Integer uid);
 
 
 
@@ -197,7 +197,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+    List<Map<String, Object>> queryInvoiceOrder(Integer language, Integer type, Date startTime, Date endTime, Double startMoney,
                                                 Double endMoney, Integer uid) throws Exception;
 
 
@@ -220,7 +220,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception;
+    List<Map<String, Object>> queryRedEnvelope(Integer language, Integer uid) throws Exception;
 
 
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index 9734040..be1b4d0 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -238,10 +238,10 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
         OrderCrossCity orderCrossCity = this.selectById(orderId);
-        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(uid, orderCrossCity.getCompanyId(), 1, 3, orderCrossCity.getOrderMoney(), pageNum, size);
-        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(uid, orderCrossCity.getCompanyId(), 1, 0, orderCrossCity.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(language, uid, orderCrossCity.getCompanyId(), 1, 3, orderCrossCity.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(language, uid, orderCrossCity.getCompanyId(), 1, 0, orderCrossCity.getOrderMoney(), pageNum, size);
         list.addAll(list1);
         return list;
     }
@@ -319,7 +319,7 @@
                 paymentRecordService.saveData(1, null, null, orderId, 3, 1, orderMoney, null, 1);//添加预支付数据
                 resultUtil = resultUtil;
             }else{
-                resultUtil = ResultUtil.error("获取支付信息失败");
+                resultUtil = ResultUtil.error(language == 1 ? "获取支付信息失败" : language == 2 ? "Failed to obtain payment information" : "Impossible d’obtenir les informations de paiement");
             }
         }
         if(payType == 2){//支付宝支付
@@ -328,12 +328,12 @@
                 paymentRecordService.saveData(1, null, null, orderId, 3, 2, orderMoney, null, 1);//添加预支付数据
                 resultUtil = resultUtil;
             }else{
-                resultUtil = ResultUtil.error("获取支付信息失败");
+                resultUtil = ResultUtil.error(language == 1 ? "获取支付信息失败" : language == 2 ? "Failed to obtain payment information" : "Impossible d’obtenir les informations de paiement");
             }
         }
         if(payType == 3){//余额支付
             if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
-                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant");
+                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
             }
 
             userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -695,8 +695,16 @@
      * @throws Exception
      */
     @Override
-    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
+    public Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception {
         Map<String, Object> map = orderCrossCityMapper.queryOrderInfo(orderId);
+        String insertTime = map.get("insertTime").toString();
+        map.put("insertTime", DateUtil.conversionFormat(language, insertTime));
+        String travelTime = map.get("travelTime").toString();
+        map.put("travelTime", DateUtil.conversionFormat1(language, travelTime));
+        String arriveTime = map.get("arriveTime").toString();
+        map.put("arriveTime", DateUtil.conversionFormat(language, arriveTime));
+        String travelTime1 = map.get("travelTime1").toString();
+        map.put("travelTime1", DateUtil.conversionFormat(language, travelTime1));
         if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
             OrderCrossCity orderCrossCity = this.selectById(orderId);
             orderCrossCity.setReassignNotice(0);
@@ -781,7 +789,7 @@
                     paymentRecordService.saveData(1, null, null, id, 3, 1, query.getMoney(), null, 1);//添加预支付数据
                     resultUtil = resultUtil;
                 }else{
-                    resultUtil = ResultUtil.error("获取支付信息失败", "");
+                    resultUtil = ResultUtil.error(language == 1 ? "获取支付信息失败" : language == 2 ? "Failed to obtain payment information" : "Impossible d’obtenir les informations de paiement", "");
                 }
             }
             if(payType == 2){//支付宝支付
@@ -792,12 +800,12 @@
                     paymentRecordService.saveData(1, null, null, id, 3, 2, query.getMoney(), null, 1);//添加预支付数据
                     resultUtil = resultUtil;
                 }else{
-                    resultUtil = ResultUtil.error("获取支付信息失败", "");
+                    resultUtil = ResultUtil.error(language == 1 ? "获取支付信息失败" : language == 2 ? "Failed to obtain payment information" : "Impossible d’obtenir les informations de paiement", "");
                 }
             }
             if(payType == 3){//余额支付
                 if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){
-                    return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant");
+                    return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
                 }
 
                 userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1108,27 +1116,41 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> maps = orderCrossCityMapper.queryMyOrderList(uid, pageNum, size);
         for(Map<String, Object> map : maps){
             if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
                 map.put("state", map.get("oldState"));
             }
+            String orderTime = map.get("orderTime").toString();
+            map.put("orderTime", DateUtil.conversionFormat(language, orderTime));
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat1(language, time));
         }
         return maps;
     }
 
     @Override
-    public List<Map<String, Object>> queryMyTravelRecord(Integer uid) {
-        return orderCrossCityMapper.queryMyTravelRecord(uid);
+    public List<Map<String, Object>> queryMyTravelRecord(Integer language, Integer uid) {
+        List<Map<String, Object>> list = orderCrossCityMapper.queryMyTravelRecord(uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
     @Override
-    public List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid) throws Exception {
+    public List<Map<String, Object>> queryInvoiceOrder(Integer language, Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid) throws Exception {
         startTime = dateUtil.getStartOrEndDate(startTime, "start");
         endTime = dateUtil.getStartOrEndDate(endTime, "end");
-        return orderCrossCityMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+        List<Map<String, Object>> list = orderCrossCityMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
@@ -1139,8 +1161,13 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception {
-        return orderCrossCityMapper.queryRedEnvelope(uid);
+    public List<Map<String, Object>> queryRedEnvelope(Integer language, Integer uid) throws Exception {
+        List<Map<String, Object>> list = orderCrossCityMapper.queryRedEnvelope(uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
index 3283856..0e15cb3 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
@@ -65,16 +65,17 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "业务类型(4=同城小件物流,5=跨城小件物流)", name = "type", required = true, paramType = "query", dataType = "int"),
             @ApiImplicitParam(value = "起点经纬度(103.23265,30.2312)", name = "startLonLat", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "终点经纬度(103.23265,30.2312)", name = "endLonLat", required = true, paramType = "query", dataType = "string"),
             @ApiImplicitParam(value = "终点详细地址", name = "endAddress", required = true, paramType = "query", dataType = "string"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endAddress, Integer language, HttpServletRequest request){
+    public ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endLonLat, String endAddress, Integer language, HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            return orderLogisticsService.queryLogisticsUnitPrice(type, startLonLat, endAddress, uid, language);
+            return orderLogisticsService.queryLogisticsUnitPrice(type, startLonLat, endLonLat, endAddress, uid, language);
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
@@ -91,11 +92,12 @@
             @ApiImplicitParam(value = "货物数量", name = "number", required = true, paramType = "query", dataType = "int"),
             @ApiImplicitParam(value = "业务类型(4=同城小件物流,5=跨城小件物流)", name = "type", required = true, paramType = "query", dataType = "int"),
             @ApiImplicitParam(value = "起点经纬度(103.23265,30.2312)", name = "startLonLat", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "终点经纬度(103.23265,30.2312)", name = "endLonLat", required = true, paramType = "query", dataType = "string"),
             @ApiImplicitParam(value = "终点详细地址", name = "endAddress", required = true, paramType = "query", dataType = "string")
     })
-    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endAddress, Integer language){
+    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language){
         try {
-            return orderLogisticsService.queryPayMoney(number, type, startLonLat, endAddress, language);
+            return orderLogisticsService.queryPayMoney(number, type, startLonLat, endLonLat, endAddress, language);
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
@@ -137,6 +139,7 @@
             @ApiImplicitParam(value = "预约取货点详细地址", name = "startAddress", required = true, paramType = "query", dataType = "string"),
             @ApiImplicitParam(value = "收货人姓名", name = "recipient", required = true, paramType = "query", dataType = "string"),
             @ApiImplicitParam(value = "收货人电话", name = "recipientPhone", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "终点经纬度(103.23265,30.2312)", name = "endLonLat", required = true, paramType = "query", dataType = "string"),
             @ApiImplicitParam(value = "收货详细地址", name = "endAddress", required = true, paramType = "query", dataType = "string"),
             @ApiImplicitParam(value = "是否加急(1=否,2=是)", name = "urgent", required = true, paramType = "query", dataType = "int"),
             @ApiImplicitParam(value = "加急费用", name = "tipMoney", required = true, paramType = "query", dataType = "double"),
@@ -145,14 +148,14 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
     public ResultUtil<BaseWarpper> smallLogistics(Integer type, Integer cargoType, Integer cargoNumber, String remark, String placementLon, String placementLat, String startLon, String startLat, String startAddress,
-                                     String recipient, String recipientPhone, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, Integer language, HttpServletRequest request){
+                                     String recipient, String recipientPhone, String endLonLat, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, Integer language, HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
             return orderLogisticsService.smallLogistics(type, cargoType, cargoNumber, remark, placementLon, placementLat, startLon, startLat, startAddress,
-                    recipient, recipientPhone, endAddress, urgent, tipMoney, travelTime, orderSource, uid, language);
+                    recipient, recipientPhone, endLonLat, endAddress, urgent, tipMoney, travelTime, orderSource, uid, language);
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
index d764d7e..5802869 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
@@ -30,7 +30,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endAddress, Integer uid, Integer language) throws Exception;
+    ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endLonLat, String endAddress, Integer uid, Integer language) throws Exception;
 
 
     /**
@@ -41,7 +41,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endAddress, Integer language) throws Exception;
+    ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception;
 
 
     /**
@@ -65,7 +65,7 @@
      * @throws Exception
      */
     ResultUtil smallLogistics(Integer type, Integer cargoType, Integer cargoNumber, String remark, String placementLon, String placementLat, String startLon, String startLat, String startAddress,
-                   String recipient, String recipientPhone, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, Integer uid, Integer language) throws Exception;
+                   String recipient, String recipientPhone, String endLonLat, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, Integer uid, Integer language) throws Exception;
 
 
 
@@ -138,7 +138,7 @@
      * @param uid
      * @return
      */
-    List<Map<String, Object>> queryMyTravelRecord(Integer uid);
+    List<Map<String, Object>> queryMyTravelRecord(Integer language, Integer uid);
 
 
 
@@ -153,7 +153,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+    List<Map<String, Object>> queryInvoiceOrder(Integer language, Integer type, Date startTime, Date endTime, Double startMoney,
                                                 Double endMoney, Integer uid, Integer orderType) throws Exception;
 
 
@@ -201,7 +201,7 @@
      * @return
      * @throws Exception
      */
-    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+    Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception;
 
 
     /**
@@ -210,5 +210,5 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
 }
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 6f79b4a..1a174c7 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
@@ -175,13 +175,10 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endAddress, Integer uid, Integer language) throws Exception {
-        FindPlaceFromTextVo findplacefromtext = GoogleMapUtil.textsearch(endAddress);
-        if(null == findplacefromtext){
-            return ResultUtil.error(language == 1 ? "收货地址有误,无法查询具体地址信息" : language == 2 ? "The delivery address is incorrect, and the specific address information cannot be queried" : "L’adresse de livraison est incorrecte, impossible de vérifier l’adresse spécifique");
-        }
-        Double lng = findplacefromtext.getLng();
-        Double lat = findplacefromtext.getLat();
+    public ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endLonLat, String endAddress, Integer uid, Integer language) throws Exception {
+        String[] split = endLonLat.split(",");
+        Double lng = Double.valueOf(split[0]);
+        Double lat = Double.valueOf(split[1]);
         ResultUtil<Map<String, Double>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
         if(price.getCode() != 200){
             return price;
@@ -201,13 +198,10 @@
      * @return
      * @throws Exception
      */
-    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endAddress, Integer language) throws Exception{
-        FindPlaceFromTextVo findplacefromtext = GoogleMapUtil.textsearch(endAddress);
-        if(null == findplacefromtext){
-            return ResultUtil.error(language == 1 ? "收货地址有误,无法查询具体地址信息" : language == 2 ? "The delivery address is incorrect, and the specific address information cannot be queried" : "L’adresse de livraison est incorrecte, impossible de vérifier l’adresse spécifique");
-        }
-        Double lng = findplacefromtext.getLng();
-        Double lat = findplacefromtext.getLat();
+    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endLonLat, String endAddress, Integer language) throws Exception{
+        String[] split = endLonLat.split(",");
+        Double lng = Double.valueOf(split[0]);
+        Double lat = Double.valueOf(split[1]);
         ResultUtil<Map<String, Double>> price = this.getPrice1(type, startLonLat.split(",")[0], startLonLat.split(",")[1], lng.toString(), lat.toString(), language);
         if(price.getCode() == 200 && type == 5){
             Map<String, Double> data = price.getData();
@@ -242,7 +236,7 @@
      */
     @Override
     public ResultUtil smallLogistics(Integer type, Integer cargoType, Integer cargoNumber, String remark, String placementLon, String placementLat, String startLon, String startLat, String startAddress, String recipient,
-                                     String recipientPhone, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, Integer uid, Integer language) throws Exception {
+                                     String recipientPhone, String endLonLat, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, Integer uid, Integer language) throws Exception {
         startAddress = startAddress.replaceAll("& #40;", "(");
         startAddress = startAddress.replaceAll("& #41;", ")");
         endAddress = endAddress.replaceAll("& #40;", "(");
@@ -250,7 +244,7 @@
         OrderLogistics orderLogistics = new OrderLogistics();
         Company query = companyCityService.query1(placementLon, placementLat);
         if(null == query){
-            return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No corporate services are available at this location" : "Aucun service d’entreprise n’est disponible pour cet emplacement");
+            return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No service yet at this area" : "Pas encore de service dans cette zone");
         }
         orderLogistics.setCompanyId(query.getId());
         orderLogistics.setType(type);
@@ -263,7 +257,7 @@
         orderLogistics.setPlacementLat(Double.valueOf(placementLat));
         ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(placementLat), Double.valueOf(placementLon));
         if(null == reverseGeocode){
-            return ResultUtil.error(language == 1 ? "解析地址出错" : language == 2 ? "Resolve address error" : "Erreur dans la résolution de l’adresse");
+            return ResultUtil.error(language == 1 ? "解析地址出错" : language == 2 ? "Address resolution error" : "Erreur de résolution d’adresse");
         }
 
         String address = reverseGeocode.getAddress();
@@ -271,12 +265,10 @@
         orderLogistics.setStartLon(Double.valueOf(startLon));
         orderLogistics.setStartLat(Double.valueOf(startLat));
         orderLogistics.setStartAddress(startAddress);
-        FindPlaceFromTextVo findplacefromtext = GoogleMapUtil.textsearch(endAddress);
-        if(null == findplacefromtext){
-            return ResultUtil.error(language == 1 ? "收货地址有误,无法查询具体地址信息" : language == 2 ? "The delivery address is incorrect, and the specific address information cannot be queried" : "L’adresse de livraison est incorrecte, impossible de vérifier l’adresse spécifique");
-        }
-        Double lng = findplacefromtext.getLng();
-        Double lat = findplacefromtext.getLat();
+
+        String[] split = endLonLat.split(",");
+        Double lng = Double.valueOf(split[0]);
+        Double lat = Double.valueOf(split[1]);
         orderLogistics.setEndLon(lng);
         orderLogistics.setEndLat(lat);
         orderLogistics.setEndAddress(endAddress);
@@ -370,7 +362,7 @@
         Company query = companyCityService.query1(startLon, startLat);
         if(null == query){
             return ResultUtil.error(language == 1 ? "预约取货点暂无企业服务" : language == 2 ?
-                    "There is no enterprise service at the reservation pickup point" : "Prise de rendez-vous point de collecte pas encore disponible pour les entreprises");
+                    "No service yet at the reserved pickup point." : "Les points de ramassage prévus ne sont pas disponibles pour le moment.");
         }
         Double price1 = 0D;
         Double price2 = 0D;
@@ -378,10 +370,10 @@
             Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
             DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon));
             if(null == distancematrix){
-                return ResultUtil.error(language == 1 ? "计算距离出错" : language == 2 ? "Error in distance calculation" : "Erreur de calcul des distances");
+                return ResultUtil.error(language == 1 ? "计算距离出错" : language == 2 ? "Errors in computing distance" : "Erreurs dans le calcul de la distance");
             }
             if(distancematrix.getDistance() == 0){
-                return ResultUtil.error(language == 1 ? "未获取到有效的距离" : language == 2 ? "A valid distance was not obtained" : "La distance effective n’est pas acquise");
+                return ResultUtil.error(language == 1 ? "未获取到有效的距离" : language == 2 ? "Not obtaining available distance" : "Ne pas obtenir la distance disponible");
             }
             String content = String.valueOf(query1.get("content"));
             JSONObject jsonObject = JSON.parseObject(content);
@@ -400,7 +392,7 @@
                 price1 = jsonObject.getDouble("num11");
             }
             if(dist.compareTo(jsonObject.getDouble("num10")) > 0){
-                return ResultUtil.error(language == 1 ? "超出可服务范围" : language == 2 ? "Out of service range" : "Au-delà du service disponible");
+                return ResultUtil.error(language == 1 ? "超出可服务范围" : language == 2 ? "Beyond service range" : "Au-delà de la portée de service");
             }
         }else{
             Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
@@ -489,7 +481,7 @@
     public ResultUtil payLogisticsOrder(Integer payType, Integer bankCardId, Integer orderId, Integer type, Integer language) throws Exception {
         OrderLogistics orderLogistics = this.selectById(orderId);
         if(orderLogistics.getState() != 7){
-            return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, no double payment is allowed" : "La commande a été payée, aucun paiement en double n’est autorisé", "");
+            return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, recurring payments is not allowed." : "La commande a été payée, les paiements récurrents ne sont pas autorisés.", "");
         }
         Integer uid = orderLogistics.getUserId();
         Double orderMoney = orderLogistics.getOrderMoney();
@@ -553,7 +545,7 @@
 
         if(payType == 3){//余额支付
             if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
-                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant", "");
+                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant", "");
             }
 
             userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -576,6 +568,173 @@
                     pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0);
                 }
             }).start();
+
+            if(ToolUtil.isNotEmpty(userInfo.getEmail())){
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        try {
+                            String path = templatePath + "user/receiptLogistics.html";
+                            Document document = Jsoup.parse(new File(path), "UTF-8");
+                            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
+                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                            Driver driver = driverService.selectById(orderLogistics.getDriverId());
+                            if(1 == language){
+                                document.getElementById("english").remove();
+                                document.getElementById("french").remove();
+                                Element title_chinese = document.getElementById("title_chinese");
+                                title_chinese.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",您在I-GO1个订单消费GHS " + orderLogistics.getPayMoney());
+                                Element xcf_chinese = document.getElementById("xcf_chinese");
+                                xcf_chinese.text("GHS " + orderLogistics.getOrderMoney());
+                                Element xj_chinese = document.getElementById("xj_chinese");
+                                xj_chinese.text("GHS " + orderLogistics.getOrderMoney());
+                                Element pay_type_chinese = document.getElementById("pay_type_chinese");
+                                pay_type_chinese.text("现金");
+                                Element pay_money_chinese = document.getElementById("pay_money_chinese");
+                                pay_money_chinese.text("GHS " + orderLogistics.getPayMoney());
+                                Element pdf_chinese = document.getElementById("pdf_chinese");
+                                pdf_chinese.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
+                                Element lost_item_chinese = document.getElementById("lost_item_chinese");
+                                lost_item_chinese.attr("href", "http://182.160.16.251:81/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
+//                    Element track_chinese = document.getElementById("track_chinese");
+//                    track_chinese.attr("href", "http://182.160.16.251:81/mailbox/user/location.html");
+                                Element pay_time_chinese = document.getElementById("pay_time_chinese");
+                                pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
+                                Elements driver_chinese = document.getElementsByClass("driver_chinese");
+                                for (int i = 0; i < driver_chinese.size(); i++) {
+                                    Element element = driver_chinese.get(i);
+                                    element.text(driver.getFirstName() + "." + driver.getLastName());
+                                }
+                                Element start_address_chinese = document.getElementById("start_address_chinese");
+                                start_address_chinese.text(orderLogistics.getStartAddress());
+                                Element end_address_chinese = document.getElementById("end_address_chinese");
+                                end_address_chinese.text(orderLogistics.getEndAddress());
+                                Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
+                                Element server_tel_chinese = document.getElementById("server_tel_chinese");
+                                server_tel_chinese.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
+                            }
+                            if(2 == language){
+                                document.getElementById("chinese").remove();
+                                document.getElementById("french").remove();
+                                Element title_english = document.getElementById("title_english");
+                                title_english.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",You spent GHS " + orderLogistics.getPayMoney() + " on the trip ");
+                                Element xcf_english = document.getElementById("xcf_english");
+                                xcf_english.text("GHS " + orderLogistics.getOrderMoney());
+                                Element xj_english = document.getElementById("xj_english");
+                                xj_english.text("GHS " + orderLogistics.getOrderMoney());
+                                Element pay_type_english = document.getElementById("pay_type_english");
+                                pay_type_english.text("cash");
+                                Element pay_money_english = document.getElementById("pay_money_english");
+                                pay_money_english.text("GHS " + orderLogistics.getPayMoney());
+                                Element pdf_english = document.getElementById("pdf_english");
+                                pdf_english.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
+                                Element lost_item_english = document.getElementById("lost_item_english");
+                                lost_item_english.attr("href", "http://182.160.16.251:81/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
+//                    Element track_english = document.getElementById("track_english");
+//                    track_english.attr("href", "http://182.160.16.251:81/mailbox/user/location.html");
+                                Element pay_time_english = document.getElementById("pay_time_english");
+                                pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
+                                Elements driver_english = document.getElementsByClass("driver_english");
+                                for (int i = 0; i < driver_english.size(); i++) {
+                                    Element element = driver_english.get(i);
+                                    element.text(driver.getFirstName() + "." + driver.getLastName());
+                                }
+                                Element start_address_english = document.getElementById("start_address_english");
+                                start_address_english.text(orderLogistics.getStartAddress());
+                                Element end_address_english = document.getElementById("end_address_english");
+                                end_address_english.text(orderLogistics.getEndAddress());
+                                Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
+                                Element server_tel_english = document.getElementById("server_tel_english");
+                                server_tel_english.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
+                            }
+                            if(3 == language){
+                                document.getElementById("chinese").remove();
+                                document.getElementById("english").remove();
+                                Element title_french = document.getElementById("title_french");
+                                title_french.text("Le " + DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ", vous avez dépensé GHS " + orderLogistics.getPayMoney() + " sur le voyage");
+                                Element xcf_french = document.getElementById("xcf_french");
+                                xcf_french.text("GHS " + orderLogistics.getOrderMoney());
+                                Element xj_french = document.getElementById("xj_french");
+                                xj_french.text("GHS " + orderLogistics.getOrderMoney());
+                                Element pay_type_french = document.getElementById("pay_type_french");
+                                pay_type_french.text("espèces");
+                                Element pay_money_french = document.getElementById("pay_money_french");
+                                pay_money_french.text("GHS " + orderLogistics.getPayMoney());
+                                Element pdf_french = document.getElementById("pdf_french");
+                                pdf_french.attr("href", "http://182.160.16.251:80/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
+                                Element lost_item_french = document.getElementById("lost_item_french");
+                                lost_item_french.attr("href", "http://182.160.16.251:81/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
+//                    Element track_french = document.getElementById("track_french");
+//                    track_french.attr("href", "http://182.160.16.251:81/mailbox/user/location.html");
+                                Element pay_time_french = document.getElementById("pay_time_french");
+                                pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
+                                Elements driver_french = document.getElementsByClass("driver_french");
+                                for (int i = 0; i < driver_french.size(); i++) {
+                                    Element element = driver_french.get(i);
+                                    element.text(driver.getFirstName() + "." + driver.getLastName());
+                                }
+                                Element start_address_french = document.getElementById("start_address_french");
+                                start_address_french.text(orderLogistics.getStartAddress());
+                                Element end_address_french = document.getElementById("end_address_french");
+                                end_address_french.text(orderLogistics.getEndAddress());
+                                Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
+                                Element server_tel_french = document.getElementById("server_tel_french");
+                                server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
+                            }
+
+                            EmailUtil.send(userInfo.getEmail(), language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis",  document.html());
+
+                            //开始生成pdf收据和html收据
+                            File file = new File("/usr/local/nginx/html/files/html/");
+                            if(!file.exists()){
+                                file.mkdirs();
+                            }
+                            file = new File("/usr/local/nginx/html/files/html/parcel_receipt_" + orderId + ".html");
+                            if(!file.exists()){
+                                file.createNewFile();
+                            }
+                            FileWriter fileWriter = new FileWriter(file);
+                            fileWriter.write(document.html());
+                            fileWriter.flush();
+                            fileWriter.close();
+                            FileInputStream fileInputStream = new FileInputStream(file);
+                            File file1 = new File("/usr/local/nginx/html/files/pdf/");
+                            if(!file1.exists()){
+                                file1.mkdirs();
+                            }
+                            file1 = new File("/usr/local/nginx/html/files/pdf/parcel_receipt_" + orderId + ".pdf");
+                            if(!file1.exists()){
+                                file1.createNewFile();
+                            }
+                            FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                            HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                            String link ="http://182.160.16.251:81/files/html/parcel_receipt_" + orderId + ".html";
+                            TEmail tEmail = new TEmail();
+                            tEmail.setLink(link);
+                            tEmail.setUserId(uid);
+                            tEmail.setType(1);
+                            tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis");
+                            tEmail.setOrderId(orderId);
+                            tEmail.setCreateTime(new Date());
+                            int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+                            String week = EmailUtil.getWeek(language, i);
+                            tEmail.setWeek(week);
+                            boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+                            if(am){
+                                tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+                            }else {
+                                tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+                            }
+                            emailService.insert(tEmail);
+
+                        }catch (Exception e){
+                            e.printStackTrace();
+                        }
+                    }
+                }).start();
+            }
+
             systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成包裹订单支付,谢谢使用!" : language == 2
                     ? "You have successfully completed the parcel order payment, thank you for using!" :
                     "Vous avez terminé avec succès le paiement de la commande de colis, merci de l’utiliser!", uid, 1);
@@ -603,13 +762,13 @@
                             String path = templatePath + "user/receiptLogistics.html";
                             Document document = Jsoup.parse(new File(path), "UTF-8");
                             SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
-                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
+                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                             Driver driver = driverService.selectById(orderLogistics.getDriverId());
                             if(1 == language){
                                 document.getElementById("english").remove();
                                 document.getElementById("french").remove();
                                 Element title_chinese = document.getElementById("title_chinese");
-                                title_chinese.text(sdf2.format(orderLogistics.getTravelTime()) + ",您在I-GO1个订单消费GHS " + orderLogistics.getPayMoney());
+                                title_chinese.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",您在I-GO1个订单消费GHS " + orderLogistics.getPayMoney());
                                 Element xcf_chinese = document.getElementById("xcf_chinese");
                                 xcf_chinese.text("GHS " + orderLogistics.getOrderMoney());
                                 Element xj_chinese = document.getElementById("xj_chinese");
@@ -625,7 +784,7 @@
 //                    Element track_chinese = document.getElementById("track_chinese");
 //                    track_chinese.attr("href", "http://182.160.16.251:81/mailbox/user/location.html");
                                 Element pay_time_chinese = document.getElementById("pay_time_chinese");
-                                pay_time_chinese.text(sdf1.format(orderLogistics.getTravelTime()));
+                                pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                 Elements driver_chinese = document.getElementsByClass("driver_chinese");
                                 for (int i = 0; i < driver_chinese.size(); i++) {
                                     Element element = driver_chinese.get(i);
@@ -643,7 +802,7 @@
                                 document.getElementById("chinese").remove();
                                 document.getElementById("french").remove();
                                 Element title_english = document.getElementById("title_english");
-                                title_english.text(sdf2.format(orderLogistics.getTravelTime()) + ",You spent GHS " + orderLogistics.getPayMoney() + " on the trip ");
+                                title_english.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",You spent GHS " + orderLogistics.getPayMoney() + " on the trip ");
                                 Element xcf_english = document.getElementById("xcf_english");
                                 xcf_english.text("GHS " + orderLogistics.getOrderMoney());
                                 Element xj_english = document.getElementById("xj_english");
@@ -659,7 +818,7 @@
 //                    Element track_english = document.getElementById("track_english");
 //                    track_english.attr("href", "http://182.160.16.251:81/mailbox/user/location.html");
                                 Element pay_time_english = document.getElementById("pay_time_english");
-                                pay_time_english.text(sdf1.format(orderLogistics.getTravelTime()));
+                                pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                 Elements driver_english = document.getElementsByClass("driver_english");
                                 for (int i = 0; i < driver_english.size(); i++) {
                                     Element element = driver_english.get(i);
@@ -677,7 +836,7 @@
                                 document.getElementById("chinese").remove();
                                 document.getElementById("english").remove();
                                 Element title_french = document.getElementById("title_french");
-                                title_french.text(sdf2.format(orderLogistics.getTravelTime()) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande i-go1 le ");
+                                title_french.text("Le " + DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ", vous avez dépensé GHS " + orderLogistics.getPayMoney() + " sur le voyage" );
                                 Element xcf_french = document.getElementById("xcf_french");
                                 xcf_french.text("GHS " + orderLogistics.getOrderMoney());
                                 Element xj_french = document.getElementById("xj_french");
@@ -693,7 +852,7 @@
 //                    Element track_french = document.getElementById("track_french");
 //                    track_french.attr("href", "http://182.160.16.251:81/mailbox/user/location.html");
                                 Element pay_time_french = document.getElementById("pay_time_french");
-                                pay_time_french.text(sdf1.format(orderLogistics.getTravelTime()));
+                                pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                 Elements driver_french = document.getElementsByClass("driver_french");
                                 for (int i = 0; i < driver_french.size(); i++) {
                                     Element element = driver_french.get(i);
@@ -841,7 +1000,7 @@
 
         if(payType == 3){//余额支付
             if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
-                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant");
+                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
             }
 
             userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1107,6 +1266,10 @@
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> maps = orderLogisticsMapper.queryMyOrderList(uid, pageNum, size, language);
         for (Map<String, Object> map : maps) {
+            String orderTime = map.get("orderTime").toString();
+            map.put("orderTime", DateUtil.conversionFormat(language, orderTime));
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
             Integer orderId = Integer.valueOf(String.valueOf(map.get("orderId")));
             Integer state = Integer.valueOf(String.valueOf(map.get("state")));
             if(state == 6){
@@ -1125,16 +1288,26 @@
      * @return
      */
     @Override
-    public List<Map<String, Object>> queryMyTravelRecord(Integer uid) {
-        return orderLogisticsMapper.queryMyTravelRecord(uid);
+    public List<Map<String, Object>> queryMyTravelRecord(Integer language, Integer uid) {
+        List<Map<String, Object>> list = orderLogisticsMapper.queryMyTravelRecord(uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
     @Override
-    public List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid, Integer orderType) throws Exception {
+    public List<Map<String, Object>> queryInvoiceOrder(Integer language, Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid, Integer orderType) throws Exception {
         startTime = dateUtil.getStartOrEndDate(startTime, "start");
         endTime = dateUtil.getStartOrEndDate(endTime, "end");
-        return orderLogisticsMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+        List<Map<String, Object>> list = orderLogisticsMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
@@ -1154,10 +1327,10 @@
         OrderLogistics orderLogistics = this.selectById(id);
         Integer integer = null;
         if(null == orderLogistics){
-            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel the order, the order information is incorrect" : "Échec de l'annulation de la commande, les informations de la commande sont incorrectes");
+            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande.");
         }
         if(orderLogistics.getState() > 5 && orderLogistics.getState() != 7 && orderLogistics.getState() != 11){
-            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Cancel order failed, illegal operation" : "Échec de l'annulation de la commande, opération illégale");
+            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale.");
         }
 
         if(orderLogistics.getState() == 7){
@@ -1327,8 +1500,10 @@
     }
 
     @Override
-    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
+    public Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception {
         Map<String, Object> map = orderLogisticsMapper.queryOrderInfo(orderId);
+        String travelTime = map.get("travelTime").toString();
+        map.put("travelTime", DateUtil.conversionFormat1(language, travelTime));
         Integer state = Integer.valueOf(String.valueOf(map.get("state")));
         OrderLogistics orderLogistics = this.selectById(orderId);
         if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
@@ -1361,10 +1536,10 @@
 
 
     @Override
-    public List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
         OrderLogistics orderLogistics = this.selectById(orderId);
-        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(uid, orderLogistics.getCompanyId(), 1, 4, orderLogistics.getOrderMoney(), pageNum, size);
-        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(uid, orderLogistics.getCompanyId(), 1, 0, orderLogistics.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(language, uid, orderLogistics.getCompanyId(), 1, 4, orderLogistics.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(language, uid, orderLogistics.getCompanyId(), 1, 0, orderLogistics.getOrderMoney(), pageNum, size);
         list.addAll(list1);
         return list;
     }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
index 08b2ee3..63ef460 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
@@ -54,7 +54,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil<BaseWarpper> queryCancleAmount(Integer id) throws Exception;
+    ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer language) throws Exception;
 
 
 
@@ -104,7 +104,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
 
 
 
@@ -184,7 +184,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception;
 
 
 
@@ -199,7 +199,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+    List<Map<String, Object>> queryInvoiceOrder(Integer language, Integer type, Date startTime, Date endTime, Double startMoney,
                                                 Double endMoney, Integer uid) throws Exception;
 
 
@@ -209,7 +209,7 @@
      * @param orderId
      * @return
      */
-    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+    Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception;
 
 
 
@@ -219,7 +219,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception;
+    List<Map<String, Object>> queryMyTravelRecord(Integer language, Integer uid) throws Exception;
 
 
 
@@ -247,5 +247,5 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception;
+    List<Map<String, Object>> queryRedEnvelope(Integer language, Integer uid) throws Exception;
 }
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 ae75ffa..ef2b83c 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
@@ -231,16 +231,16 @@
          */
         List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 1, 1, 1, 2, 3, 4, 5, 6,  11);
         if(orderPrivateCars.size() > 0){
-            return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "There are outstanding orders" : "Il y a des commandes en attente");
+            return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "Uncompleted order(s)" : "Commande(s) non complétée(s)");
         }
         List<OrderTaxi> list = orderTaxiMapper.queryByState_(uid, 1, 1, 1, 2, 3, 4, 5, 6, 11);
         if(list.size() > 0){
-            return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "There are outstanding orders" : "Il y a des commandes en attente");
+            return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "Uncompleted order(s)" : "Commande(s) non complétée(s)");
         }
 
         orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 2, 1, 1, 2, 3, 4, 5, 6,  11);
         if(orderPrivateCars.size() > 0 && reservation == 2){
-            return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "There are outstanding orders" : "Il y a des commandes en attente");
+            return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "Uncompleted order(s)" : "Commande(s) non complétée(s)");
         }
 
         orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 1, 1, 7,12);
@@ -254,7 +254,7 @@
 
         list = orderTaxiMapper.queryByState_(uid, 2, 1, 1, 2, 3, 4, 5, 6, 11);
         if(list.size() > 0 && reservation == 2){
-            return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "There are outstanding orders" : "Il y a des commandes en attente");
+            return ResultUtil.error(language == 1 ? "有未完成的订单" : language == 2 ? "Uncompleted order(s)" : "Commande(s) non complétée(s)");
         }
 
         startAddress = startAddress.replaceAll("& #40;", "(");
@@ -262,7 +262,7 @@
         endAddress = endAddress.replaceAll("& #40;", "(");
         endAddress = endAddress.replaceAll("& #41;", ")");
         if((orderSource == 1 || orderSource == 3) && null == serverCarModelId){
-            return ResultUtil.error(language == 1 ? "请选择服务车型" : language == 2 ? "Please select the service model" : "Veuillez sélectionner un modèle de service");
+            return ResultUtil.error(language == 1 ? "请选择服务车型" : language == 2 ? "Please select vehicle-type" : "Veuillez sélectionner le type de véhicule");
         }
 
         OrderPrivateCar orderPrivateCar = new OrderPrivateCar();
@@ -287,7 +287,7 @@
         if(instead == 0 || ToolUtil.isEmpty(orderPrivateCar.getPassengers())){
             UserInfo userInfo = userInfoService.selectById(uid);
             if(ToolUtil.isEmpty(userInfo.getPhone())){
-                return ResultUtil.error(language == 1 ? "请先绑定手机号码" : language == 2 ? "Please bind the mobile phone number first" : "Veuillez d’abord lier le numéro de téléphone mobile");
+                return ResultUtil.error(language == 1 ? "请先绑定手机号码" : language == 2 ? "Please bind your mobile phone number first." : "Veuillez d’abord vous inscrire en liant votre numéro de téléphone portable.");
             }
             orderPrivateCar.setPassengers(userInfo.getFirstName() + "." + userInfo.getLastName());
             orderPrivateCar.setPassengersPhone(userInfo.getPhone());
@@ -300,35 +300,35 @@
         if(orderSource == 2){//扫码下单
             Driver driver = driverService.selectById(driverId);
             if(null == driver){
-                return ResultUtil.error(language == 1 ? "司机信息有误,无法完成下单" : language == 2 ? "Incorrect driver information, unable to complete the order" : "Les informations du conducteur sont incorrectes pour compléter la commande");
+                return ResultUtil.error(language == 1 ? "司机信息有误,无法完成下单" : language == 2 ? "Wrong driver-information, unable to place an order." : "Informations erronées sur le chauffeur, il ne peut donc pas passer une commande.");
             }
             if(driver.getAuthState() == 1){
-                return ResultUtil.error(language == 1 ? "司机信息还未完成审核,无法完成下单" : language == 2 ? "The driver information has not been reviewed, and the order cannot be completed" : "Les informations du conducteur n’ont pas été vérifiées et la commande n’a pas pu être finalisée");
+                return ResultUtil.error(language == 1 ? "司机信息还未完成审核,无法完成下单" : language == 2 ? "The driver is not yet done with review, unable to place an order." : "Le chauffeur n’a pas encore terminé son examen, il ne peut donc pas passer une commande.");
             }
             if(driver.getAuthState() == 3){
-                return ResultUtil.error(language == 1 ? "司机账户已被冻结,无法提供服务" : language == 2 ? "The driver's account has been frozen, unable to provide service" : "Le compte du conducteur a été bloqué et le service n’est pas disponible");
+                return ResultUtil.error(language == 1 ? "司机账户已被冻结,无法提供服务" : language == 2 ? "Driver account is frozen, unable to provide service." : "Le compte du chauffeur est gelé, il n’est donc pas possible de fournir des services.");
             }
             if(driver.getAuthState() == 4){
-                return ResultUtil.error(language == 1 ? "司机信息未通过审核,无法提供服务" : language == 2 ? "Driver information has not passed the audit, unable to provide service" : "Les informations du conducteur n’ont pas été vérifiées et le service n’a pas pu être fourni");
+                return ResultUtil.error(language == 1 ? "司机信息未通过审核,无法提供服务" : language == 2 ? "The driver is not verified and qualified, unable to provide service." : "Le chauffeur n’est pas vérifié et qualifié, incapable de fournir le services.");
             }
             if(driver.getState() == 1){
-                return ResultUtil.error(language == 1 ? "司机还未上线,无法提供服务" : language == 2 ? "The driver is not online and cannot provide service" : "Le chauffeur n’est pas en ligne et n’est pas en mesure d’offrir ses services");
+                return ResultUtil.error(language == 1 ? "司机还未上线,无法提供服务" : language == 2 ? "The driver is not online, unable to provide service." : "Le chauffeur n’est pas en ligne, incapable de fournir le services.");
             }
             if(driver.getState() == 3){
-                return ResultUtil.error(language == 1 ? "司机正在服务中,无法提供服务" : language == 2 ? "The driver is in service and cannot provide service" : "Le chauffeur est en service et le service n’est pas disponible");
+                return ResultUtil.error(language == 1 ? "司机正在服务中,无法提供服务" : language == 2 ? "The driver is on a trip, unable to provide service." : "Le chauffeur est en service, incapable de fournir des services.");
             }
             List<DriverService> query = driverServiceService.query(driverId, 1);
             if(query.size() == 0){
-                return ResultUtil.error(language == 1 ? "该司机不能服务此业务" : language == 2 ? "The driver cannot serve this service" : "Ce conducteur ne peut pas servir cette entreprise");
+                return ResultUtil.error(language == 1 ? "该司机不能服务此业务" : language == 2 ? "Driver has outstanding fees to pay, unable to receive orders." : "Le chauffeur a des frais impayés à payer, incapable de recevoir des commandes.");
             }
 
             int count = this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId).eq("driverPay", 1).in("state", Arrays.asList(7, 8, 9)).eq("isDelete", 1));
             if(count > 0){
-                return ResultUtil.error("司机未支付订单费用,无法进行接单");
+                return ResultUtil.error(language == 1 ? "司机未支付订单费用,无法进行接单" : language == 2 ? "Driver has outstanding fees to pay, unable to receive orders." : "Le chauffeur a des frais impayés à payer, incapable de recevoir des commandes.");
             }
             int count1 = orderLogisticsService.selectCount(new EntityWrapper<OrderLogistics>().eq("driverId", driverId).eq("driverPay", 1).ne("state", 10).eq("isDelete", 1));
             if(count1 > 0){
-                return ResultUtil.error("司机未支付订单费用,无法进行接单");
+                return ResultUtil.error(language == 1 ? "司机未支付订单费用,无法进行接单" : language == 2 ? "Driver has outstanding fees to pay, unable to receive orders." : "Le chauffeur a des frais impayés à payer, incapable de recevoir des commandes.");
             }
 
             orderPrivateCar.setDriverId(driverId);
@@ -468,10 +468,10 @@
         language = userInfoService.queryLanguage(uid, language);
         OrderPrivateCar orderPrivateCar = this.selectById(id);
         if(null == orderPrivateCar){
-            return ResultUtil.error(language == 1 ? "推送订单失败,订单信息有误" : language == 2 ? "Failed to push the order, the order information is wrong" : "Impossible de pousser la commande, les informations de commande sont erronées");
+            return ResultUtil.error(language == 1 ? "推送订单失败,订单信息有误" : language == 2 ? "Failed to deliver order, order-information error." : "Echec de l’envoi de la commande, erreur d’information de commande.");
         }
         if(orderPrivateCar.getState() != 1){
-            return ResultUtil.error(language == 1 ? "订单已被司机接单,不能重复推送" : language == 2 ? "The order has been taken by the driver and cannot be pushed repeatedly" : "La commande a été prise par le chauffeur et ne peut pas être poussée à plusieurs reprises");
+            return ResultUtil.error(language == 1 ? "订单已被司机接单,不能重复推送" : language == 2 ? "Driver has received the order, do not redeliver it." : "Le chauffeur a déjà reçu la commande,Il ne peut pas être répété");
         }
         //处理摆渡订单的继续推单操作
         if(orderPrivateCar.getType() == 2){
@@ -480,7 +480,7 @@
             List<Map<String, Integer>> orders = new ArrayList<>();
             for(OrderPrivateCar orderPrivateCar1 : list){
                 if(orderPrivateCar1.getState() != 1){
-                    return ResultUtil.error(language == 1 ? "订单已被司机接单,推单取消" : language == 2 ? "The order has been taken by the driver, and the push order has been cancelled" : "La commande a été prise par le chauffeur et la commande push a été annulée");
+                    return ResultUtil.error(language == 1 ? "订单已被司机接单,推单取消" : language == 2 ? "Driver has received the order, order-delivering cancelled." : "Le chauffeur a déjà reçu la commande. Envoyez-la commande l'annuler.");
                 }
                 Map<String, Integer> map = new HashMap<>();
                 map.put("orderType", 1);
@@ -490,7 +490,7 @@
             List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
             for(OrderTaxi orderTaxi : list1){
                 if(orderTaxi.getState() != 1){
-                    return ResultUtil.error(language == 1 ? "订单已被司机接单,推单取消" : language == 2 ? "The order has been taken by the driver, and the push order has been cancelled" : "La commande a été prise par le chauffeur et la commande push a été annulée");
+                    return ResultUtil.error(language == 1 ? "订单已被司机接单,推单取消" : language == 2 ? "Driver has received the order, order-delivering cancelled." : "Le chauffeur a déjà reçu la commande. Envoyez-la commande l'annuler.");
                 }
                 Map<String, Integer> map = new HashMap<>();
                 map.put("orderType", 2);
@@ -507,10 +507,10 @@
     }
 
     @Override
-    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id) throws Exception {
+    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(id);
         if(null == orderPrivateCar){
-            return ResultUtil.error("获取数据失败,订单信息有误");
+            return ResultUtil.error(language == 1 ? "获取数据失败,订单信息有误" : language == 2 ? "Failed to obtain data, order-information error." : "Impossible d’obtenir les données, erreur d’information de commande. ");
         }
         double amount = 0;
         CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId());
@@ -540,10 +540,10 @@
         OrderPrivateCar orderPrivateCar = this.selectById(id);
         Integer integer = null;
         if(null == orderPrivateCar){
-            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel the order, the order information is incorrect" : "Échec de l'annulation de la commande, les informations de la commande sont incorrectes");
+            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande.");
         }
         if(orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){
-            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Cancel order failed, illegal operation" : "Échec de l'annulation de la commande, opération illégale");
+            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale.");
         }
         if(null == orderPrivateCar.getDriverId()){//没有接单的情况
             if(orderPrivateCar.getType() == 2){//摆渡车
@@ -593,7 +593,7 @@
                 driver.setState(2);
                 driverService.updateById(driver);
             }else{
-                return ResultUtil.error(language == 1 ? "请完善后台取消规则设置" : language == 2 ? "Please improve the background cancellation rule settings" : "Veuillez améliorer les paramètres de la règle d'annulation en arrière-plan");
+                return ResultUtil.error(language == 1 ? "请完善后台取消规则设置" : language == 2 ? "Please complete the setting of cancellation rules from the background." : "Veuillez compléter le réglage des règles d’annulation à partir de l’arrière-plan.");
             }
 
         }
@@ -620,10 +620,10 @@
         ResultUtil resultUtil = ResultUtil.success("");
 
         if(null == orderPrivateCar){
-            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Order cancellation failed because the order information is incorrect" : "Annulation échouée, informations de commande incorrectes", "");
+            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande.", "");
         }
         if(orderPrivateCar.getState() != 12){
-            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Order cancellation failed, illegal operation" : "Annulation de la commande échouée, opération illégale", "");
+            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale.", "");
         }
         OrderCancel orderCancel = null;
         if(null == cancleId || cancleId==0){
@@ -685,7 +685,7 @@
             }
             if(payType == 3){//余额支付
                 if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){
-                    return ResultUtil.error((language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant"), "");
+                    return ResultUtil.error((language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant"), "");
                 }
 
                 userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -834,10 +834,10 @@
     }
 
     @Override
-    public List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
-        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(uid, orderPrivateCar.getCompanyId(), 1, 1, orderPrivateCar.getOrderMoney(), pageNum, size);
-        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(uid, orderPrivateCar.getCompanyId(), 1, 0, orderPrivateCar.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(language, uid, orderPrivateCar.getCompanyId(), 1, 1, orderPrivateCar.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(language, uid, orderPrivateCar.getCompanyId(), 1, 0, orderPrivateCar.getOrderMoney(), pageNum, size);
         list.addAll(list1);
         return list;
     }
@@ -849,10 +849,10 @@
     public ResultUtil payPrivateCarOrder(Integer payType, Integer bankCardId, Integer orderId, Integer couponId, Integer type, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
         if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
-            return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, no double payment is allowed" : "La commande a été payée, aucun paiement en double n’est autorisé", "");
+            return ResultUtil.error(language == 1 ? "订单已完成支付,不允许重复支付" : language == 2 ? "The order has been paid, recurring payments is not allowed." : "La commande a été payée, les paiements récurrents ne sont pas autorisés.", "");
         }
         if(orderPrivateCar.getState() != 7){
-            return ResultUtil.error(language == 1 ? "订单不在待支付状态,不允许支付" : language == 2 ? "The order is not pending payment and cannot be paid" : "La commande n’est pas en attente de paiement et ne permet pas le paiement", "");
+            return ResultUtil.error(language == 1 ? "订单不在待支付状态,不允许支付" : language == 2 ? "The order is no longer with Pending Payment, making payments is not allowed." : "La commande n’est plus en attente de paiement, il n’est pas permis d’effectuer des paiements.", "");
         }
         Integer uid = orderPrivateCar.getUserId();
         Double orderMoney = orderPrivateCar.getOrderMoney();
@@ -866,19 +866,19 @@
         if(null != couponId){
             userCouponRecord = userCouponRecordService.selectById(couponId);
             if(userCouponRecord.getCompanyId() != orderPrivateCar.getCompanyId()){
-                return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupons cannot be used for this order" : "Le coupon ne peut pas être utilisé pour cette commande", "");
+                return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupon cannot be used for this order." : "Le coupon ne peut pas être utilisé pour cette commande.", "");
             }
             if(userCouponRecord.getState() == 2){
-                return ResultUtil.error(language == 1 ? "优惠券已使用" : language == 2 ? "Coupon used" : "Coupon a été utilisé", "");
+                return ResultUtil.error(language == 1 ? "优惠券已使用" : language == 2 ? "Coupon has been used." : "Le coupon a été utilisé.", "");
             }
             if(userCouponRecord.getState() == 3){
-                return ResultUtil.error(language == 1 ? "优惠券已过期" : language == 2 ? "Coupon has expired" : "Le coupon a expiré", "");
+                return ResultUtil.error(language == 1 ? "优惠券已过期" : language == 2 ? "Coupon is expired." : "Le coupon a expiré.", "");
             }
             if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 1){
-                return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupons cannot be used for this order" : "Le coupon ne peut pas être utilisé pour cette commande", "");
+                return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupon cannot be used for this order." : "Le coupon ne peut pas être utilisé pour cette commande.", "");
             }
             if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){
-                return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupons cannot be used for this order" : "Le coupon ne peut pas être utilisé pour cette commande", "");
+                return ResultUtil.error(language == 1 ? "优惠券不能用于此订单" : language == 2 ? "Coupon cannot be used for this order." : "Le coupon ne peut pas être utilisé pour cette commande.", "");
             }
             orderMoney = orderMoney - userCouponRecord.getMoney();
             orderPrivateCar.setCouponMoney(userCouponRecord.getMoney());
@@ -962,7 +962,7 @@
         }
         if(payType == 3){//余额支付
             if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
-                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant", "");
+                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant", "");
             }
 
             userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1022,7 +1022,7 @@
                             String path = templatePath +  "user/receipt.html";
                             Document document = Jsoup.parse(new File(path), "UTF-8");
                             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
+                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                             SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");
                             Car car = carMapper.selectById(orderPrivateCar.getCarId());
                             Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
@@ -1035,7 +1035,7 @@
                                 document.getElementById("english").remove();
                                 document.getElementById("french").remove();
                                 Element title_chinese = document.getElementById("title_chinese");
-                                title_chinese.text(sdf.format(orderPrivateCar.getTravelTime()) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
+                                title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
                                 Element xcf_chinese = document.getElementById("xcf_chinese");
                                 xcf_chinese.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_chinese = document.getElementById("xj_chinese");
@@ -1051,7 +1051,7 @@
                                 Element track_chinese = document.getElementById("track_chinese");
                                 track_chinese.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + orderId);
                                 Element pay_time_chinese = document.getElementById("pay_time_chinese");
-                                pay_time_chinese.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_chinese = document.getElementsByClass("driver_chinese");
                                 for (int i = 0; i < driver_chinese.size(); i++) {
                                     Element element = driver_chinese.get(i);
@@ -1079,7 +1079,7 @@
                                 document.getElementById("chinese").remove();
                                 document.getElementById("french").remove();
                                 Element title_english = document.getElementById("title_english");
-                                title_english.text(sdf.format(orderPrivateCar.getTravelTime()) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
+                                title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
                                 Element xcf_english = document.getElementById("xcf_english");
                                 xcf_english.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_english = document.getElementById("xj_english");
@@ -1095,7 +1095,7 @@
                                 Element track_english = document.getElementById("track_english");
                                 track_english.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + orderId);
                                 Element pay_time_english = document.getElementById("pay_time_english");
-                                pay_time_english.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_english = document.getElementsByClass("driver_english");
                                 for (int i = 0; i < driver_english.size(); i++) {
                                     Element element = driver_english.get(i);
@@ -1123,7 +1123,7 @@
                                 document.getElementById("chinese").remove();
                                 document.getElementById("english").remove();
                                 Element title_french = document.getElementById("title_french");
-                                title_french.text("Vous consommez GHS " + orderPrivateCar.getPayMoney() + " sur votre commande i-go1 le " + sdf.format(orderPrivateCar.getTravelTime()));
+                                title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + orderPrivateCar.getPayMoney() + " sur le voyage");
                                 Element xcf_french = document.getElementById("xcf_french");
                                 xcf_french.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_french = document.getElementById("xj_french");
@@ -1139,18 +1139,18 @@
                                 Element track_french = document.getElementById("track_french");
                                 track_french.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + orderId);
                                 Element pay_time_french = document.getElementById("pay_time_french");
-                                pay_time_french.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_french = document.getElementsByClass("driver_french");
                                 for (int i = 0; i < driver_french.size(); i++) {
                                     Element element = driver_french.get(i);
                                     element.text(driver.getFirstName() + "." + driver.getLastName());
                                 }
                                 Element cp_french = document.getElementById("cp_french");
-                                cp_french.text("Plaque d’immatriculation:" + car.getCarLicensePlate());
+                                cp_french.text("Plaque: GS " + car.getCarLicensePlate());
                                 Element pf_french = document.getElementById("pf_french");
-                                pf_french.text("Évaluation des pilotes: " + aDouble);
+                                pf_french.text("Note du chauffeur: " + aDouble);
                                 Element lc_french = document.getElementById("lc_french");
-                                lc_french.text("Kilométrage: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
+                                lc_french.text("Distance: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
                                 Element start_time_french = document.getElementById("start_time_french");
                                 start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                 Element start_address_french = document.getElementById("start_address_french");
@@ -1331,7 +1331,7 @@
                             String path = templatePath +  "user/receipt.html";
                             Document document = Jsoup.parse(new File(path), "UTF-8");
                             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
+                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                             SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");
                             Car car = carMapper.selectById(orderPrivateCar.getCarId());
                             Double aDouble = 0D;
@@ -1344,7 +1344,7 @@
                                 document.getElementById("english").remove();
                                 document.getElementById("french").remove();
                                 Element title_chinese = document.getElementById("title_chinese");
-                                title_chinese.text(sdf.format(orderPrivateCar.getTravelTime()) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
+                                title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
                                 Element xcf_chinese = document.getElementById("xcf_chinese");
                                 xcf_chinese.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_chinese = document.getElementById("xj_chinese");
@@ -1360,7 +1360,7 @@
                                 Element track_chinese = document.getElementById("track_chinese");
                                 track_chinese.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + orderId);
                                 Element pay_time_chinese = document.getElementById("pay_time_chinese");
-                                pay_time_chinese.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_chinese = document.getElementsByClass("driver_chinese");
                                 for (int i = 0; i < driver_chinese.size(); i++) {
                                     Element element = driver_chinese.get(i);
@@ -1388,7 +1388,7 @@
                                 document.getElementById("chinese").remove();
                                 document.getElementById("french").remove();
                                 Element title_english = document.getElementById("title_english");
-                                title_english.text(sdf.format(orderPrivateCar.getTravelTime()) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
+                                title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
                                 Element xcf_english = document.getElementById("xcf_english");
                                 xcf_english.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_english = document.getElementById("xj_english");
@@ -1404,7 +1404,7 @@
                                 Element track_english = document.getElementById("track_english");
                                 track_english.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + orderId);
                                 Element pay_time_english = document.getElementById("pay_time_english");
-                                pay_time_english.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_english = document.getElementsByClass("driver_english");
                                 for (int i = 0; i < driver_english.size(); i++) {
                                     Element element = driver_english.get(i);
@@ -1432,7 +1432,7 @@
                                 document.getElementById("chinese").remove();
                                 document.getElementById("english").remove();
                                 Element title_french = document.getElementById("title_french");
-                                title_french.text("Vous consommez GHS " + orderPrivateCar.getPayMoney() + " sur votre commande i-go1 le " + sdf.format(orderPrivateCar.getTravelTime()));
+                                title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + orderPrivateCar.getPayMoney() + " sur le voyage");
                                 Element xcf_french = document.getElementById("xcf_french");
                                 xcf_french.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_french = document.getElementById("xj_french");
@@ -1448,18 +1448,18 @@
                                 Element track_french = document.getElementById("track_french");
                                 track_french.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + orderId);
                                 Element pay_time_french = document.getElementById("pay_time_french");
-                                pay_time_french.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_french = document.getElementsByClass("driver_french");
                                 for (int i = 0; i < driver_french.size(); i++) {
                                     Element element = driver_french.get(i);
                                     element.text(driver.getFirstName() + "." + driver.getLastName());
                                 }
                                 Element cp_french = document.getElementById("cp_french");
-                                cp_french.text("Plaque d’immatriculation:" + car.getCarLicensePlate());
+                                cp_french.text("Plaque: GS " + car.getCarLicensePlate());
                                 Element pf_french = document.getElementById("pf_french");
-                                pf_french.text("Évaluation des pilotes: " + aDouble);
+                                pf_french.text("Note du chauffeur: " + aDouble);
                                 Element lc_french = document.getElementById("lc_french");
-                                lc_french.text("Kilométrage: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
+                                lc_french.text("Distance: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
                                 Element start_time_french = document.getElementById("start_time_french");
                                 start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                 Element start_address_french = document.getElementById("start_address_french");
@@ -1605,11 +1605,11 @@
             Map<String, Object> map = userActivityRedenvelopeService.query(orderPrivateCar.getCompanyId(), orderPrivateCar.getTravelTime());
             Double laveMoney = Double.valueOf(String.valueOf(map.get("laveMoney")));
             if(money.compareTo(laveMoney) > 0){
-                return ResultUtil.error("手速太慢了,红包已派发完啦!");
+                return ResultUtil.error(language == 1 ? "手速太慢了,红包已派发完啦!" : language == 2 ? "Too slow, all the lucky-promo has been distributed!" : "Trop lent, toute la promo chanceuse a été distribuée !");
             }
             //判断当前红包是否大于剩余可领取总金额
             if(money.compareTo(Double.valueOf(map.get("lavePrice").toString())) > 0){
-                return ResultUtil.error("手速太慢了,红包已派发完啦!");
+                return ResultUtil.error(language == 1 ? "手速太慢了,红包已派发完啦!" : language == 2 ? "Too slow, all the lucky-promo has been distributed!" : "Trop lent, toute la promo chanceuse a été distribuée !");
             }
             double v = new BigDecimal(laveMoney).subtract(new BigDecimal(money)).doubleValue();
 
@@ -1633,7 +1633,7 @@
                     Element user_chinese = document.getElementById("user_chinese");
                     user_chinese.text("您好 " + userInfo.getNickName() + ",");
                     Element time_chinese = document.getElementById("time_chinese");
-                    time_chinese.text("此活动有效期在" + sdf.format(query.getInsertTime()) + "至" + sdf.format(query.getEndTime()) + ",详情请查看I-GO平台");
+                    time_chinese.text("此活动有效期在" + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + "至" + DateUtil.conversionFormat(language, sdf.format(query.getEndTime())) + ",详情请查看I-GO平台");
                 }
                 if(2 == language){
                     document.getElementById("chinese").remove();
@@ -1641,7 +1641,7 @@
                     Element user_english = document.getElementById("user_english");
                     user_english.text("Hello " + userInfo.getNickName() + ",");
                     Element time_english = document.getElementById("time_english");
-                    time_english.text("You could use it from" + sdf.format(query.getInsertTime()) + "to" + sdf.format(query.getEndTime()) + ",check more details on the app.");
+                    time_english.text("You could use it from" + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + "to" + DateUtil.conversionFormat(language, sdf.format(query.getEndTime())) + ",check more details on the app.");
                 }
                 if(3 == language){
                     document.getElementById("chinese").remove();
@@ -1649,7 +1649,7 @@
                     Element user_french = document.getElementById("user_french");
                     user_french.text("Bonjour " + userInfo.getNickName() + ",");
                     Element time_french = document.getElementById("time_french");
-                    time_french.text("Cette promotion est valable du" + sdf.format(query.getInsertTime()) + "au" + sdf.format(query.getEndTime()) + ". Veuillez consulter la plateforme i-go pour plus de détails.");
+                    time_french.text("Cette promotion est valable du" + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + "au" + DateUtil.conversionFormat(language, sdf.format(query.getEndTime())) + ". Veuillez consulter la plateforme i-go pour plus de détails.");
                 }
 
                 EmailUtil.send(userInfo.getEmail(), language == 1 ? "红包活动" : language == 2 ? "Red envelope activity" : "Activité de l’enveloppe rouge",  document.html());
@@ -1835,7 +1835,7 @@
                             String path = templatePath +  "user/receipt.html";
                             Document document = Jsoup.parse(new File(path), "UTF-8");
                             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
+                            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                             SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");
                             Car car = carMapper.selectById(orderPrivateCar.getCarId());
                             Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
@@ -1848,7 +1848,7 @@
                                 document.getElementById("english").remove();
                                 document.getElementById("french").remove();
                                 Element title_chinese = document.getElementById("title_chinese");
-                                title_chinese.text(sdf.format(orderPrivateCar.getTravelTime()) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
+                                title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
                                 Element xcf_chinese = document.getElementById("xcf_chinese");
                                 xcf_chinese.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_chinese = document.getElementById("xj_chinese");
@@ -1864,7 +1864,7 @@
                                 Element track_chinese = document.getElementById("track_chinese");
                                 track_chinese.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + id);
                                 Element pay_time_chinese = document.getElementById("pay_time_chinese");
-                                pay_time_chinese.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_chinese = document.getElementsByClass("driver_chinese");
                                 for (int i = 0; i < driver_chinese.size(); i++) {
                                     Element element = driver_chinese.get(i);
@@ -1892,7 +1892,7 @@
                                 document.getElementById("chinese").remove();
                                 document.getElementById("french").remove();
                                 Element title_english = document.getElementById("title_english");
-                                title_english.text(sdf.format(orderPrivateCar.getTravelTime()) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
+                                title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
                                 Element xcf_english = document.getElementById("xcf_english");
                                 xcf_english.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_english = document.getElementById("xj_english");
@@ -1908,7 +1908,7 @@
                                 Element track_english = document.getElementById("track_english");
                                 track_english.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + id);
                                 Element pay_time_english = document.getElementById("pay_time_english");
-                                pay_time_english.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_english = document.getElementsByClass("driver_english");
                                 for (int i = 0; i < driver_english.size(); i++) {
                                     Element element = driver_english.get(i);
@@ -1936,7 +1936,7 @@
                                 document.getElementById("chinese").remove();
                                 document.getElementById("english").remove();
                                 Element title_french = document.getElementById("title_french");
-                                title_french.text("Vous consommez GHS " + orderPrivateCar.getPayMoney() + " sur votre commande i-go1 le " + sdf.format(orderPrivateCar.getTravelTime()));
+                                title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + orderPrivateCar.getPayMoney() + " sur le voyage");
                                 Element xcf_french = document.getElementById("xcf_french");
                                 xcf_french.text("GHS " + orderPrivateCar.getOrderMoney());
                                 Element xj_french = document.getElementById("xj_french");
@@ -1952,18 +1952,18 @@
                                 Element track_french = document.getElementById("track_french");
                                 track_french.attr("href", "http://182.160.16.251:81/mailbox/user/location.html?orderId=" + id);
                                 Element pay_time_french = document.getElementById("pay_time_french");
-                                pay_time_french.text(sdf1.format(orderPrivateCar.getEndServiceTime()));
+                                pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderPrivateCar.getEndServiceTime())));
                                 Elements driver_french = document.getElementsByClass("driver_french");
                                 for (int i = 0; i < driver_french.size(); i++) {
                                     Element element = driver_french.get(i);
                                     element.text(driver.getFirstName() + "." + driver.getLastName());
                                 }
                                 Element cp_french = document.getElementById("cp_french");
-                                cp_french.text("Plaque d’immatriculation:" + car.getCarLicensePlate());
+                                cp_french.text("Plaque: GS " + car.getCarLicensePlate());
                                 Element pf_french = document.getElementById("pf_french");
-                                pf_french.text("Évaluation des pilotes: " + aDouble);
+                                pf_french.text("Note du chauffeur: " + aDouble);
                                 Element lc_french = document.getElementById("lc_french");
-                                lc_french.text("Kilométrage: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
+                                lc_french.text("Distance: " + aDouble1 + "km / " + orderPrivateCar.getDuration() + "minutes");
                                 Element start_time_french = document.getElementById("start_time_french");
                                 start_time_french.text(sdf2.format(orderPrivateCar.getTravelTime()));
                                 Element start_address_french = document.getElementById("start_address_french");
@@ -2054,10 +2054,14 @@
     }
 
     @Override
-    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> maps = orderPrivateCarMapper.queryMyOrderList(uid, pageNum, size);
         for(Map<String, Object> map : maps){
+            String orderTime = map.get("orderTime").toString();
+            map.put("orderTime", DateUtil.conversionFormat(language, orderTime));
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat1(language, time));
             Integer orderId = Integer.valueOf(String.valueOf(map.get("orderId")));
             Integer state = Integer.valueOf(String.valueOf(map.get("state")));
             if(state == 11){
@@ -2073,15 +2077,22 @@
     }
 
     @Override
-    public List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid) throws Exception {
+    public List<Map<String, Object>> queryInvoiceOrder(Integer language, Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid) throws Exception {
         startTime = dateUtil.getStartOrEndDate(startTime, "start");
         endTime = dateUtil.getStartOrEndDate(endTime, "end");
-        return orderPrivateCarMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+        List<Map<String, Object>> list = orderPrivateCarMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
     @Override
-    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
+    public Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception {
         Map<String, Object> map = orderPrivateCarMapper.queryOrderInfo(orderId);
+        String travelTime = map.get("travelTime").toString();
+        map.put("travelTime", DateUtil.conversionFormat1(language, travelTime));
         Integer state = Integer.valueOf(String.valueOf(map.get("state")));
         if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
             OrderPrivateCar orderPrivateCar = this.selectById(orderId);
@@ -2125,8 +2136,13 @@
     }
 
     @Override
-    public List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception {
-        return orderPrivateCarMapper.queryMyTravelRecord(uid);
+    public List<Map<String, Object>> queryMyTravelRecord(Integer language, Integer uid) throws Exception {
+        List<Map<String, Object>> list = orderPrivateCarMapper.queryMyTravelRecord(uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
@@ -2239,8 +2255,13 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception {
-        return orderPrivateCarMapper.queryRedEnvelope(uid);
+    public List<Map<String, Object>> queryRedEnvelope(Integer language, Integer uid) throws Exception {
+        List<Map<String, Object>> list = orderPrivateCarMapper.queryRedEnvelope(uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
     /**
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml
index 977fa7a..367fb9a 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml
@@ -57,7 +57,7 @@
         d.couponType as dcouponType,
         e.couponType as ecouponType,
         DATE_FORMAT(a.startTime, '%Y-%m-%d') as startTime,
-        DATE_FORMAT(a.endTime, '%Y-%m-%-d') as endTime,
+        DATE_FORMAT(a.endTime, '%Y-%m-%d') as endTime,
         a.effective as beffective,
         a.effective as ceffective,
         a.effective as deffective,
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml
index 17103d4..a9871e4 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml
@@ -25,7 +25,7 @@
         a.couponId as couponId,
         a.totalNum as totalNum,
         DATE_FORMAT(a.startTime, '%Y-%m-%d') as startTime,
-        DATE_FORMAT(a.endTime, '%Y-%m-%-d') as endTime,
+        DATE_FORMAT(a.endTime, '%Y-%m-%d') as endTime,
         a.enable as enable,
         a.effective as effective,
         c.money as money,
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml
index df65060..9bc6adb 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml
@@ -27,7 +27,7 @@
         a.totalNum as totalNum,
         a.laveNum as laveNum,
         DATE_FORMAT(a.startTime, '%Y-%m-%d') as startTime,
-        DATE_FORMAT(a.endTime, '%Y-%m-%-d') as endTime,
+        DATE_FORMAT(a.endTime, '%Y-%m-%d') as endTime,
         a.`enable` as `enable`,
         b.money as money,
         b.fullMoney as fullMoney,
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java
index 7df13cd..6d7d06c 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java
@@ -44,5 +44,5 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryCancel(Integer uid, Integer isPay) throws Exception;
+    List<Map<String, Object>> queryCancel(Integer language, Integer uid, Integer isPay) throws Exception;
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java
index 0b9ac6d..0faaf7d 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java
@@ -27,7 +27,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryOrderEvaluate(Integer driverId, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryOrderEvaluate(Integer language, Integer driverId, Integer pageNum, Integer size) throws Exception;
 
 
     /**
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java
index 4946e5a..fb4db56 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java
@@ -15,5 +15,5 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> query(Double money, Integer companyId) throws Exception;
+    List<Map<String, Object>> query(Integer language, Double money, Integer companyId) throws Exception;
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java
index 222d297..a69e0ca 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java
@@ -15,6 +15,6 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> query(Integer companyId) throws Exception;
+    List<Map<String, Object>> query(Integer language, Integer companyId) throws Exception;
 
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java
index 4c78c09..b908d94 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java
@@ -27,7 +27,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryCoupon(Integer uid, Integer companyId, Integer state, Integer couponUseType, Double money, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryCoupon(Integer language, Integer uid, Integer companyId, Integer state, Integer couponUseType, Double money, Integer pageNum, Integer size) throws Exception;
 
 
     /**
@@ -38,7 +38,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryMyCoupons(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception;
+    List<Map<String, Object>> queryMyCoupons(Integer language, Integer state, Integer pageNum, Integer size, Integer uid) throws Exception;
 
 
     /**
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
index 9533856..bdf7045 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
@@ -80,7 +80,7 @@
 
 
 
-    ResultUtil<LoginWarpper> wxIsLogin( String jscode) throws Exception;
+    ResultUtil<LoginWarpper> wxIsLogin(Integer language, String jscode) throws Exception;
 
 
     /**
@@ -142,7 +142,7 @@
      * @return
      * @throws Exception
      */
-    Map<String, Object> queryUserInfo(Integer uid) throws Exception;
+    Map<String, Object> queryUserInfo(Integer language, Integer uid) throws Exception;
 
 
     /**
@@ -151,7 +151,7 @@
      * @return
      * @throws Exception
      */
-    Map<String, Object> queryUser(String phone) throws Exception;
+    Map<String, Object> queryUser(Integer language, String phone) throws Exception;
 
 
     /**
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
index 64003de..78737e4 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
@@ -63,7 +63,7 @@
         if(ToolUtil.isNotEmpty(content)){
             if(content.length() > 200){
                 language = userInfoService.queryLanguage(uid, language);
-                return ResultUtil.error(language == 1 ? "反馈内容过长" : language == 2 ? "Feedback is too long" : "Les commentaires sont trop longs");
+                return ResultUtil.error(language == 1 ? "反馈内容过长" : language == 2 ? "Feedback-content is overlong." : "Le contenu de l’avis est trop long.");
             }
             List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
             for(SensitiveWords s : sensitiveWords){
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java
index f5abbcd..a944820 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java
@@ -4,6 +4,7 @@
 import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
 import com.stylefeng.guns.modular.system.model.OrderCancel;
 import com.stylefeng.guns.modular.system.service.IOrderCancelService;
+import com.stylefeng.guns.modular.system.util.DateUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
@@ -78,7 +79,12 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryCancel(Integer uid, Integer isPay) throws Exception {
-        return orderCancelMapper.queryCancel(uid, isPay);
+    public List<Map<String, Object>> queryCancel(Integer language, Integer uid, Integer isPay) throws Exception {
+		List<Map<String, Object>> list = orderCancelMapper.queryCancel(uid, isPay);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java
index 9cdd4e6..d02c843 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java
@@ -12,6 +12,7 @@
 import com.stylefeng.guns.modular.system.model.SensitiveWords;
 import com.stylefeng.guns.modular.system.service.IOrderEvaluateService;
 import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.util.DateUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -61,7 +62,7 @@
     public ResultUtil saveData(Integer orderId, Integer orderType, Integer fraction, String content, Integer language) throws Exception {
         if(ToolUtil.isNotEmpty(content)){
             if(null != content && content.length() > 500){
-                return ResultUtil.error(language == 1 ? "评价内容过长" : language == 2 ? "The evaluation is too long" : "Contenu trop long de l’évaluation");
+                return ResultUtil.error(language == 1 ? "评价内容过长" : language == 2 ? "Rating-content is overlong." : "Le contenu de l’évaluation est trop long.");
             }
             List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
             for(SensitiveWords s : sensitiveWords){
@@ -110,9 +111,14 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryOrderEvaluate(Integer driverId, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryOrderEvaluate(Integer language, Integer driverId, Integer pageNum, Integer size) throws Exception {
         pageNum = (pageNum - 1) * size;
-        return orderEvaluateMapper.queryOrderEvaluate(driverId, pageNum, size);
+        List<Map<String, Object>> list = orderEvaluateMapper.queryOrderEvaluate(driverId, pageNum, size);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java
index b882259..9c649f6 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java
@@ -44,7 +44,7 @@
         if(ToolUtil.isNotEmpty(content)){
             if(content.length() > 200){
                 language = userInfoService.queryLanguage(uid, language);
-                return ResultUtil.error(language == 1 ? "留言内容过长" : language == 2 ? "Message is too long" : "Le message est trop long");
+                return ResultUtil.error(language == 1 ? "留言内容过长" : language == 2 ? "Message-content is overlong." : "Le contenu du message est trop long.");
             }
             List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
             for(SensitiveWords s : sensitiveWords){
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
index 21b7d1b..567d209 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -68,7 +68,7 @@
             language = 2;
         }
         if(null == reverseGeocode){
-            return ResultUtil.error(language == 1 ? "获取地址信息失败" : language == 2 ? "Failed to get address information" : "Impossible d'obtenir les informations d'adresse");
+            return ResultUtil.error(language == 1 ? "获取地址信息失败" : language == 2 ? "Failed to obtain address" : "Impossible d’obtenir l’adresse");
         }
         AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
         String[] city = new String[addressComponentsVos.length];
@@ -77,7 +77,7 @@
         }
         Company query = companyCityService.query(city);
         if(null == query){
-            return ResultUtil.error(language == 1 ? "起点暂无企业提供服务" : language == 2 ? "The starting point has no enterprises to provide services" : "Le point de départ n'a pas d'entreprises pour fournir des services", new ArrayList<>());
+            return ResultUtil.error(language == 1 ? "起点暂无企业提供服务" : language == 2 ? "No service yet at the starting point" : "Pas encore de service au point de départ", new ArrayList<>());
         }
         Double slnt = Double.valueOf(startLonLat.split(",")[0]);
         Double slat = Double.valueOf(startLonLat.split(",")[1]);
@@ -85,9 +85,9 @@
         Double elat = Double.valueOf(endLonLat.split(",")[1]);
         DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(slat, slnt, elat, elnt);
         if(null == distancematrix){
-            return ResultUtil.error(language == 1 ? "获取预估距离出错" : language == 2 ? "Error getting estimated distance" : "Erreur lors de l'obtention de la distance estimée", new ArrayList<>());
+            return ResultUtil.error(language == 1 ? "获取预估距离出错" : language == 2 ? "Obtaining-estimated-distance error" : "Erreur d’obtention de la distance estimée", new ArrayList<>());
         }else if(distancematrix.getDistance() == 0){
-            return ResultUtil.error(language == 1 ? "未获取到有效的距离" : language == 2 ? "A valid distance was not obtained" : "La distance effective n’est pas acquise", new ArrayList<>());
+            return ResultUtil.error(language == 1 ? "未获取到有效的距离" : language == 2 ? "Not obtaining available distance" : "Ne pas obtenir la distance disponible", new ArrayList<>());
         }
         long distance1 = distancematrix.getDistance();//距离(米)
         double distance1_ = Double.valueOf(distance1).doubleValue();
@@ -96,7 +96,7 @@
 
         List<ServerCarModelWarpper> price = this.getPrice(query.getId(), distance1_, duration_, 0, 1);
         if(price.size() == 0){
-            return ResultUtil.error(language == 1 ? "未获取到可服务的车型" : language == 2 ? "No serviceable model available" : "Aucun modèle réparable disponible", new ArrayList<>());
+            return ResultUtil.error(language == 1 ? "未获取到可服务的车型" : language == 2 ? "Not obtaining available vehicle-type" : "Ne pas obtenir le type de véhicule disponible", new ArrayList<>());
         }
         return ResultUtil.success(price);
     }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java
index 22a8e25..f354093 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java
@@ -5,6 +5,7 @@
 import com.stylefeng.guns.modular.system.dao.TNoticesMapper;
 import com.stylefeng.guns.modular.system.model.SystemNotice;
 import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.util.DateUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -72,10 +73,15 @@
         if(type == 2){//系统消息
             list = systemNoticeMapper.queryList(type, pageNum, size, uid);
             for(Map<String, Object> map : list){
-                map.put("title", language == 1 ? "系统提示" : language == 2 ? "System prompt" : "Rappel du système");
+                map.put("title", language == 1 ? "系统提示" : language == 2 ? "Message" : "Rappel du système");
                 systemNoticeMapper.readSystemNotice(Integer.valueOf(String.valueOf(map.get("id"))), uid);
             }
         }
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+
         return list;
     }
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java
index 5828cfa..e3b2460 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java
@@ -4,6 +4,7 @@
 import com.stylefeng.guns.modular.system.dao.UserActivityBalanceMapper;
 import com.stylefeng.guns.modular.system.model.UserActivityBalance;
 import com.stylefeng.guns.modular.system.service.IUserActivityBalanceService;
+import com.stylefeng.guns.modular.system.util.DateUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -28,7 +29,14 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> query(Double money, Integer companyId) throws Exception {
-        return userActivityBalanceMapper.query(money, companyId);
+    public List<Map<String, Object>> query(Integer language, Double money, Integer companyId) throws Exception {
+        List<Map<String, Object>> query = userActivityBalanceMapper.query(money, companyId);
+        for (Map<String, Object> map : query) {
+            String startTime = map.get("startTime").toString();
+            map.put("startTime", DateUtil.conversionFormat(language, startTime));
+            String endTime = map.get("endTime").toString();
+            map.put("endTime", DateUtil.conversionFormat(language, endTime));
+        }
+        return query;
     }
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java
index ccc707a..cddcff5 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java
@@ -4,6 +4,7 @@
 import com.stylefeng.guns.modular.system.dao.UserActivityRegisteredMapper;
 import com.stylefeng.guns.modular.system.model.UserActivityRegistered;
 import com.stylefeng.guns.modular.system.service.IUserActivityRegisteredService;
+import com.stylefeng.guns.modular.system.util.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -29,7 +30,14 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> query(Integer companyId) throws Exception {
-        return userActivityRegisteredMapper.query(companyId);
+    public List<Map<String, Object>> query(Integer language, Integer companyId) throws Exception {
+        List<Map<String, Object>> query = userActivityRegisteredMapper.query(companyId);
+        for (Map<String, Object> map : query) {
+            String startTime = map.get("startTime").toString();
+            map.put("startTime", DateUtil.conversionFormat(language, startTime));
+            String endTime = map.get("endTime").toString();
+            map.put("endTime", DateUtil.conversionFormat(language, endTime));
+        }
+        return query;
     }
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
index 8d05441..3b03106 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
@@ -6,6 +6,7 @@
 import com.stylefeng.guns.modular.system.model.UserInfo;
 import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.DateUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -46,9 +47,14 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryCoupon(Integer uid, Integer companyId, Integer state, Integer couponUseType, Double money, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryCoupon(Integer language, Integer uid, Integer companyId, Integer state, Integer couponUseType, Double money, Integer pageNum, Integer size) throws Exception {
         pageNum = (pageNum - 1) * size;
-        return userCouponRecordMapper.queryCoupon(uid, companyId, state, couponUseType, money, pageNum, size);
+        List<Map<String, Object>> list = userCouponRecordMapper.queryCoupon(uid, companyId, state, couponUseType, money, pageNum, size);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
@@ -62,9 +68,14 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryMyCoupons(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception {
+    public List<Map<String, Object>> queryMyCoupons(Integer language, Integer state, Integer pageNum, Integer size, Integer uid) throws Exception {
         pageNum = (pageNum - 1) * size;
-        return userCouponRecordMapper.queryMyCoupons(state, pageNum, size, uid);
+        List<Map<String, Object>> list = userCouponRecordMapper.queryMyCoupons(state, pageNum, size, uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
     /**
@@ -78,7 +89,7 @@
         UserCouponRecord userCouponRecord = userCouponRecordMapper.selectById(id);
         if(userCouponRecord.getUserId().compareTo(uid) != 0){
             language = userInfoService.queryLanguage(uid, language);
-            return ResultUtil.error(language == 1 ? "您不能删除此优惠券" : language == 2 ? "You cannot delete this coupon" : "Vous ne pouvez pas supprimer ce coupon");
+            return ResultUtil.error(language == 1 ? "您不能删除此优惠券" : language == 2 ? "You cannot cancel the coupon." : "Vous ne pouvez pas annuler le coupon.");
         }
         userCouponRecordMapper.deleteById(id);
         return ResultUtil.success();
@@ -98,10 +109,10 @@
         UserCouponRecord userCouponRecord = userCouponRecordMapper.selectById(id);
         language = userInfoService.queryLanguage(uid, language);
         if(userCouponRecord.getUserId().compareTo(uid) != 0){
-            return ResultUtil.error(language == 1 ? "您不能赠送此优惠券" : language == 2 ? "You cannot gift this coupon" : "Vous ne pouvez pas offrir ce coupon");
+            return ResultUtil.error(language == 1 ? "您不能赠送此优惠券" : language == 2 ? "You cannot gift the coupon." : "Vous ne pouvez pas offrir le coupon.");
         }
         if(userCouponRecord.getState() != 1){
-            return ResultUtil.error(language == 1 ? "优惠券已无法使用" : language == 2 ? "Coupon no longer available" : "Le coupon n'est plus disponible");
+            return ResultUtil.error(language == 1 ? "优惠券已无法使用" : language == 2 ? "The coupon is no more available." : "Le coupon n’est plus disponible.");
         }
         userCouponRecord.setUserId(userId);
         userCouponRecordMapper.updateById(userCouponRecord);
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index 7910fcd..9e2f499 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -195,7 +195,7 @@
                                                  Integer userType, Integer language) throws Exception {
         boolean b = this.checkCaptcha(phone, code);
         if(!b){
-            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
         }
 
         UserInfo userInfo = userInfoMapper.queryByPhone(phone);
@@ -424,6 +424,8 @@
                         Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
                         String startTime = map.get("startTime").toString();
                         String endTime = map.get("endTime").toString();
+                        map.put("startTime", DateUtil.conversionFormat(language, startTime));
+                        map.put("endTime", DateUtil.conversionFormat(language, endTime));
                         int num = 0;
                         for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
                             //判断当前优惠券金额是否大于可发放剩余总金额
@@ -538,7 +540,7 @@
             }
         }
         if(userInfo.getState() == 2){
-            return ResultUtil.error("账号被冻结");
+            return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
         }
 
         //调用单点登录的逻辑
@@ -590,10 +592,10 @@
             return ResultUtil.error(language == 1 ? "账号无效" : language == 2 ? "Invalid account" : "Compte non valide");
         }
         if(userInfo.getState() == 2){
-            return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen." : "Le compte est gelé");
+            return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
         }
         if(!ShiroKit.md5(password, salt).equals(userInfo.getPassWord())){
-            return ResultUtil.error(language == 1 ? "密码错误" : language == 2 ? "Password error" : "Mot de passe incorrect");
+            return ResultUtil.error(language == 1 ? "密码错误" : language == 2 ? "Wrong password" : "Mot de passe erroné");
         }
 
         //调用单点登录的逻辑
@@ -629,7 +631,7 @@
         String phone=null;
         if(type == 2){//小程序
             if(ToolUtil.isEmpty(jscode)){
-                return ResultUtil.error("微信登录请求失败,请重试");
+                return ResultUtil.error(language == 1 ? "微信登录请求失败,请重试" : language == 2 ? "WeChat login request failed, please try again." : "La demande de connexion WeChat a échoué, veuillez réessayer.");
             }
             Map<String, String> map = weChatUtil.code2Session(jscode);
             openid = map.get("openid");
@@ -758,7 +760,7 @@
 
         }
         if(userInfo.getState() == 2){
-            return ResultUtil.error("账号被冻结");
+            return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
         }
 
         //调用单点登录的逻辑
@@ -894,23 +896,23 @@
         return ResultUtil.success(loginWarpper);
     }
     @Override
-    public ResultUtil<LoginWarpper> wxIsLogin(String jscode) throws Exception {
+    public ResultUtil<LoginWarpper> wxIsLogin(Integer language, String jscode) throws Exception {
         UserInfo userInfo = null;
         String phone=null;
         if(ToolUtil.isEmpty(jscode)){
-            return ResultUtil.error("微信登录请求失败,请重试");
+            return ResultUtil.error(language == 1 ? "微信登录请求失败,请重试" : language == 2 ? "WeChat login request failed, please try again." : "La demande de connexion WeChat a échoué, veuillez réessayer.");
         }
         Map<String, String> map = weChatUtil.code2Session(jscode);
         String openid = map.get("openid");
         String unionid = map.get("unionid");
         userInfo = userInfoMapper.queryByOpenid2(openid);
         if(null==userInfo){
-            return ResultUtil.getResult(2000,"微信登录请求失败,请重试");
+            return ResultUtil.getResult(2000,language == 1 ? "微信登录请求失败,请重试" : language == 2 ? "WeChat login request failed, please try again." : "La demande de connexion WeChat a échoué, veuillez réessayer.");
         }
 
 
         if(userInfo.getState() == 2){
-            return ResultUtil.error("账号被冻结");
+            return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
         }
 
         //调用单点登录的逻辑
@@ -1051,7 +1053,7 @@
         }
 
         if(userInfo.getState() == 2){
-            return ResultUtil.error("账号被冻结");
+            return ResultUtil.error(language == 1 ? "账号被冻结" : language == 2 ? "Account is frozen" : "Le compte est gelé");
         }
 
         //调用单点登录的逻辑
@@ -1199,14 +1201,14 @@
     public ResultUtil forgetPassword(String phone, String code, String password, Integer language) throws Exception {
         UserInfo userInfo = this.queryByPhone(phone);
         if(null == userInfo){
-            return ResultUtil.error(language == 1 ? "手机号码未注册" : language == 2 ? "Cell phone number is not registered" : "Numéro de téléphone portable non enregistré");
+            return ResultUtil.error(language == 1 ? "手机号码未注册" : language == 2 ? "Mobile phone number was not registered." : "Le numéro de téléphone portable n’a pas été enregistré.");
         }
         boolean b = this.checkCaptcha(phone, code);
         if(!b){
             b = this.checkCaptcha(userInfo.getEmail(), code);
         }
         if(!b){
-            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
         }
         if(userInfo.getState() == 2){
             return ResultUtil.error(language == 1 ? "账号已被冻结" : language == 2 ? "The account has been frozen" : "Le compte a été gelé");
@@ -1233,7 +1235,7 @@
     public ResultUtil bindingPhone(Integer uid, String phoneOperator, String phone, String code, Integer language) throws Exception {
         boolean b = this.checkCaptcha(phone, code);
         if(!b){
-            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
         }
         UserInfo userInfo = this.selectById(uid);
         UserInfo userInfo1 = userInfoMapper.queryByPhone(phone);
@@ -1295,12 +1297,12 @@
     public ResultUtil bindingEmail(Integer uid, Integer type, String email, String code, Integer language) throws Exception {
         boolean b = this.checkCaptcha(email, code);
         if(!b){
-            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
         }
         UserInfo userInfo = this.selectById(uid);
         UserInfo userInfo1 = userInfoMapper.queryByEmail(email);
         if(null != userInfo1 && uid.compareTo(userInfo1.getId()) != 0){
-            return ResultUtil.error(language == 1 ? "邮箱已被使用" : language == 2 ? "The mailbox is in use" : "La boîte mail a déjà été utilisée");
+            return ResultUtil.error(language == 1 ? "邮箱已被使用" : language == 2 ? "E-mail address is already in use." : "L’adresse e-mail est déjà utilisée.");
         }
 
 //        if(null != userInfo1){
@@ -1389,8 +1391,11 @@
      * @throws Exception
      */
     @Override
-    public Map<String, Object> queryUserInfo(Integer uid) throws Exception {
-        return userInfoMapper.queryUserInfo(uid, null);
+    public Map<String, Object> queryUserInfo(Integer language, Integer uid) throws Exception {
+        Map<String, Object> map = userInfoMapper.queryUserInfo(uid, null);
+        String birthday = map.get("birthday").toString();
+        map.put("birthday", DateUtil.conversionFormat(language, birthday));
+        return map;
     }
 
 
@@ -1401,8 +1406,11 @@
      * @throws Exception
      */
     @Override
-    public Map<String, Object> queryUser(String phone) throws Exception {
-        return userInfoMapper.queryUserInfo(null, phone);
+    public Map<String, Object> queryUser(Integer language, String phone) throws Exception {
+        Map<String, Object> map = userInfoMapper.queryUserInfo(null, phone);
+        String birthday = map.get("birthday").toString();
+        map.put("birthday", DateUtil.conversionFormat(language, birthday));
+        return map;
     }
 
 
@@ -1431,7 +1439,7 @@
     public ResultUtil depositBalance(Integer payType, String bankCardId, Double money, Integer uid, Integer type, Integer language) throws Exception {
         UserInfo userInfo = userInfoMapper.selectById(uid);
         if(money.compareTo(0D) <= 0){
-            return ResultUtil.error("支付金额必须大于0元", "");
+            return ResultUtil.error(language == 1 ? "支付金额必须大于0元" : language == 2 ? "Payment amount must be greater than zero." : "Le montant du paiement doit être supérieur à zéro.", "");
         }
         if(payType == 1){//手机支付
             Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1);//添加预支付数据
@@ -1490,12 +1498,12 @@
     public ResultUtil updatePhone(String code, String phoneOperator, String phone, Integer uid, Integer language) throws Exception {
         boolean b = this.checkCaptcha(phone, code);
         if(!b){
-            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
         }
         UserInfo userInfo = this.selectById(uid);
         UserInfo userInfo1 = userInfoMapper.queryByPhone(phone);
         if(null != userInfo1){
-            return ResultUtil.error(language == 1 ? "手机号已被注册" : language == 2 ? "The phone number has been registered" : "Le numéro de téléphone a été enregistré");
+            return ResultUtil.error(language == 1 ? "手机号已被注册" : language == 2 ? "Mobile phone number has been registered." : "Le numéro de téléphone portable a été enregistré.");
         }
         userInfo.setPhoneOperator(phoneOperator);
         userInfo.setPhone(phone);
@@ -1614,7 +1622,7 @@
         if(null != email){
             String value = redisUtil.getValue(email);
             if(ToolUtil.isEmpty(value) || code.equals(value)){
-                return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
+                return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid CAPTCHA" : "CAPTCHA non valide");
             }
             userInfo.setEmail(email);
         }
@@ -1680,7 +1688,7 @@
      * @throws Exception
      */
     public synchronized void addCoupon(Integer userId, Double money, Integer companyId, Integer paymentRecordId, Integer language) throws Exception{
-        List<Map<String, Object>> query = userActivityBalanceService.query(money, companyId);
+        List<Map<String, Object>> query = userActivityBalanceService.query(language, money, companyId);
         List<UserCouponRecord> list = new ArrayList<>();
         for(Map<String, Object> map : query){
             //添加通用优惠券
@@ -1942,7 +1950,7 @@
      */
     private synchronized void addCoupon(UserInfo userInfo, Integer language) throws Exception{
         //添加优惠券
-        List<Map<String, Object>> list = userActivityRegisteredService.query(userInfo.getCompanyId());
+        List<Map<String, Object>> list = userActivityRegisteredService.query(language, userInfo.getCompanyId());
         int num = 0;
         for(Map<String, Object> map : list){
             if(null != map){
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
index 53cb8fd..47567ab 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
@@ -51,14 +51,14 @@
     public ResultUtil withdrawal(Double money, Integer uid, String remark, Integer language) throws Exception {
         language = userInfoService.queryLanguage(uid, language);
         if(money.compareTo(0D) <= 0){
-            return ResultUtil.error(language == 1 ? "提现金额必须大于0" : language == 2 ? "Withdrawal amount must be greater than 0" : "Le montant du retrait doit être supérieur à 0");
+            return ResultUtil.error(language == 1 ? "提现金额必须大于0" : language == 2 ? "Withdrawal amount must be greater than zero." : "Le montant du retrait doit être supérieur à zéro.");
         }
         UserInfo userInfo = userInfoService.selectById(uid);
         if(null == userInfo.getBalance()){
-            return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant");
+            return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
         }
         if(userInfo.getBalance().compareTo(money) < 0){
-            return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant");
+            return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
         }
 
         Withdrawal withdrawal = new Withdrawal();
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
index 9519160..891c0fe 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
@@ -130,4 +130,165 @@
         map.put("endTime", end);
         return map;
     }
+
+
+
+    /**
+     * 多语言时间日期格式转换
+     * @param language  语言编号
+     * @param datetime      标准格式化时间 yyyy-MM-dd
+     * @return
+     */
+    public static String conversionFormat(Integer language, String datetime){
+        String time = "";
+        String date = datetime;
+        int index = datetime.indexOf(" ");
+        if(index != -1){
+            time = datetime.substring(datetime.indexOf(" ") + 1);
+            date = datetime.substring(0, datetime.indexOf(" "));
+        }
+        String[] split = date.split("-");
+        switch (language){
+            case 2:
+                split[1] = englishMonth(Integer.valueOf(split[1]));
+                datetime = split[1] + " " + split[2] + ", " + split[0];
+                if(index != -1){
+                    datetime += " " + time;
+                }
+                break;
+            case 3:
+                split[1] = frenchMonth(Integer.valueOf(split[1]));
+                datetime = split[2] + " " + split[1] + " " + split[0];
+                if(index != -1){
+                    datetime += " " + time;
+                }
+                break;
+        }
+        return datetime;
+    }
+
+
+    public static String conversionFormat1(Integer language, String datetime){
+        String time = "";
+        String date = datetime;
+        int index = datetime.indexOf(" ");
+        if(index != -1){
+            time = datetime.substring(datetime.indexOf(" ") + 1);
+            date = datetime.substring(0, datetime.indexOf(" "));
+        }
+        String[] split = date.split("-");
+        switch (language){
+            case 2:
+                split[1] = englishMonth(Integer.valueOf(split[0]));
+                datetime = split[0] + " " + split[1];
+                if(index != -1){
+                    datetime += " " + time;
+                }
+                break;
+            case 3:
+                split[1] = frenchMonth(Integer.valueOf(split[0]));
+                datetime = split[1] + " " + split[0];
+                if(index != -1){
+                    datetime += " " + time;
+                }
+                break;
+        }
+        return datetime;
+    }
+
+
+
+    public static String frenchMonth(Integer month){
+        String m = "";
+        switch (month){
+            case 1:
+                m = "Janvier";
+                break;
+            case 2:
+                m = "Février";
+                break;
+            case 3:
+                m = "Mars";
+                break;
+            case 4:
+                m = "Avril";
+                break;
+            case 5:
+                m = "Mai";
+                break;
+            case 6:
+                m = "Juin";
+                break;
+            case 7:
+                m = "Juillet";
+                break;
+            case 8:
+                m = "Août";
+                break;
+            case 9:
+                m = "Septembre";
+                break;
+            case 10:
+                m = "Octobre";
+                break;
+            case 11:
+                m = "Novembre";
+                break;
+            case 12:
+                m = "Décembre";
+                break;
+                default:
+                    m = "";
+                    break;
+        }
+        return m;
+    }
+
+
+
+    public static String englishMonth(Integer month){
+        String m = "";
+        switch (month){
+            case 1:
+                m = "January";
+                break;
+            case 2:
+                m = "February";
+                break;
+            case 3:
+                m = "March";
+                break;
+            case 4:
+                m = "April";
+                break;
+            case 5:
+                m = "May";
+                break;
+            case 6:
+                m = "June";
+                break;
+            case 7:
+                m = "July";
+                break;
+            case 8:
+                m = "August";
+                break;
+            case 9:
+                m = "September";
+                break;
+            case 10:
+                m = "October";
+                break;
+            case 11:
+                m = "November";
+                break;
+            case 12:
+                m = "December";
+                break;
+            default:
+                m = "";
+                break;
+        }
+        return m;
+    }
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java
index 017ed2a..a38715e 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java
@@ -20,11 +20,11 @@
  */
 public class TinggPayUtil {
 
-    private static String accessKey = "KxjPP444jEE7K88E7juej4PKqqzKq7qKjKj84q744q9zj4Ej4zK47uj4KKj4";
+    private static String accessKey = "8rc1gTV9n91Tc1Sy9oVWry99fgrgrVV8concf9onWooWSg9TVW8nSgo98g88";
 
-    private static String ivKey = "qsffKsCOJJdhSBCQ";
+    private static String ivKey = "ABp0pqpHMteEJM2N";
 
-    private static String secretKey = "9jjz4Ex74P8ue4qK";
+    private static String secretKey = "rf8Vo1n9yTSW98cg";
 
 
     /**
@@ -53,7 +53,7 @@
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String countryCode="GHA";//收取付款的国家的3位ISO代码
         String currencyCode = "GHS";//3位ISO代码的货币,商家正在开发票。
-        String serviceCode="IGOGHANA";//服务代码
+        String serviceCode="I-GO_TECHNOLOGIES_LI";//服务代码
         String dueDate = sdf.format(new Date(System.currentTimeMillis() + 1800000));//到期时间
         String languageCode="EN";
         String paymentOptionCode = "";//支付选项码
@@ -90,13 +90,13 @@
 
     public static void main(String[] ages){
         CheckoutRequest checkoutRequest = new CheckoutRequest();
-        checkoutRequest.setMsisdn(Long.valueOf("2030376339310"));
+        checkoutRequest.setMsisdn(Long.valueOf("233244915521"));
         checkoutRequest.setCustomerEmail("393733352@qq.com");
-        checkoutRequest.setAccountNumber("2030376339310");
-        checkoutRequest.setCustomerFirstName("ZHONGSHI");
-        checkoutRequest.setCustomerLastName("HUANG");
+        checkoutRequest.setAccountNumber("233244915521");
+        checkoutRequest.setCustomerFirstName("GOU");
+        checkoutRequest.setCustomerLastName("XIONG");
         checkoutRequest.setRequestAmount(1.00D);
-        checkoutRequest.setMerchantTransactionId("00025");
+        checkoutRequest.setMerchantTransactionId("00030");
         checkoutRequest.setRequestDescription("payment test");
         checkoutRequest.setCallbackUrl("https://10pz685243.zicp.fun/base/IGO/wxCancelUserBalance");
         checkoutRequest.setPendingRedirectUrl("https://www.baidu.com");
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
index b8875b1..8a59bb2 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
@@ -135,7 +135,7 @@
         select
         id as orderId,
         DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
-        DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time,
+        DATE_FORMAT(travelTime, '%m-%d %H:%i') as time,
         startAddress as startAddress,
         endAddress as endAddress,
         driverId as driverId,
@@ -204,7 +204,7 @@
         a.type as type,
         a.state as state,
         DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
-        DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime,
+        DATE_FORMAT(a.travelTime, '%m-%d %H:%i') as travelTime,
         DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
         a.startLon as startLon,
         a.startLat as startLat,
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
index 9c0eb95..bd809e0 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
@@ -87,7 +87,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
 
 
     /**
@@ -118,7 +118,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+    List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception;
 
 
     /**
@@ -127,7 +127,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception;
+    List<Map<String, Object>> queryMyTravelRecord(Integer language, Integer uid) throws Exception;
 
 
     /**
@@ -136,7 +136,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception;
+    List<Map<String, Object>> queryRedEnvelope(Integer language, Integer uid) throws Exception;
 
 
     /**
@@ -150,7 +150,7 @@
      * @return
      * @throws Exception
      */
-    List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+    List<Map<String, Object>> queryInvoiceOrder(Integer language, Integer type, Date startTime, Date endTime, Double startMoney,
                                                 Double endMoney, Integer uid) throws Exception;
 
 
@@ -159,7 +159,7 @@
      * @param orderId
      * @return
      */
-    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+    Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception;
 
 
     /**
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index 11048c6..bfd78ab 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -492,10 +492,10 @@
         ResultUtil resultUtil = ResultUtil.success("");
 
         if(null == orderTaxi){
-            return ResultUtil.error((language == 1 ? "订单信息有误" : language == 2 ? "Incorrect order information" : "Informations de commande incorrectes"), "");
+            return ResultUtil.error((language == 1 ? "订单信息有误" : language == 2 ? "Order-information error" : "Erreur d’information de commande"), "");
         }
         if(orderTaxi.getState() != 12){
-            return ResultUtil.error((language == 1 ? "订单取消失败" : language == 2 ? "Order cancellation failure" : "Annulation de commande échouée"), "");
+            return ResultUtil.error((language == 1 ? "订单取消失败" : language == 2 ? "Failed to cancel order" : "Échec de l’annulation de la commande"), "");
         }
         OrderCancel orderCancel = null;
         if(null == cancleId){
@@ -518,7 +518,7 @@
             }
             if(payType == 3){//余额支付
                 if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){
-                    return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant");
+                    return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
                 }
 
                 userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -609,10 +609,10 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
         OrderTaxi orderTaxi = this.selectById(orderId);
-        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(uid, orderTaxi.getCompanyId(), 1, 2, orderTaxi.getOrderMoney(), pageNum, size);
-        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(uid, orderTaxi.getCompanyId(), 1, 0, orderTaxi.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(language, uid, orderTaxi.getCompanyId(), 1, 2, orderTaxi.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(language, uid, orderTaxi.getCompanyId(), 1, 0, orderTaxi.getOrderMoney(), pageNum, size);
         list.addAll(list1);
         return list;
     }
@@ -694,7 +694,7 @@
         }
         if(payType == 3){//余额支付
             if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
-                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant");
+                return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
             }
 
             userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -818,13 +818,17 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+    public List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> maps = orderTaxiMapper.queryMyOrderList(uid, pageNum, size);
         for(Map<String, Object> map : maps){
             if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
                 map.put("state", map.get("oldState"));
             }
+            String orderTime = map.get("orderTime").toString();
+            String time = map.get("time").toString();
+            map.put("orderTime", DateUtil.conversionFormat(language, orderTime));
+            map.put("time", DateUtil.conversionFormat1(language, time));
         }
         return maps;
     }
@@ -837,8 +841,13 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception {
-        return orderTaxiMapper.queryMyTravelRecord(uid);
+    public List<Map<String, Object>> queryMyTravelRecord(Integer language, Integer uid) throws Exception {
+        List<Map<String, Object>> list = orderTaxiMapper.queryMyTravelRecord(uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
@@ -849,8 +858,13 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception {
-        return orderTaxiMapper.queryRedEnvelope(uid);
+    public List<Map<String, Object>> queryRedEnvelope(Integer language, Integer uid) throws Exception {
+        List<Map<String, Object>> list = orderTaxiMapper.queryRedEnvelope(uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
@@ -866,11 +880,16 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+    public List<Map<String, Object>> queryInvoiceOrder(Integer language, Integer type, Date startTime, Date endTime, Double startMoney,
                                                        Double endMoney, Integer uid) throws Exception {
         startTime = dateUtil.getStartOrEndDate(startTime, "start");
         endTime = dateUtil.getStartOrEndDate(endTime, "end");
-        return orderTaxiMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+        List<Map<String, Object>> list = orderTaxiMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            map.put("time", DateUtil.conversionFormat(language, time));
+        }
+        return list;
     }
 
 
@@ -880,7 +899,7 @@
      * @return
      */
     @Override
-    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception{
+    public Map<String, Object> queryOrderInfo(Integer language, Integer orderId) throws Exception{
         Map<String, Object> map = orderTaxiMapper.queryOrderInfo(orderId);
         if(null != map && null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
             OrderTaxi orderTaxi = this.selectById(orderId);
@@ -893,6 +912,13 @@
         String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId"));
         map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
         map.put("orderType", 2);
+
+        String insertTime = map.get("insertTime").toString();
+        map.put("insertTime", DateUtil.conversionFormat(language, insertTime));
+        String travelTime = map.get("travelTime").toString();
+        map.put("travelTime", DateUtil.conversionFormat1(language, travelTime));
+        String arriveTime = map.get("arriveTime").toString();
+        map.put("arriveTime", DateUtil.conversionFormat(language, arriveTime));
         return map;
     }
 

--
Gitblit v1.7.1