From 00ee134d5bcb07e9a07633963e68ba7e9fa215c2 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期二, 13 八月 2024 17:48:12 +0800
Subject: [PATCH] 优化支付

---
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |   63 +++++++++++++++++--------------
 1 files changed, 35 insertions(+), 28 deletions(-)

diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index cebad80..56bb789 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -135,8 +135,8 @@
     @Autowired
     private GDMapGeocodingUtil gdMapGeocodingUtil;
 
-    @Autowired
-    private ChinaMobileUtil chinaMobileUtil;
+//    @Autowired
+//    private ChinaMobileUtil chinaMobileUtil;
 
     @Autowired
     private GDFalconUtil gdFalconUtil;
@@ -310,19 +310,23 @@
                 orderMoney = v;
             }
         }
+        String code = orderId + "_3_fei";
         if(payType == 1){//微信支付
-            resultUtil = payMoneyUtil.weixinpay("完成订单",orderId +"",orderId + "_3_fei",orderMoney+"","/base/wxPayOrderTaxi","JSAPI",userInfo.getAppletsOpenId());
+            if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                return ResultUtil.error("未授权微信,无法完成支付");
+            }
+            resultUtil = payMoneyUtil.weixinpay("完成订单",orderId +"", code,orderMoney+"","/base/wxPayOrderTaxi","JSAPI",userInfo.getAppletsOpenId());
             if(resultUtil.getCode()==200){
-                paymentRecordService.saveData(1, null, null, orderId, 3, 1, orderMoney, null, 1);//添加预支付数据
+                paymentRecordService.saveData(1, null, null, orderId, 3, 1, orderMoney, null, 1, code);//添加预支付数据
                 resultUtil = resultUtil;
             }else{
                 resultUtil = ResultUtil.error("获取支付信息失败", "");
             }
         }
         if(payType == 2){//支付宝支付
-            resultUtil = payMoneyUtil.alipay("完成订单","完成订单",orderId + ",3" ,orderMoney+"","/base/aliPayOrderTaxi");
+            resultUtil = payMoneyUtil.alipay("完成订单","完成订单", "",orderId + ",3" ,orderMoney+"","/base/aliPayOrderTaxi");
             if(resultUtil.getCode()==200){
-                paymentRecordService.saveData(1, null, null, orderId, 3, 2, orderMoney, null, 1);//添加预支付数据
+                paymentRecordService.saveData(1, null, null, orderId, 3, 2, orderMoney, null, 1, code);//添加预支付数据
                 resultUtil = resultUtil;
             }else{
                 resultUtil = ResultUtil.error("获取支付信息失败", "");
@@ -361,7 +365,7 @@
             //添加已收入明细
             Line line = lineService.selectById(orderCrossCity.getLineId());
             Double speMoney = Double.valueOf(line.getRakeRate());
-            BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入
+            BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入
             BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入
             incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue());
             incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue());
@@ -435,7 +439,7 @@
             //添加已收入明细
             Line line = lineService.selectById(orderCrossCity.getLineId());
             Double speMoney = Double.valueOf(line.getRakeRate());
-            BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入
+            BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100)), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入
             BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入
             incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue());
             incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue());
@@ -575,11 +579,11 @@
         //调用移动的小号接口
         Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
         Region region = regionMapper.query(geocode.get("districtCode"));
-        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
-        if(String.valueOf(map.get("code")).equals("200")){
-            orderCrossCity.setTelX(map.get("telX"));
-            orderCrossCity.setBindId(map.get("bindId"));
-        }
+//        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+//        if(String.valueOf(map.get("code")).equals("200")){
+//            orderCrossCity.setTelX(map.get("telX"));
+//            orderCrossCity.setBindId(map.get("bindId"));
+//        }
         this.insert(orderCrossCity);
 
         if(driver.getState() == 2){
@@ -767,15 +771,18 @@
         }else{
             orderCancel = orderCancelService.selectById(cancleId);
         }
-
         CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
         if(null != query){
+            String code = id + "_3_fei";
             if(payType == 1){//微信支付
+                if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                    return ResultUtil.error("未授权微信,无法完成支付");
+                }
                 orderCancel.setPayType(1);
                 orderCancelService.updateById(orderCancel);
-                resultUtil = payMoneyUtil.weixinpay("订单取消",id +"",id + "_3_fei",query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId());
+                resultUtil = payMoneyUtil.weixinpay("订单取消",id +"", code,query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId());
                 if(resultUtil.getCode()==200){
-                    paymentRecordService.saveData(1, null, null, id, 3, 1, query.getMoney(), null, 1);//添加预支付数据
+                    paymentRecordService.saveData(1, null, null, id, 3, 1, query.getMoney(), null, 1, code);//添加预支付数据
                     resultUtil = resultUtil;
                 }else{
                     resultUtil = ResultUtil.error("获取支付信息失败", "");
@@ -784,9 +791,9 @@
             if(payType == 2){//支付宝支付
                 orderCancel.setPayType(2);
                 orderCancelService.updateById(orderCancel);
-                resultUtil = payMoneyUtil.alipay("订单取消","订单取消",id + ",3",query.getMoney()+"","/base/aliCancelOrderTaxi");
+                resultUtil = payMoneyUtil.alipay("订单取消","订单取消", "",id + ",3",query.getMoney()+"","/base/aliCancelOrderTaxi");
                 if(resultUtil.getCode()==200){
-                    paymentRecordService.saveData(1, null, null, id, 3, 2, query.getMoney(), null, 1);//添加预支付数据
+                    paymentRecordService.saveData(1, null, null, id, 3, 2, query.getMoney(), null, 1, code);//添加预支付数据
                     resultUtil = resultUtil;
                 }else{
                     resultUtil = ResultUtil.error("获取支付信息失败", "");
@@ -803,9 +810,9 @@
                 userInfoService.updateById(userInfo);
 
                 //解除小号绑定
-                if(orderCrossCity.getBindId() != null){
-                    chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
-                }
+//                if(orderCrossCity.getBindId() != null){
+//                    chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
+//                }
 
                 orderCrossCity.setState(10);
                 orderCrossCity.setTelX("");
@@ -1059,9 +1066,9 @@
             transactionDetailsService.saveData(orderCrossCity.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 3, query.getOrderId());
             orderCrossCity.setState(10);
             //解除小号绑定
-            if(orderCrossCity.getBindId() != null){
-                chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
-            }
+//            if(orderCrossCity.getBindId() != null){
+//                chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
+//            }
             orderCrossCity.setBindId("");
             orderCrossCity.setTelX("");
             this.updateById(orderCrossCity);
@@ -1295,8 +1302,8 @@
         if(null == distance){
             System.err.println("查询距离出错了");
         }else{
-            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
-            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
         }
         OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
         orderServerWarpper.setOrderId(orderCrossCity.getId());
@@ -1318,8 +1325,8 @@
             if(null == distance){
                 System.err.println("查询距离出错了");
             }else{
-                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
-                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
             }
             orderServerWarpper.setReservationMileage("0");
             orderServerWarpper.setReservationTime("0");

--
Gitblit v1.7.1