From 2ac8ec95387490c5ccfa0b1724e412dc9aadf4a8 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期日, 09 七月 2023 06:23:53 +0800
Subject: [PATCH] 更新支付功能

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java |  104 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 60 insertions(+), 44 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index ae11f11..bedb5b1 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
@@ -123,9 +123,6 @@
     private IPaymentRecordService paymentRecordService;
 
     @Autowired
-    private PayMoneyUtil payMoneyUtil;
-
-    @Autowired
     private ITransactionDetailsService transactionDetailsService;
 
     @Autowired
@@ -150,15 +147,6 @@
     private RedisUtil redisUtil;
 
     @Autowired
-    private GDFalconUtil gdFalconUtil;
-
-    @Autowired
-    private GDMapGeocodingUtil gdMapGeocodingUtil;
-
-    @Autowired
-    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
-
-    @Autowired
     private IOrderPositionService orderPositionService;
 
     @Autowired
@@ -166,9 +154,6 @@
 
     @Autowired
     private IAssignOrderService assignOrderService;
-
-    @Autowired
-    private ALiSendSms aLiSendSms;
 
     @Resource
     private CarMapper carMapper;
@@ -178,6 +163,9 @@
 
     @Autowired
     private IOrderLogisticsService orderLogisticsService;
+
+    @Autowired
+    private IBankCardService bankCardService;
 
 
     @Value("${filePath}")
@@ -610,17 +598,17 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, String accountNumber, Integer cancleId, Integer type, Integer language) throws Exception {
+    public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(id);
         Integer uid = orderPrivateCar.getUserId();
         UserInfo userInfo = userInfoService.selectById(uid);
         ResultUtil resultUtil = ResultUtil.success("");
 
         if(null == orderPrivateCar){
-            return ResultUtil.error("取消订单失败,订单信息有误", "");
+            return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Order cancellation failed because the order information is incorrect" : "Annulation échouée, informations de commande incorrectes", "");
         }
         if(orderPrivateCar.getState() != 12){
-            return ResultUtil.error("取消订单失败,不合法的操作", "");
+            return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Order cancellation failed, illegal operation" : "Annulation de la commande échouée, opération illégale", "");
         }
         OrderCancel orderCancel = null;
         if(null == cancleId || cancleId==0){
@@ -631,15 +619,15 @@
 
         CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId());
         if(null != query){
-            if(payType == 1){//线上支付
+            if(payType == 1){//手机支付
                 orderCancel.setPayType(1);
                 orderCancelService.updateById(orderCancel);
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-                String merchantTransactionId = sdf.format(new Date()) + "1" + id;
+                String merchantTransactionId = sdf.format(new Date()) + "1" + language + id;
                 CheckoutRequest checkoutRequest = new CheckoutRequest();
                 checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone()));
                 checkoutRequest.setCustomerEmail(userInfo.getEmail());
-                checkoutRequest.setAccountNumber(accountNumber);
+                checkoutRequest.setAccountNumber(userInfo.getPhone());
                 checkoutRequest.setCustomerFirstName(userInfo.getFirstName());
                 checkoutRequest.setCustomerLastName(userInfo.getLastName());
                 checkoutRequest.setRequestAmount(query.getMoney());
@@ -652,6 +640,31 @@
                 resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
                 if(resultUtil.getCode()==200){
                     paymentRecordService.saveData(1, null, null, id, 1, 1, query.getMoney(), null, 1);//添加预支付数据
+                }
+
+            }
+            if(payType == 2){//银行卡支付
+                orderCancel.setPayType(2);
+                orderCancelService.updateById(orderCancel);
+                BankCard bankCard = bankCardService.selectById(bankCardId);
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                String merchantTransactionId = sdf.format(new Date()) + "1" + id;
+                CheckoutRequest checkoutRequest = new CheckoutRequest();
+                checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
+                checkoutRequest.setCustomerEmail(userInfo.getEmail());
+                checkoutRequest.setAccountNumber(bankCard.getCode());
+                checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
+                checkoutRequest.setCustomerLastName(bankCard.getLastName());
+                checkoutRequest.setRequestAmount(query.getMoney());
+                checkoutRequest.setMerchantTransactionId(merchantTransactionId);
+                checkoutRequest.setRequestDescription("Cancel a trip");
+                checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi");
+                checkoutRequest.setPendingRedirectUrl("");
+                checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun");
+                checkoutRequest.setFailRedirectUrl("https://www.baidu.com");
+                resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
+                if(resultUtil.getCode()==200){
+                    paymentRecordService.saveData(1, null, null, id, 1, 2, query.getMoney(), null, 1);//添加预支付数据
                 }
 
             }
@@ -696,8 +709,8 @@
 
                 //添加消息
                 systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2
-                        ? "You have successfully paid the cancellation fee with the balance, thank you for using!"
-                        : "Vous avez utilisé le solde pour payer avec succès les frais d’annulation de commande. Merci d’utiliser!", orderPrivateCar.getUserId(), 1);
+                        ? "You have successfully paid the cancellation fee, thank you for using!"
+                        : "Vous avez payé avec succès les frais d’annulation de commande, merci d’utiliser!", orderPrivateCar.getUserId(), 1);
             }
         }
         return resultUtil;
@@ -814,7 +827,7 @@
     }
 
     @Override
