From 30d6ddaa04fd7b66e2041f1856e182b7c6a94918 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 08 十二月 2023 15:09:07 +0800
Subject: [PATCH] 更新接口

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java |  258 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 191 insertions(+), 67 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index 898b1f9..5b6a83b 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -15,15 +15,17 @@
 import com.stylefeng.guns.modular.system.dao.PhoneMapper;
 import com.stylefeng.guns.modular.system.dao.RegionMapper;
 import com.stylefeng.guns.modular.system.dao.SysReformistMapper;
+import com.stylefeng.guns.modular.system.model.BankCard;
 import com.stylefeng.guns.modular.system.model.Driver;
 import com.stylefeng.guns.modular.system.model.OrderPosition;
 import com.stylefeng.guns.modular.system.model.Region;
-import com.stylefeng.guns.modular.system.service.IDriverService;
-import com.stylefeng.guns.modular.system.service.IOrderService;
-import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
 import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
 import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
+import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
+import com.stylefeng.guns.modular.system.util.Tingg.TinggPayUtil;
+import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest;
 import com.stylefeng.guns.modular.system.warpper.OrderListWarpper;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -32,6 +34,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -79,11 +82,18 @@
     @Autowired
     private IOrderLogisticsService orderLogisticsService;
 
-    @Value("${pushMinistryOfTransport}")
-    private boolean pushMinistryOfTransport;
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+    @Value("${callbackPath}")
+    private String callbackPath;
 
     @Autowired
-    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+    private IPaymentRecordService paymentRecordService;
+
+    @Autowired
+    private IBankCardService bankCardService;
+
 
 
 
@@ -100,20 +110,20 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryOrderList(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception {
+    public List<Map<String, Object>> queryOrderList(Integer state, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception {
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> datas = new ArrayList<>();
         //出租车
 //        List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid);
 //        datas.addAll(list);
         //专车
-        List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid);
+        List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid, language);
         datas.addAll(list1);
         //跨城
 //        List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid);
 //        datas.addAll(list2);
         //小件物流
-        List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid);
+        List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language);
         datas.addAll(list3);
 
         //分页
@@ -139,21 +149,21 @@
      * @throws Exception
      */
     @Override
-    public List<Map<String, Object>> queryOrderList1(Integer state, Integer type, Integer pageNum, Integer size, Integer uid) throws Exception {
+    public List<Map<String, Object>> queryOrderList1(Integer state, Integer type, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception {
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> datas = new ArrayList<>();
         if(type == 1){
             //出租车
-            List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid);
+            List<Map<String, Object>> list = orderTaxiService.queryOrderList(language, state, uid);
             datas.addAll(list);
             //专车
-            List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid);
+            List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid, language);
             datas.addAll(list1);
             //跨城
-            List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid);
+            List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(language, state, uid);
             datas.addAll(list2);
         }else{//小件物流
-            List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid);
+            List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language);
             datas.addAll(list3);
         }
 
@@ -181,20 +191,20 @@
      * @throws Exception
      */
     @Override
-    public List<OrderListWarpper> queryMyAllOrder(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception {
+    public List<OrderListWarpper> queryMyAllOrder(Integer state, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception {
         pageNum = (pageNum - 1) * size;
         List<Map<String, Object>> datas = new ArrayList<>();
         //出租车
 //        List<Map<String, Object>> list = orderTaxiService.queryMyAllOrder(state, uid);
 //        datas.addAll(list);
         //专车
-        List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid);
+        List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid, language);
         datas.addAll(list1);
         //跨城
 //        List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid);
 //        datas.addAll(list2);
         //小件物流
-        List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid);
+        List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid, language);
         datas.addAll(list3);
 
         List<OrderListWarpper> orderListWarpper = OrderListWarpper.getOrderListWarpper(datas);
@@ -219,11 +229,11 @@
      * @return
      */
     @Override
