From 9ef2e272c6ef99d152c5d6afc95af70a3822c57d Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 09 九月 2023 18:12:28 +0800
Subject: [PATCH] 修改bug

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java |  149 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 106 insertions(+), 43 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 0956daf..8f23512 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,17 +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.ITransactionDetailsService;
+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;
@@ -34,6 +34,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -84,6 +85,16 @@
     @Autowired
     private ITransactionDetailsService transactionDetailsService;
 
+    @Value("${callbackPath}")
+    private String callbackPath;
+
+    @Autowired
+    private IPaymentRecordService paymentRecordService;
+
+    @Autowired
+    private IBankCardService bankCardService;
+
+
 
 
 
@@ -99,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);
 
         //分页
@@ -138,7 +149,7 @@
      * @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){
@@ -146,13 +157,13 @@
             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);
         }else{//小件物流
-            List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid);
+            List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language);
             datas.addAll(list3);
         }
 
@@ -180,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);
@@ -218,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);
 
@@ -233,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,7 +342,7 @@
 //                }
                 break;
             case 4://市内小件物流
-                map = orderLogisticsService.queryPushOrder(orderId);
+                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);
 
@@ -342,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;
@@ -1053,8 +1064,9 @@
 
 
     @Override
-    public ResultUtil payOrder(Integer uid, Integer orderId, Integer orderType, Integer payType, Integer language) throws Exception {
+    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();
@@ -1064,14 +1076,11 @@
             if(orderPrivateCar.getDriverPay() == 2){
                 return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Non-repeatable payment" : "Aucun paiement en double");
             }
-            if(payType == 2){//余额支付
-                Driver driver = driverService.selectById(uid);
+            if(payType == 3){//余额支付
                 if(driver.getBalance().compareTo(money) < 0){
                     return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde insuffisant du compte");
                 }
             }
-            orderPrivateCar.setDriverPay(2);
-            orderPrivateCarService.updateById(orderPrivateCar);
         }
         if(orderType == 4){//小件
             OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
@@ -1082,22 +1091,66 @@
             if(orderLogistics.getDriverPay() == 2){
                 return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Non-repeatable payment" : "Aucun paiement en double");
             }
-            if(payType == 2){//余额支付
-                Driver driver = driverService.selectById(uid);
+            if(payType == 3){//余额支付
                 if(driver.getBalance().compareTo(money) < 0){
                     return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde insuffisant du compte");
                 }
             }
-            orderLogistics.setDriverPay(2);
-            orderLogisticsService.updateById(orderLogistics);
         }
 
         if(0 < money){
-            if(payType == 1){//线上支付
-
+            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" : "Paiement échoué", "");
+                }
+                return resultUtil;
             }
-            if(payType == 2){//余额支付
-                Driver driver = driverService.selectById(uid);
+
+            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" : "Paiement échoué", "");
+                }
+                return resultUtil;
+            }
+            if(payType == 3){//余额支付
                 driver.setBalance(driver.getBalance() - money);
                 if(driver.getLaveBusinessMoney().compareTo(money) < 0){
                     double b = money - driver.getLaveBusinessMoney();
@@ -1108,9 +1161,19 @@
                     driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money);
                     driverService.updateById(driver);
                 }
-            }
 
-            transactionDetailsService.saveData(uid, "现金收款代付", money, 2, 1, 2, orderType, orderId);
+                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