From 159186d038c5bf296e2a9fed601e39eb931ff6dd Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 24 十一月 2025 09:00:03 +0800
Subject: [PATCH] 修改bug

---
 UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java |   86 +++++++++++++++++++++++++-----------------
 1 files changed, 51 insertions(+), 35 deletions(-)

diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
index 1405d7d..730e53c 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
@@ -1,5 +1,6 @@
 package com.stylefeng.guns.modular.shunfeng.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.shunfeng.model.*;
@@ -26,6 +27,7 @@
 import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
 import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
 import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -37,11 +39,16 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 顺风车相关接口
  */
+@Slf4j
 @Api(tags = "顺风车相关接口")
 @Controller
 @RequestMapping("/api/rideComment")
@@ -348,7 +355,8 @@
             } catch (Exception e1) {
                 e1.printStackTrace();
             }
-            Double distance=Double.valueOf(map1.get("distance"))/1000;//距离公里
+            log.info("顺风车预估里程:{}", JSON.toJSONString(map1));
+            Double distance = new BigDecimal(map1.get("distance")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();//距离公里
             Integer distanceType=1;
             //距离类型(1-100==1,100-200==2,200-500==3,500-800==4,800以上==5)
             if(distance<100){
@@ -365,8 +373,9 @@
             ParamRide paramRide=paramRideService.selectOne(new EntityWrapper<ParamRide>().eq("type",1).eq("distanceType",distanceType));
             Double price=0d;
             if(paramRide!=null){
+                log.info("获取的价格配置规则:{}", JSON.toJSONString(paramRide));
                 JSONObject jsonObject =JSONObject.fromObject(paramRide.getContext());
-                String priceStr=jsonObject.getString("person"+num+"");
+                String priceStr=jsonObject.getString("person"+num);
                 if(priceStr!=null){
                     price=Double.valueOf(priceStr)*distance;
                 }
@@ -828,9 +837,11 @@
             /*查看这个订单是否在进行中*/
             OrderRide orderRide=orderRideService.selectById(orderId);
             if(orderRide!=null){
-                /*查询该订单是否已经取消*/
-                if(orderRide.getState()==6){
-                    return ResultUtil.error("该订单已取消");
+                if(orderRide.getState() == 4){
+                    return ResultUtil.error("订单行程中,不能取消订单");
+                }
+                if(orderRide.getState() == 6){
+                    return ResultUtil.error("订单已取消,不能重复操作");
                 }
                 //用户取消给司机推送
                 if(orderRide.getDriverId()!=null) {
@@ -843,10 +854,8 @@
             //取消司机行程
             if(orderRide.getTravelId()!=null){
                 OrderTravel orderTravel=orderTravelService.selectById(orderRide.getTravelId());
-                if(orderTravel.getState()!=6){
-                    orderTravel.setState(6);
-                    orderTravelService.updateById(orderTravel);
-                }
+                orderTravel.setState(2);
+                orderTravelService.updateById(orderTravel);
             }
             return ResultUtil.success("");
         } catch (Exception e) {
@@ -899,31 +908,34 @@
 
                 //中台订单退款操作
                 if(ToolUtil.isNotEmpty(orderRide.getZttravelId())){
-                    TradeOrderRefundRequest request = new TradeOrderRefundRequest();
-                    request.setPartnerPayId(orderRide.getZttravelId());
-                    request.setPayId(financial.getLsType());
-                    request.setRefundTotalFee(money + "");
-                    request.setRemark("顺风车订单取消退款");
-                    request.setRefundType("RF");
+                    ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
+                    threadPoolExecutor.execute(()->{
+                        TradeOrderRefundRequest request = new TradeOrderRefundRequest();
+                        request.setPartnerPayId(orderRide.getZttravelId());
+                        request.setPayId(financial.getLsType());
+                        request.setRefundTotalFee(money + "");
+                        request.setRemark("顺风车订单取消退款");
+                        request.setRefundType("RF");
 
-                    RefundInfoRequest refundInfo = new RefundInfoRequest();
-                    refundInfo.setPayItemId(orderRide.getZttravelId());
-                    refundInfo.setPayId(financial.getLsType());
-                    refundInfo.setTradeFee(money + "");
-                    request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{
-                        add(refundInfo);
-                    }});
-                    TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
-                    //退款通知
-                    OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest();
-                    request2.setOrderId(orderRide.getZttravelId());
-                    request2.setRefundPayNum(tradeOrderRefund.getRefundId());
-                    request2.setRefundType("5");
-                    request2.setApplyRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
-                    request2.setActualRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
-                    request2.setRefundAccount(userInfo.getOnconUUID());
-                    request2.setRemark("顺风车订单取消退款");
-                    OrderUtil.orderRefundNotice(request2);
+                        RefundInfoRequest refundInfo = new RefundInfoRequest();
+                        refundInfo.setPayItemId(orderRide.getZttravelId());
+                        refundInfo.setPayId(financial.getLsType());
+                        refundInfo.setTradeFee(money + "");
+                        request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{
+                            add(refundInfo);
+                        }});
+                        TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
+                        //退款通知
+                        OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest();
+                        request2.setOrderId(orderRide.getZttravelId());
+                        request2.setRefundPayNum(tradeOrderRefund.getRefundId());
+                        request2.setRefundType("5");
+                        request2.setApplyRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
+                        request2.setActualRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
+                        request2.setRefundAccount(userInfo.getOnconUUID());
+                        request2.setRemark("顺风车订单取消退款");
+                        OrderUtil.orderRefundNotice(request2);
+                    });
                 }
 
 
@@ -955,7 +967,8 @@
             throw new RuntimeException(e);
         }
         orderRide.setState(6);//取消状态
-        orderRideService.updateById(orderRide);
+        orderRide.setTravelId(null);
+        orderRideService.updateAllColumnById(orderRide);
     }
 
 
@@ -1025,6 +1038,9 @@
             }
             if(orderTravel.getState()==6){
                 return ResultUtil.error("该订单已取消");
+            }
+            if(orderTravel.getState()==4){
+                return ResultUtil.error("出行中不能取消订单");
             }
             DriverRide driverRide=driverRideService.selectById(orderTravel.getDriverId());
             if(orderTravel.getServiceMoney()!=null && orderTravel.getServiceMoney()>0){
@@ -1132,7 +1148,7 @@
             }
             OrderRide orderRide=orderRideService.selectById(userOrderId);
             if(orderRide!=null && orderRide.getState()==6){
-                return  ResultUtil.error("用户已取消该行程");
+                return ResultUtil.error("用户已取消该行程");
             }
             UserInfo userInfo=userInfoService.selectById(driverRide.getUserId());
             if(orderTravel!=null){

--
Gitblit v1.7.1