-    public Map<String, Object> queryPushOrder(Integer orderId, Integer orderType, String lon, String lat) throws Exception{
+    public Map<String, Object> queryPushOrder(Integer orderId, Integer orderType, String lon, String lat, Integer language) throws Exception{
         Map<String, Object> map = null;
         switch (orderType){
             case 1://专车
-                map = orderPrivateCarService.queryPushOrder(orderId);
+                map = orderPrivateCarService.queryPushOrder(orderId, language);
                 DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
                 map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
 
@@ -234,30 +244,30 @@
                 Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource")));
                 if(orderSource == 1 || orderSource == 2 || orderSource == 3){
                     if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
-                        map.put("type", "乘客下单");
+                        map.put("type", language == 1 ? "乘客创建" : language == 2 ? "Passenger creation" : "Créé par passager");
                     }
                     if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
-                        map.put("type", "改派");
+                        map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
                     }
                     if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
-                        map.put("type", "预约");
+                        map.put("type", language == 1 ? "预约" : language == 2 ? "Make an appointment" : "rendez-vous");
                     }
                     if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
-                        map.put("type", "改派");
+                        map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
                     }
                 }
                 if(orderSource == 5){
                     if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
-                        map.put("type", "调度下单");
+                        map.put("type", language == 1 ? "调度创建" : language == 2 ? "Scheduling creation" : "Création de planning");
                     }
                     if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
-                        map.put("type", "改派");
+                        map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
                     }
                     if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
-                        map.put("type", "预约");
+                        map.put("type", language == 1 ? "预约" : language == 2 ? "Make an appointment" : "rendez-vous");
                     }
                     if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
-                        map.put("type", "改派");
+                        map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
                     }
                 }
                 break;
@@ -331,8 +341,8 @@
 //                    }
 //                }
                 break;
-            case 4://同城小件物流
-                map = orderLogisticsService.queryPushOrder(orderId);
+            case 4://市内小件物流
+                map = orderLogisticsService.queryPushOrder(orderId, language);
                 DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
                 map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
 
@@ -343,18 +353,18 @@
                 Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource")));
                 if(orderSource3 == 1 || orderSource3 == 2 || orderSource3 == 3){
                     if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
-                        map.put("type", "乘客下单");
+                        map.put("type", language == 1 ? "乘客创建" : language == 2 ? "Passenger creation" : "Créé par passager");
                     }
                     if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
-                        map.put("type", "改派");
+                        map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
                     }
                 }
                 if(orderSource3 == 5){
                     if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){
-                        map.put("type", "调度下单");
+                        map.put("type", language == 1 ? "调度创建" : language == 2 ? "Scheduling creation" : "Création de planning");
                     }
                     if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){
-                        map.put("type", "改派");
+                        map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté");
                     }
                 }
                 break;
@@ -403,16 +413,16 @@
      * @throws Exception
      */
     @Override