-    public ResultUtil payPrivateCarOrder(Integer payType, String accountNumber, Integer orderId, Integer couponId, Integer type, Integer language) throws Exception {
+    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("订单已完成支付,不允许重复支付");
@@ -904,14 +917,15 @@
 
         }
         if(payType == 2){//银行卡支付
+            BankCard bankCard = bankCardService.selectById(bankCardId);
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
             String merchantTransactionId = sdf.format(new Date()) + "1" + language + orderId;
             CheckoutRequest checkoutRequest = new CheckoutRequest();
-            checkoutRequest.setMsisdn(Long.valueOf(accountNumber));
+            checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
             checkoutRequest.setCustomerEmail(userInfo.getEmail());
-            checkoutRequest.setAccountNumber(accountNumber);
-            checkoutRequest.setCustomerFirstName(userInfo.getFirstName());
-            checkoutRequest.setCustomerLastName(userInfo.getLastName());
+            checkoutRequest.setAccountNumber(bankCard.getCode());
+            checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
+            checkoutRequest.setCustomerLastName(bankCard.getLastName());
             checkoutRequest.setRequestAmount(orderMoney);
             checkoutRequest.setMerchantTransactionId(merchantTransactionId);
             checkoutRequest.setRequestDescription("Travel completion payment");
@@ -922,7 +936,7 @@
             resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
 
             if(resultUtil.getCode()==200){
-                paymentRecordService.saveData(1, null, null, orderId, 1, 1, orderMoney, null, 1);//添加预支付数据
+                paymentRecordService.saveData(1, null, null, orderId, 1, 2, orderMoney, null, 1);//添加预支付数据
             }else{
                 resultUtil = ResultUtil.error("支付失败");
             }
@@ -1098,9 +1112,9 @@
                 }
             }).start();
 
-            systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功完成出行订单支付,谢谢使用!" : language == 2
-                    ? "You have successfully completed the payment of travel order with the balance, thank you for using!"
-                    : "Vous avez utilisé le solde pour compléter le paiement de la commande de voyage avec succès. Merci d’utiliser!", uid, 1);
+            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2
+                    ? "You have successfully completed the travel order payment, thank you for using!"
+                    : "Vous avez complété avec succès le paiement de votre commande de voyage. Merci d’utiliser!", orderPrivateCar.getUserId(), 1);
         }
 
 
@@ -1271,9 +1285,9 @@
                 }
             }).start();
 
-            systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用现金成功完成出行订单支付,谢谢使用!" : language == 2
-                    ? "You have successfully completed the payment of travel order with cash, thank you for using!"
-                    : "Vous avez utilisé de l’argent pour compléter avec succès le paiement de votre commande de voyage. Merci d’utiliser!", uid, 1);
+            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2
+                    ? "You have successfully completed the travel order payment, thank you for using!"
+                    : "Vous avez complété avec succès le paiement de votre commande de voyage. Merci d’utiliser!", orderPrivateCar.getUserId(), 1);
         }
 
         this.updateAllColumnById(orderPrivateCar);
@@ -1397,13 +1411,12 @@
      * 取消订单支付后的处理
      * @param id            订单=id
      * @param order_id      工行支付单号
-     * @param type          1=微信,2=支付宝
      * @throws Exception
      */
     @Override
-    public void payCancelOrderPrivateCar(Integer id, String order_id, Integer type) throws Exception {
+    public void payCancelOrderPrivateCar(Integer id, String order_id, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(id);
-        PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 1, type, 1);
+        PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 1, null, 1);
         if(null != query){
             //添加交易明细
             transactionDetailsService.saveData(orderPrivateCar.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId());
@@ -1449,21 +1462,23 @@
 //            }).start();
 
             //添加消息
-            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付取消订单费用,谢谢使用!", orderPrivateCar.getUserId(), 1);
+            systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2
+                    ? "You have successfully paid the cancellation fee, thank you for using!"
+                    : "Vous avez payé avec succès les frais d’annulation de commande, merci d’utiliser!", orderPrivateCar.getUserId(), 1);
         }else{
             System.err.println("预支付数据异常(orderId = "  + id + ")");
         }
     }
 
     @Override
-    public void payOrderPrivateCarCallback(Integer id, String order_id, Integer type, Integer language) throws Exception {
+    public void payOrderPrivateCarCallback(Integer id, String order_id, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(id);
-        PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 1, type, 1);
+        PaymentRecord query = paymentRecordService.query(1, null, null, id, 1, null, 1);
         if(null != query){
             //添加交易明细
             transactionDetailsService.saveData(orderPrivateCar.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId());
             orderPrivateCar.setState(8);
-            orderPrivateCar.setPayType(type);
+            orderPrivateCar.setPayType(query.getPayType());
             orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney()+orderPrivateCar.getFreeMoney().doubleValue());
             orderPrivateCar.setPayMoney(query.getAmount());
             this.updateById(orderPrivateCar);
@@ -1632,8 +1647,9 @@
                 }
             }).start();
 
-
-            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderPrivateCar.getUserId(), 1);
+            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2
+                    ? "You have successfully completed the travel order payment, thank you for using!"
+                    : "Vous avez complété avec succès le paiement de votre commande de voyage. Merci d’utiliser!", orderPrivateCar.getUserId(), 1);
         }else{
             System.err.println("预支付数据异常(orderId = "  + id + ")");
         }

--
Gitblit v1.7.1