From d91a5451f78c19d19c6f3325d50bd7739c6dc168 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 25 六月 2025 19:04:18 +0800
Subject: [PATCH] bug修改

---
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java |   47 ++++++++++++++++-------
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java         |    6 +++
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java                            |   25 ++++++++++++
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                            |    2 +
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java                        |    2 +
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                            |    5 ++
 6 files changed, 73 insertions(+), 14 deletions(-)

diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index f23851f..556f941 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -81,7 +81,9 @@
     })
     public ResultUtil<DriverInfoWarpper> queryDriverInfo(Integer id){
         try {
+            System.err.println(id);
             Map<String, Object> map = driverService.queryDriverInfo(id);
+            System.err.println(map);
             String name = String.valueOf(map.get("name"));
             map.put("name", name.substring(0, 1) + "师傅");
             List<BaseWarpper> list = driverService.queryBusiness(id);
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
index 488e3a9..991d2ea 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -258,4 +258,10 @@
 
 
     List<OrderCrossCity> queryListOrder(Integer driverId, Integer lineShiftId, List<Integer> state, String day) throws Exception;
+
+    /**
+     * 自动取消订单
+     */
+    void autoCancelOrder();
+
 }
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
index ba3c124..e88c6e3 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.GpsCoordinateUtils;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper;
 import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper;
@@ -43,6 +44,7 @@
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
@@ -51,6 +53,7 @@
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.time.LocalDateTime;
 import java.util.*;
 
 import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds;
@@ -1283,20 +1286,10 @@
                 if(null == query){
                     return ResultUtil.error("订单还未进行支付");
                 }
-//                Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), id + "_3", orderCrossCity.getOrderNum());
-//                if(Integer.valueOf(merrefund.get("code").toString()) == 0){
-//                    Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderCrossCity.getOrderNum());
-//                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0){//成功
-//                        //添加交易明细
-//                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
-//                    }
-//                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1){//失败
-//                        return ResultUtil.error("订单取消失败(退款不成功)");
-//                    }
-//                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2){//未知
-//                        return ResultUtil.error("退款返回未知异常");
-//                    }
-//                }
+                Map<String, String> merrefund = payMoneyUtil.wxRefund(query.getCode(), orderCrossCity.getOrderNum(), String.valueOf(query.getAmount()), String.valueOf(query.getAmount()), "");
+                System.err.println("跨城退款数据:::"+merrefund);
+                //添加交易明细
+                transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
                 integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
             }
 
@@ -1364,6 +1357,18 @@
         orderServerWarpper.setState(orderCrossCity.getState());
         orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
         orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
+        value = value == null ? "0.0,0.0" : value;
+        double[] doubles = GpsCoordinateUtils.calBD09toGCJ02(Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]));
+        orderServerWarpper.setNextLongitude(String.valueOf(doubles[0]));
+        orderServerWarpper.setNextLatitude(String.valueOf(doubles[1]));
+        // 起点地址转换
+        doubles = GpsCoordinateUtils.calBD09toGCJ02(orderCrossCity.getStartLat(), orderCrossCity.getStartLon());
+        orderServerWarpper.setStartLat(String.valueOf(doubles[0]));
+        orderServerWarpper.setStartLon(String.valueOf(doubles[1]));
+        // 终点地址转换
+        doubles = GpsCoordinateUtils.calBD09toGCJ02(orderCrossCity.getEndLat(), orderCrossCity.getEndLon());
+        orderServerWarpper.setEndLat(String.valueOf(doubles[0]));
+        orderServerWarpper.setEndLon(String.valueOf(doubles[1]));
         orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice());
         if(orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3){//前往预约地
             orderServerWarpper.setReservationMileage(d);
@@ -1792,6 +1797,20 @@
         return orderCrossCityMapper.queryListOrder(driverId, lineShiftId, state, day);
     }
 
+    @Override
+    public void autoCancelOrder() {
+        LocalDateTime localDateTime = LocalDateTime.now();
+        LocalDateTime dateTime = localDateTime.minusMinutes(30);
+        String time = dateUtil.localDateTimeToStringHHmm(dateTime);
+        List<OrderCrossCity> orderCrossCities = this.selectList(new EntityWrapper<OrderCrossCity>().eq("state", 7).like("insertTime", time));
+        if(!CollectionUtils.isEmpty(orderCrossCities)){
+            for (OrderCrossCity orderCrossCity : orderCrossCities) {
+                orderCrossCity.setState(10);
+            }
+            this.updateBatchById(orderCrossCities);
+        }
+    }
+
     /**
      * 获取订单编号
      * @return
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
index 9519160..1b6fa9c 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
@@ -5,6 +5,9 @@
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -110,6 +113,28 @@
         return list;
     }
 
+    /**
+     * localdate转为字符串
+     *
+     * @param time localdate
+     * @return 字符串
+     */
+    public String localDateToString(LocalDate time) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        return df.format(time);
+    }
+
+    /**
+     * localdatetime转为字符串
+     *
+     * @param time localdatetime
+     * @return 字符串
+     */
+    public static String localDateTimeToStringHHmm(LocalDateTime time) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
+        return df.format(time);
+    }
+
 
     /**
      * 获取月初和月末日期
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
index 5d768f1..82b0efe 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
@@ -527,6 +527,7 @@
 
         Map<String, String> map1 = null;
         String body1 = httpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>());
+        System.err.println("退款返回信息========"+body1);
         //将结果xml解析成map
         body1 = body1.replaceAll("<!\\[CDATA\\[","");
         body1 = body1.replaceAll("]]>", "");
@@ -537,6 +538,7 @@
         } catch (DocumentException e) {
             e.printStackTrace();
         }
+        System.err.println("跨城推送取消====="+map1);
         String return_code = map1.get("return_code");
         Map<String, String> map2 = new HashMap<>();
         if("SUCCESS".equals(return_code)){
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index 9965c15..d1445ad 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.system.util;
 
 
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -15,6 +16,8 @@
 
     @Autowired
     private IUserCouponRecordService userCouponRecordService;
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
 
 
 
@@ -26,6 +29,8 @@
         try {
             //修改过期的优惠券
             userCouponRecordService.updateTimeOut();
+            // 自动取消未支付订单
+            orderCrossCityService.autoCancelOrder();
         } catch (Exception e) {
             e.printStackTrace();
         }

--
Gitblit v1.7.1