-    public synchronized ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception {
+    public synchronized ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid, Integer language) throws Exception {
         switch (orderType){
             case 1://专车
-                return orderPrivateCarService.grabOrder(orderId, uid);
+                return orderPrivateCarService.grabOrder(orderId, uid, language);
             case 2://出租
 //                return orderTaxiService.grabOrder(orderId, uid);
             case 3://城际
                 return ResultUtil.success();//不作任何操作,跨城默认选择的司机
             case 4://同城小件
-                return orderLogisticsService.grabOrder(orderId, uid);
+                return orderLogisticsService.grabOrder(orderId, uid, language);
             case 5://跨城小件
 //                return orderLogisticsService.grabOrder(orderId, uid);
             case 6:
@@ -440,9 +450,9 @@
             case 3://城际
                 break;
             case 4://同城小件
-                return orderLogisticsService.grabOrder_(orderId, uid);
+//                return orderLogisticsService.grabOrder_(orderId, uid);
             case 5://跨城小件
-                return orderLogisticsService.grabOrder_(orderId, uid);
+//                return orderLogisticsService.grabOrder_(orderId, uid);
             case 6:
                 break;
         }
@@ -459,11 +469,11 @@
      * @throws Exception
      */
     @Override
-    public Map<String, Object> queryOrderInfo(Integer orderId, Integer orderType) throws Exception {
+    public Map<String, Object> queryOrderInfo(Integer language, Integer orderId, Integer orderType) throws Exception {
         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);
@@ -472,7 +482,7 @@
 //                map = orderCrossCityService.queryOrderCrossCityInfo(orderId);
                 break;
             case 4://同城小件
-                map = orderLogisticsService.queryOrderInfo(orderId);
+                map = orderLogisticsService.queryOrderInfo(language, orderId);
                 break;
             case 5://跨城小件
 //                map = orderLogisticsService.queryOrderInfo(orderId);
@@ -529,18 +539,21 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone) throws Exception {
-        Map<String, String> geocode = gdMapGeocodingUtil.geocode(String.valueOf(lon), String.valueOf(lat));
-        String address = geocode.get("address");
+    public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, Integer language) throws Exception {
+        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon);
+        if(null == reverseGeocode){
+            return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides");
+        }
+        String address = reverseGeocode.getAddress();
         switch (orderType){
             case 1://专车
-                return orderPrivateCarService.process(orderId, state, lon, lat, address,phone);
+                return orderPrivateCarService.process(orderId, state, lon, lat, address, phone, language);
             case 2://出租
 //                return orderTaxiService.process(orderId, state, lon, lat, address);
             case 3://城际
 //                return orderCrossCityService.process(orderId, state, lon, lat, address);
             case 4://同城小件
-                return orderLogisticsService.process(orderId, state, lon, lat, address);
+                return orderLogisticsService.process(orderId, state, lon, lat, address, language);
             case 5://跨城小件
 //                return orderLogisticsService.process(orderId, state, lon, lat, address);
             case 6:
@@ -562,10 +575,10 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil confirmFees(Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception {
+    public ResultUtil confirmFees(Integer language, Integer orderId, Integer orderType, Integer type, Double travelFee, Double parkingFee, Double crossingFee) throws Exception {
         switch (orderType){
             case 1://专车
-                return orderPrivateCarService.confirmFees(orderId, type, parkingFee, crossingFee);
+                return orderPrivateCarService.confirmFees(language, orderId, type, parkingFee, crossingFee);
             case 2://出租
                 return orderTaxiService.confirmFees(orderId, type, travelFee, parkingFee, crossingFee);
             case 3://城际(没有此流程)
@@ -653,12 +666,12 @@
      * @return
      */
     @Override
-    public Map<String, Object> queryToBePaidPage(Integer orderId, Integer orderType) throws Exception{
+    public Map<String, Object> queryToBePaidPage(Integer language, Integer orderId, Integer orderType) throws Exception{
         switch (orderType){
             case 1://专车
-                return orderPrivateCarService.queryOrderInfo(orderId);
+                return orderPrivateCarService.queryOrderInfo(language, orderId);
             case 2://出租
-                return orderTaxiService.queryOrderInfo(orderId);
+                return orderTaxiService.queryOrderInfo(language, orderId);
             case 3://城际(没有此流程)
                 return null;
             case 4://
@@ -908,7 +921,7 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil completeOrder(Integer orderId, Integer orderType) throws Exception {
+    public ResultUtil completeOrder(Integer orderId, Integer orderType, Integer language) throws Exception {
         Integer userId = 0;
         Integer driverId = 0;
         Integer state = 0;
@@ -916,10 +929,10 @@
             case 1:
                 OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                 if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
-                    return ResultUtil.error("订单已完成支付,不允许重复支付");
+                    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("订单不在待支付,无法完成订单");
+                    return ResultUtil.error(language == 1 ? "订单不在待支付,无法完成订单" : language == 2 ? "The order is no longer with Pending Payment, unable to complete the order." : "La commande n’est plus en attente de paiement, il est impossible de terminer la commande.");
                 }
                 orderPrivateCar.setPayManner(2);//其他方式支付
                 orderPrivateCar.setRedPacketMoney(0D);
@@ -933,22 +946,14 @@
                 driverId = orderPrivateCar.getDriverId();
                 state = orderPrivateCar.getState();
 
-                new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        if(pushMinistryOfTransport){//上传数据
-                            pushMinistryOfTransportUtil.operatePay(orderId);
-                        }
-                    }
-                }).start();
                 break;
             case 2:
                 OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
                 if(orderTaxi.getState() == 8 || orderTaxi.getState() == 9){
-                    return ResultUtil.error("订单已完成支付,不允许重复支付");
+                    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(orderTaxi.getState() != 7){
-                    return ResultUtil.error("订单不在待支付,无法完成订单");
+                    return ResultUtil.error(language == 1 ? "订单不在待支付,无法完成订单" : language == 2 ? "The order is no longer with Pending Payment, unable to complete the order." : "La commande n’est plus en attente de paiement, il est impossible de terminer la commande.");
                 }
                 orderTaxi.setPayManner(2);//其他方式支付
                 orderTaxi.setRedPacketMoney(0D);
@@ -1022,6 +1027,7 @@
      */
     @Override
     public void taskSmsSend() throws Exception {
+        Integer language = 2;
         //获取未支付订单
         Date day = new Date();
         List<OrderPrivateCar> orderList = orderPrivateCarService.getSmsOrderList();
@@ -1036,7 +1042,7 @@
                         String sData = aLiSendSms.sendSms1(order.getPassengersPhone(), "SMS_215342869", "{\"time\":\"" + DateUtil.format(order.getGetoffTime(),"yyyy-MM-dd HH:mm:ss") + "\",\"money\":\"" + order.getOrderMoney() + "\"}");
                     }
                     //添加消息记录
-                    systemNoticeService.addSystemNotice(1, "有一笔订单未付款,请前往支付!", order.getUserId());
+                    systemNoticeService.addSystemNotice(1, language == 1 ? "有一笔订单未付款,请前往支付!" : language == 2 ? "There is an order pending payment, please pay." : "Il y a une commande en attente de paiement, veuillez payer.", order.getUserId());
                 }
             }else{
                 if(order.getSmsTime().getTime()+24*60*60*1000L<day.getTime()){
@@ -1048,11 +1054,129 @@
                     }
 
                     //添加消息记录
-                    systemNoticeService.addSystemNotice(1, "有一笔订单未付款,请前往支付!", order.getUserId());
+                    systemNoticeService.addSystemNotice(1, language == 1 ? "有一笔订单未付款,请前往支付!" : language == 2 ? "There is an order pending payment, please pay." : "Il y a une commande en attente de paiement, veuillez payer.", order.getUserId());
                 }
             }
         }
-        orderPrivateCarService.updateBatchById(orderList);
+        if(orderList.size() > 0){
+            orderPrivateCarService.updateBatchById(orderList);
+        }
+    }
+
+
+    @Override
+    public ResultUtil payOrder(Integer uid, Integer orderId, Integer orderType, Integer payType, Integer bankCardId, Integer language) throws Exception {
+        Double money = 0D;
+        Driver driver = driverService.selectById(uid);
+        if(orderType == 1){//专车
+            OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+            money = orderPrivateCar.getPayMoney();
+            if(orderPrivateCar.getPayType() != 4){
+                return ResultUtil.error(language == 1 ? "无法进行支付" : language == 2 ? "Unable to make payments" : "Impossible d’effectuer des paiements");
+            }
+            if(orderPrivateCar.getDriverPay() == 2){
+                return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Unable to recur payments" : "Impossible de récurrence des paiements");
+            }
+            if(payType == 3){//余额支付
+                if(driver.getBalance().compareTo(money) < 0){
+                    return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
+                }
+            }
+        }
+        if(orderType == 4){//小件
+            OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+            money = orderLogistics.getPayMoney();
+            if(orderLogistics.getPayType() != 4){
+                return ResultUtil.error(language == 1 ? "无法进行支付" : language == 2 ? "Unable to make payments" : "Impossible d’effectuer des paiements");
+            }
+            if(orderLogistics.getDriverPay() == 2){
+                return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Unable to recur payments" : "Impossible de récurrence des paiements");
+            }
+            if(payType == 3){//余额支付
+                if(driver.getBalance().compareTo(money) < 0){
+                    return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient balance" : "Solde insuffisant");
+                }
+            }
+        }
+
+        if(0 < money){
+            if(payType == 1) {//手机支付
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                String merchantTransactionId = sdf.format(new Date()) + "4" + language + orderId;
+                CheckoutRequest checkoutRequest = new CheckoutRequest();
+                checkoutRequest.setMsisdn(Long.valueOf(driver.getPhone()));
+                checkoutRequest.setCustomerEmail(driver.getEmail());
+                checkoutRequest.setAccountNumber(driver.getPhone());
+                checkoutRequest.setCustomerFirstName(driver.getFirstName());
+                checkoutRequest.setCustomerLastName(driver.getLastName());
+                checkoutRequest.setRequestAmount(money);
+                checkoutRequest.setMerchantTransactionId(merchantTransactionId);
+                checkoutRequest.setRequestDescription("Travel completion payment");
+                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
+                checkoutRequest.setPendingRedirectUrl("");
+                checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html");
+                checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html");
+                ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
+                if(resultUtil.getCode()==200){
+                    paymentRecordService.saveData(1, uid, 2, orderId, orderType, 1, money, null, 1);//添加预支付数据
+                }else{
+                    resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Échec de paiement", "");
+                }
+                return resultUtil;
+            }
+
+            if(payType == 2) {//银行卡支付
+                BankCard bankCard = bankCardService.selectById(bankCardId);
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                String merchantTransactionId = sdf.format(new Date()) + "4" + language + orderId;
+                CheckoutRequest checkoutRequest = new CheckoutRequest();
+                checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
+                checkoutRequest.setCustomerEmail(driver.getEmail());
+                checkoutRequest.setAccountNumber(bankCard.getCode());
+                checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
+                checkoutRequest.setCustomerLastName(bankCard.getLastName());
+                checkoutRequest.setRequestAmount(money);
+                checkoutRequest.setMerchantTransactionId(merchantTransactionId);
+                checkoutRequest.setRequestDescription("Travel completion payment");
+                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi");
+                checkoutRequest.setPendingRedirectUrl("");
+                checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html");
+                checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html");
+                ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
+
+                if(resultUtil.getCode()==200){
+                    paymentRecordService.saveData(1, uid, 2, orderId, orderType, 2, money, null, 1);//添加预支付数据
+                }else{
+                    resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Échec de paiement", "");
+                }
+                return resultUtil;
+            }
+            if(payType == 3){//余额支付
+                driver.setBalance(driver.getBalance() - money);
+                if(driver.getLaveBusinessMoney().compareTo(money) < 0){
+                    double b = money - driver.getLaveBusinessMoney();
+                    driver.setLaveBusinessMoney(0D);
+                    driver.setLaveActivityMoney(driver.getLaveActivityMoney() - b);
+                    driverService.updateById(driver);
+                }else{
+                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money);
+                    driverService.updateById(driver);
+                }
+
+                if(orderType == 1){//专车
+                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                    orderPrivateCar.setDriverPay(2);
+                    orderPrivateCarService.updateById(orderPrivateCar);
+                }
+                if(orderType == 4){//小件
+                    OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+                    orderLogistics.setDriverPay(2);
+                    orderLogisticsService.updateById(orderLogistics);
+                }
+                transactionDetailsService.saveData(uid, "现金收款代付", money, 2, 1, 2, orderType, orderId);
+            }
+        }
+        return ResultUtil.success();
     }
 }
 

--
Gitblit v1.7.1